假设我有一个部署/ Pod,让我们说一个名字“xyz”。我想检查这个Pod是否有特定的图像。如果此图像与我最近从docker注册表中提取的图像不同,则进行部署。否则不要部署。这是假设标签未更新。任何想法赞赏。
看看这个线程here是基于滚动更新机制。或者使用命令行工具直接设置为kubectl,
$ kubectl set image deployment/auth-deployment auth=auth:2.1.0
然后,您可以分别检查状态和部署,以通过上面的卷展栏进行更改。详细信息在Genti Saliu给出的评论链接中。
请注意,只有部署的pod模板更改,即.spec.template
更改时,才会触发部署过程。使用上面的set
命令不能保证在推出过程完成之前的正常运行时间。因此,它只是您的开发环境中的用户。
如果没有停机时间,您必须使用正确的策略,如下所示,
minReadySeconds: 7
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
只要将maxUnavailable
设置为零,就不会替换现有的pod,直到在minReadySeconds
时间结束后实例化新的pod。这不会给任何停机时间。希望这可以帮助。