假设我有一个使用映像myImage:latest
(在docker.hub中)的pod,其映像imagePullPolicy
是Always
,并且它在工作程序节点1中运行。映像ID为myImage:latest@sha-1111
。
假设我使用myImage:latest@sha-2222
将新映像推送到docker.hub。之后,我将Pod放大,然后在工作节点2中安排了Pod,它将拉动新映像以启动Pod。在这种情况下,我想新吊舱将使用图像sha-2222?这会是个问题吗?我们怎么解决呢?
PS:
请注意,您应避免使用:latest标记,请参见 配置以获取更多信息。
不了解使用最新标签是一种不好的做法。但是我相信,如果我们将其标记为特定数字,也会发生这种情况。
答案 0 :(得分:1)
如果您标记一个特定的数字,那么该特定的数字将被拖到node2上->没问题。
如果您不标记特定的数字,而是使用最新的(如您所指出的,不建议使用)->结果取决于容器的行为是否向后兼容。例如,如果第一个容器是v1.1.0,第二个容器是v1.2.0,并且您的版本控制基于语义版本控制,那么您仍然应该没有实际问题。
要解决此问题,请使用特定的图像版本并在进行缩放时执行升级。现有实例将更新为新版本,新实例(以满足扩展需求)将从新版本中拉出。