k8s镜像拉取方式选择imagePullPolicy问题
作者:lswzw
本文解释了Kubernetes中imagePullPolicy字段的默认拉取策略,包括Always、IfNotPresent和Never,帮助ubernetes如何根据镜像的标签和摘要自动设置imagePullPolicy字段,以及如何手动更改已有资源的拉取策略
镜像拉取方式选择
默认镜像拉取策略
当你(或控制器)向 API 服务器提交一个新的 Pod 时,你的集群会在满足特定条件时设置 imagePullPolicy 字段:
- 如果你省略了 imagePullPolicy 字段,并且你为容器镜像指定了摘要, 那么 imagePullPolicy 会自动设置为 IfNotPresent。
- 如果你省略了 imagePullPolicy 字段,并且容器镜像的标签是 :latest, imagePullPolicy 会自动设置为 Always。
- 如果你省略了 imagePullPolicy 字段,并且没有指定容器镜像的标签, imagePullPolicy 会自动设置为 Always。
- 如果你省略了 imagePullPolicy 字段,并且为容器镜像指定了非 :latest 的标签, imagePullPolicy 就会自动设置为 IfNotPresent。
说明:
容器的 imagePullPolicy 的值总是在对象初次 创建 时设置的, 如果后来镜像的标签或摘要发生变化,则不会更新。
例如:
- 如果你用一个 非 :latest 的镜像标签创建一个 Deployment, 并在随后更新该 Deployment 的镜像标签为 :latest,
- 则 imagePullPolicy 字段 不会 变成 Always。
- 你必须手动更改已经创建的资源的拉取策略。
https://kubernetes.io/zh-cn/docs/concepts/containers/images/#image-pull-policy
官方文档:
https://kubernetes.io/docs/concepts/containers/images/
k8s-imagePullPolicy
containers:
- name: uses-private-image
image: $PRIVATE_IMAGE_NAME
imagePullPolicy: Always
command: [ "echo", "SUCCESS" ]
k8s的配置文件中经常看到有imagePullPolicy属性
这个属性是描述镜像的拉取策略
Always总是拉取镜像IfNotPresent本地有则使用本地镜像,不拉取Never只使用本地镜像,从不拉取,即使本地没有
如果省略imagePullPolicy 策略为always
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
