您可以为Pod配置宽限期(例如30秒或更长时间,具体取决于容器启动时间和图像大小)并进行设置
"imagePullPolicy:"Always"。并使用
kubectl delete pod pod_name。将创建一个新容器,并自动下载最新的映像,然后终止旧容器。
例:
spec: terminationGracePeriodSeconds: 30 containers: - name: my_container image: my_image:latest imagePullPolicy: "Always"
我目前正在使用Jenkins进行自动构建和图像标记,它看起来像这样:
kubectl --user="kube-user" --server="https://kubemaster.example.com" --token=$ACCESS_TOKEN set image deployment/my-deployment mycontainer=myimage:"$BUILD_NUMBER-$SHORT_GIT_COMMIT"
另一个技巧是初始运行:
kubectl set image deployment/my-deployment mycontainer=myimage:latest
然后:
kubectl set image deployment/my-deployment mycontainer=myimage
它实际上会触发滚动更新,但请确保您也已
imagePullPolicy: "Always"设置。
更新:
我发现的另一个技巧是,无需更改图像名称,而是更改将触发滚动更新的字段的值,例如
terminationGracePeriodSeconds。您可以使用
kubectledit deployment your_deployment或
kubectl apply -fyour_deployment.yaml使用如下补丁来做到这一点:
kubectl patch deployment your_deployment -p '{"spec":{"template":{"spec":{"terminationGracePeriodSeconds":31}}}}'
只要确保您始终更改数字值即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)