经过一些激烈的谷歌搜索和搜索后,我无法找到任何提及滚动更新和设置图像的文档,并且可以强调两者之间的差异。
任何人都可以光明吗?我何时才会使用其中任何一种?
编辑:值得一提的是,我已经在部署(而不是直接使用复制控制器)并且我正在使用yaml配置文件。如果能够使用配置文件而不是直接命令执行任何一种方法,那也很高兴。答案 0 :(得分:4)
在较旧的k8s版本中,ReplicationController
是管理一组复制pod的唯一资源。要更新ReplicationController
的广告连播,请使用kubectl rolling-update
。
后来,k8s引入了管理Deployment
资源的ReplicaSet
。 Deployment
可以通过kubectl set image
更新。
使用Deployment
资源(您已经这样做)是首选方式。我想ReplicationController
及其rolling-update
命令主要用于向后兼容。
更新:正如评论中所述:
要更新我使用Deployment
的{{1}},因为它也可能会更改新的环境变量,而kubectl patch
则相当有限,只能更改图像版本。另请注意,kubectl set image
可以应用于所有k8资源,并且不限于与patch
一起使用。
后来,我将部署过程转移到使用helm - 一个非常简洁的k8s本机包管理工具。强烈建议你去看看。