gpt4 book ai didi

kubernetes - 为什么 imagePullPolicy 在 Kubernetes 中不能更改为 Always 以外的其他内容

转载 作者:行者123 更新时间:2023-12-02 11:37:15 25 4
gpt4 key购买 nike

我设置了一个 kubernetes 集群,我想使用本地镜像。我已经配置了 .yaml 文件,使其包含(在容器中 -> 图像 - 部分)“imagePullPolicy:Never”,如下所示:

spec:
containers:
- image: <name>:<version>
name: <name>
imagePullPolicy: Never
resources: {}
restartPolicy: Always

我已将此服务部署到 kubernetes,但无法拉取图像(使用 kubectl get pod 查看 pod 时出现 ImagePullBackOff -错误),因为无法从 Internet/注册表中找到图像,并且由于某些未知原因 imagePullPolicy 处于 Always-value 值。这可以看到,例如来自/var/log/messages 来自文本:
"spec":{"containers":[{"image":"<name>","imagePullPolicy":"Always","name":"<name>","

所以我的问题是:为什么这个 imagePullPolicy 在 Always-value 中,尽管我已经在我的 .yaml 文件中将 imagePullPolicy 设置为 Never (当然已经被使用了)? imagePullPolicy 是否有一些默认值超过 .yaml 文件中描述的值?

我的环境是 Centos7,我使用的是 Kontena Pharos 2.2.0(使用例如 docker 1.13.1(Apache License 2.0)和 kubernetes 1.13.2(Apache License 2.0))。

我希望当我在 .yaml 文件中设置“imagePullPolicy: Never”时,值现在应该是 Never (而不是 Always)。

非常感谢您的帮助!

最佳答案

欢迎使用 StackOverflow。

之所以发生这种情况,是因为您的 Kubernetes 集群可能在 api 服务器中启用了准入控制插件,称为“AlwaysPullImages”,其作用是在将对象存储在 Kubernetes 数据存储 - etcd 之前覆盖(变异)对象。

这是自版本 v2.0.0-alpha.2 以来使用 Kontena Pharos 引导的集群的默认行为。

您可以在主 cluster.yml 配置文件中禁用此准入插件:

...
addons:
ingress-nginx:
enabled: true

admission_plugins:
- name: AlwaysPullImages
enabled: false
...

如果在本地注册表中找不到图像,您应该会看到 POD 以不同的状态原因失败:
client-deployment-99699599d-lfqmr    0/1     ErrImageNeverPull   0          42s

请阅读有关使用准入 Controller 的更多信息 here

关于kubernetes - 为什么 imagePullPolicy 在 Kubernetes 中不能更改为 Always 以外的其他内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55490824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com