开发者社区> 问答> 正文

计划重启Kubernetes pod而无需停机

我有一个pod运行的6个副本,我想重新启动每5分钟重新创建一次。

这需要滚动更新 - 这样所有都不会立即终止,并且没有停机时间。我该如何实现这一目标?

我尝试使用cron作业,但似乎没有工作:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: scheduled-pods-recreate
spec:
schedule: "/5 *"
concurrencyPolicy: Forbid
jobTemplate:

spec:
  template:
    spec:
      containers:
      - name: ja-engine
        image: app-image
        imagePullPolicy: IfNotPresent
      restartPolicy: OnFailure

虽然作业是按照以下描述成功创建并安排的,但它似乎从未运行过:

Name: scheduled-pods-recreate
Namespace: jk-test
Labels:
Annotations:
Schedule: /5 *
Concurrency Policy: Forbid
Suspend: False
Starting Deadline Seconds:
Selector:
Parallelism:
Completions:
Pod Template:
Labels:
Containers:
ja-engine:

Image:           image_url
Port:            <none>
Host Port:       <none>
Environment:     <none>
Mounts:          <none>

Volumes:
Last Schedule Time: Tue, 19 Feb 2019 10:10:00 +0100
Active Jobs: scheduled-pods-recreate-1550567400
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal SuccessfulCreate 23m cronjob-controller Created job scheduled-pods-recreate-1550567400
首先,我如何确保它正在运行以便重新创建pod?

另外我怎样才能确保没有停机时间?

展开
收起
k8s小能手 2019-02-22 16:10:32 5837 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    目前Kubernetes中没有滚动重启功能,但您可以使用以下命令作为解决方法来重新启动特定部署中的所有
    pod :(将部署名称和pod名称替换为实际名称)

    kubectl patch deployment mydeployment -p '{"spec":{"template":{"spec":{"containers":[{"name":"my-pod-name","env":[{"name":"START_TIME","value":"'$(date +%s)'"}]}]}}}}'
    要对其进行计划,可以在主节点上创建cron任务以定期运行此命令。
    用户拥有的任务应具有正确的kubectl配置(~/.kube/config),其权限可以更改提到的部署对象。

    可以从/etc/kubernetes/admin.conf以下位置复制默认群集管理配置:(
    通常由kubeadm init以下人员创建):

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    可以指定两种类型的部署更新策略:Recreate(.spec.strategy.type==Recreate.)和Rolling update(.spec.strategy.type==RollingUpdate)。

    只有使用滚动更新策略,您才能避免服务停机。您可以在部署YAML中指定maxUnavailable和maxSurge参数以控制滚动更新过程。

    2019-07-17 23:29:13
    赞同 1 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像