【问题标题】:imagePullSecrets not working with Kind deploymentimagePullSecrets 不适用于 Kind 部署
【发布时间】:2019-02-11 01:04:46
【问题描述】:

我想创建一个包含 3 个副本的部署,它将从私有注册表中提取图像。我已将凭据存储在一个秘密中,并在部署文件中使用了 imagePullSecrets。我在部署时遇到错误。

错误:验证“private-reg-pod.yaml”时出错:验证数据时出错:[ValidationError(Deployment.spec): io.k8s.api.apps.v1.DeploymentSpec 中的未知字段“容器”,ValidationError(Deployment .spec):io.k8s.api.apps.v1.DeploymentSpec 中的未知字段“imagePullSecrets”,ValidationError(Deployment.spec):io.k8s.api.apps.v1.DeploymentSpec 中缺少必填字段“selector”,ValidationError( Deployment.spec):在 io.k8s.api.apps.v1.DeploymentSpec 中缺少必填字段“模板”];如果您选择忽略这些错误,请使用 --validate=false 关闭验证

有什么帮助吗?

下面是我的部署文件:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: test-pod-deployment
  labels:
    app: test-pod
spec:
  replicas: 3
  selector:
    matchLabels:
      app: test-pod
  template:
    metadata:
      labels:
        app: test-pod
    spec:
      containers:
      - name: test-pod
    image: <private-registry>
  imagePullSecrets:
  - name: regcred

谢谢, 桑达尔

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    图像部分应放置在容器规范中。 ImagePullSecret 应该放在规范部分,所以正确的 yaml 文件看起来像这样(请注意缩进):

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: test-pod-deployment
      labels:
        app: test-pod
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: test-pod
      template:
        metadata:
          labels:
            app: test-pod
        spec:
          containers:
           - name: test-pod
             image: <private-registry>
          imagePullSecrets:
           - name: regcred
    

    【讨论】:

    • 我尝试了上述方法。正在创建部署,但 POD 无法读取机密。图像拉我们失败。下面是我的 yaml 文件。 apiVersion:extensions/v1beta1 种类:部署元数据:名称:test-pod-deployment 标签:app:test-pod 规范:副本:3 选择器:matchLabels:app:test-pod 模板:元数据:标签:app:test-pod 规范:容器:-名称:test-pod 图像: imagePullSecrets:-名称:regcred
    • Warning Failed 5m (x3 over 6m) kubelet, aks-agentpool-35896074-0 无法拉取镜像“未授权:需要身份验证]
    • 很抱歉,我解决了您关于错误配置文件导致您粘贴的错误的问题。如果您能接受我的回答,我将不胜感激。还要查看 Stack Overflow 规则,您应该创建新问题来描述与身份验证和 kubernetes 机密失败相关的问题。
    • @Sun 你的问题解决了吗?我有完全相同的问题
    【解决方案2】:

    请确保您已经创建了秘密,然后请尝试使其如下所示。

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: test-pod-deployment
      labels:
        app: test-pod
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: test-pod
      template:
        metadata:
          labels:
            app: test-pod
        spec:
          containers:
           - name: test-pod
             image: nginx
          imagePullSecrets:
           - name: regcred

    【讨论】:

      【解决方案3】:

      kubernetes 部署的非常常见的问题。

      在你的 Kubernetes 部署文件中从私有仓库拉取镜像的有效格式是:

      spec:
        imagePullSecrets:
        - name: <your secret name>    
        containers:
      

      【讨论】:

      • 确实有效。将imagePullSecrets 放在containers 之后对我不起作用。
      猜你喜欢
      • 2018-12-18
      • 2016-09-29
      • 2021-04-28
      • 1970-01-01
      • 1970-01-01
      • 2016-09-28
      • 2018-10-10
      • 2021-06-03
      相关资源
      最近更新 更多