在更新kubernetes部署时验证映像是否存在

时间:2018-07-19 11:18:56

标签: kubernetes kubectl google-kubernetes-engine

在使用不存在的映像更新部署时,Kubernetes首先将终止现有的pod,最后将导致部署中断。  是否可以告诉kubectl在终止现有吊舱之前验证/拉取图像?

3 个答案:

答案 0 :(得分:2)

我不得不将strategy.rollingUpdate.maxUnavailable更改为0

strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate

我认为strategy.rollingUpdate.maxUnavailable的默认值为1

感谢Michael Hausenblas

答案 1 :(得分:0)

虽然我没有对此进行测试,但我认为从理论上讲应该可以:

您可以使用准入控制器AlwaysPullImages和一种部署策略,其中至少有一个Pod处于运行状态。准入控制器确保在容器启动之前Always提取图像。

要启用此准入控制器,您将必须在Kubernetes API服务器(如from this link)上启用标志:

kube-apiserver --enable-admission-plugins=AlwaysPullImages,LimitRanger

答案 2 :(得分:0)

提高生机/准备状态将确保仅在新吊舱健康的情况下终止旧吊舱。