如何使用滚动更新来重新拉取容器图像?

我有一个kubernetes RC / pod组成的容器与图像像: foobar/my-image:[branch]-latest地方,其中“分支”是git分支(“主”等)。

使用滚动更新强制RC重新获取最新版本的图像的最佳方法是什么? 蛮力方法是简单地删除RC并重新创build它,但这会导致服务停机。

滚动更新只有在你指定了一个确切的图片标签,而不是像“最新”的东西时才有可能?

您应该能够使用滚动更新来指定您当前使用的相同图像名称:

 kubectl rolling-update <replication-controller-name> --image=foobar/myimage:[branch]-latest 

这将在幕后创build一个新的复制控制器,它是现有复制控制器的“新”映像的副本,然后逐步调整每个复制控制器的大小,直到旧复制控制器的容量为零,新复制控制器最后删除旧的,重命名新的旧的名称。

如果要滚动更新来重新拉取图像,则必须使用:latest标签或指定Always的图像拉取策略(请参阅在Kubernetes文档中更新图像 )。

在你的情况下,你不能使用:latest标签,因为你想要在特定的分支最近的图像,所以使用拉政策的路要走。

dns-frontend-pod.yaml是一个示例文件,显示如何使用Always的图像拉取策略。