Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 如何使用滚动更新重新提取容器图像?_Docker_Kubernetes - Fatal编程技术网

Docker 如何使用滚动更新重新提取容器图像?

Docker 如何使用滚动更新重新提取容器图像?,docker,kubernetes,Docker,Kubernetes,我有一个kubernetes RC/pod,由带有如下图像的容器组成:foobar/my image:[branch]-latest,其中“branch”是git分支(“master”,等等) 使用滚动更新强制RC重新拉取图像以获取最新版本的最佳方法是什么?暴力方法是简单地删除RC并重新创建它,但这会导致服务停机 滚动更新是否仅在指定精确的图像标记而不是“最新”之类的标记时才可能进行?如果希望滚动更新重新提取图像,则必须使用:最新的标记或指定始终的图像提取策略(请参见Kubernetes文档中的

我有一个kubernetes RC/pod,由带有如下图像的容器组成:
foobar/my image:[branch]-latest
,其中“branch”是git分支(“master”,等等)

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


滚动更新是否仅在指定精确的图像标记而不是“最新”之类的标记时才可能进行?

如果希望滚动更新重新提取图像,则必须使用
:最新的
标记或指定
始终
的图像提取策略(请参见Kubernetes文档中的)

在您的情况下,您不能使用
:latest
标记,因为您希望在特定分支上使用最新的图像,因此使用pull策略是一种方法


是一个示例文件,显示了如何使用
始终
的图像提取策略

您应该能够使用指定当前使用的相同图像名称的:

kubectl rolling-update <replication-controller-name> --image=foobar/myimage:[branch]-latest
kubectl滚动更新--image=foobar/myimage:[branch]-最新

这将(在幕后)创建一个新的复制控制器,该控制器是具有“新”映像的现有复制控制器的副本,然后逐步调整每个复制控制器的大小,直到旧的复制控制器具有零个POD,而新的复制控制器具有所需的POD数,最后删除旧名称并重命名新名称以使用旧名称

不过,我的问题是,我不想更改任何RC。我只是想让库伯内特斯在滚动的基础上重新绘制图像。这可能吗?当我在选择器中添加了
deployment
键并将imagePullPolicy更改为Always后,这就非常有效了。谢谢