如何使用滚动更新重新拉取容器镜像?
How to use rolling update to re-pull container image?
我有一个 kubernetes RC/pod,它由带有图像的容器组成,例如:foobar/my-image:[branch]-latest
,其中 "branch" 是 git 分支("master",等等)。
使用滚动更新强制 RC 重新拉取镜像以获得最新版本的最佳方法是什么?暴力破解的方法就是简单的删除RC重新创建,但是会导致服务宕机。
滚动更新只有在您指定确切的图像标签时才可能,而不是像 "latest" 这样的标签吗?
如果您希望滚动更新重新拉取您的镜像,您必须使用 :latest
标签或指定 Always
的镜像拉取策略(请参阅 Updating Images Kubernetes 文档)。
在你的情况下,你不能使用 :latest
标签,因为你想要特定分支上的最新图像,所以使用拉取策略是可行的方法。
dns-frontend-pod.yaml 是一个示例文件,展示了如何使用 Always
的镜像拉取策略。
您应该能够使用 rolling update 指定您当前使用的相同图像名称:
kubectl rolling-update <replication-controller-name> --image=foobar/myimage:[branch]-latest
这将(在幕后)创建一个新的复制控制器,它是带有 "new" 图像的现有复制控制器的副本,然后逐步调整每个复制控制器的大小,直到旧的复制控制器为零pods 并且新的有想要的数量 pods,最后删除旧的并重命名新的使用旧名称。
我有一个 kubernetes RC/pod,它由带有图像的容器组成,例如:foobar/my-image:[branch]-latest
,其中 "branch" 是 git 分支("master",等等)。
使用滚动更新强制 RC 重新拉取镜像以获得最新版本的最佳方法是什么?暴力破解的方法就是简单的删除RC重新创建,但是会导致服务宕机。
滚动更新只有在您指定确切的图像标签时才可能,而不是像 "latest" 这样的标签吗?
如果您希望滚动更新重新拉取您的镜像,您必须使用 :latest
标签或指定 Always
的镜像拉取策略(请参阅 Updating Images Kubernetes 文档)。
在你的情况下,你不能使用 :latest
标签,因为你想要特定分支上的最新图像,所以使用拉取策略是可行的方法。
dns-frontend-pod.yaml 是一个示例文件,展示了如何使用 Always
的镜像拉取策略。
您应该能够使用 rolling update 指定您当前使用的相同图像名称:
kubectl rolling-update <replication-controller-name> --image=foobar/myimage:[branch]-latest
这将(在幕后)创建一个新的复制控制器,它是带有 "new" 图像的现有复制控制器的副本,然后逐步调整每个复制控制器的大小,直到旧的复制控制器为零pods 并且新的有想要的数量 pods,最后删除旧的并重命名新的使用旧名称。