首页 > 解决方案 > 每次容器重启时,如何让 Kubernetes 进行一次镜像拉取?

问题描述

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

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

如果这很重要,我的部署只有 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: Neverthen 这意味着你告诉 Kubernetes 我不希望我的容器在它崩溃时重新启动。因此,您会遇到在容器“重新启动”的情况下没有图像重新拉取,因为实际上没有容器重新启动。

我已经从我的工作区快速复制了一个示例,因此您restartPolicy: Never在我的示例中看到了不适合您的示例,我更新了上面的示例以将其删除。但我希望你已经理解了它的另一个概念。

另一个值得注意的是,它restartPolicy适用于 Pod 中的所有容器,同时imagePullPolicy可以在 Pod 中的容器级别设置。


推荐阅读