为什么imagePullPolicy不能更改为Kubernetes中的其他

为什么imagePullPolicy不能更改为Kubernetes中的其他,kubernetes,cloud,Kubernetes,Cloud,我有一个kubernetes集群设置,我想使用本地图像。我已经配置了.yaml文件,以便它包含(在containers->image-section中)“imagePullPolicy:Never”如下所示: spec: containers: - image: <name>:<version> name: <name> imagePullPolicy: Never resources:

我有一个kubernetes集群设置,我想使用本地图像。我已经配置了.yaml文件,以便它包含(在containers->image-section中)“imagePullPolicy:Never”如下所示:

spec:
      containers:
      - image: <name>:<version>
        name: <name>
        imagePullPolicy: Never
        resources: {}
      restartPolicy: Always
spec:
容器:
-图片::
姓名:
政策:绝不
资源:{}
restartPolicy:始终
我已将此服务部署到kubernetes,但无法提取图像(getting ImagePullBackOff-使用kubectl get pod查看pod时出错),因为无法从internet/registry中找到图像,并且由于未知原因imagePullPolicy始终处于值中。这可以从/var/log/messages from text中看到:

"spec":{"containers":[{"image":"<name>","imagePullPolicy":"Always","name":"<name>","
“spec”:{“containers”:[{“image”:”“imagePullPolicy”:“始终”、“名称”:”
所以我的问题是:为什么这个imagePullPolicy总是值,尽管我在.yaml文件(当然已经被使用)中将imagePullPolicy设置为Never?imagePullPolicy是否有一些默认值运行在.yaml文件中描述的值上

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

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


非常感谢您的帮助!

欢迎收看StackOverflow

之所以会这样,是因为您的Kubernetes集群可能已经在api服务器中启用了名为“AlwaysPubllimages”的准入控制插件,该插件的作用是在将对象存储到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

请阅读更多关于使用入场控制器的信息

这解决了我的问题!非常感谢您的回答!