我如何使Kubernetes做一个图像拉每次容器重启?



Kubernetes似乎只在创建pod时拉图像,我如何使它在容器本身退出时重新拉最新的图像?

我想要与kubectl rollout restart deployment相同的效果,但是当容器退出时。例如,如果容器是一个shell脚本,并且它执行exit 1, Kubernetes应该在重新启动之前从注册表中提取最新的映像。

如果需要,我的部署只有一个容器。

您可以使用imagePullPolicy,在这里了解更多。

下面是一个方便参考的例子:

apiVersion: v1
kind: Pod
metadata:
name: pod-nginx-container-image-repull
spec:
containers:
- name: nginx-alpine-container-1
image: nginx:alpine
ports:
- containerPort: 80
imagePullPolicy: Always

更新1:

当你使用restartPolicy: Never时,这意味着你告诉Kubernetes,我不希望我的容器重新启动,以防它崩溃。因此,如果容器"重新启动",您将遇到没有图像重新拉出的情况。因为实际上没有重启容器

我很快从我的工作空间复制了一个例子,所以你在我的例子中看到了restartPolicy: Never,这不是为你准备的,我已经更新了我上面的例子来删除它。但我希望你已经理解了它的另一个概念。

另一件值得注意的事情是restartPolicy适用于Pod中的所有容器,而imagePullPolicy可以在Pod中的容器级别设置。

最新更新