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中的容器级别设置。