kubernetes multi pod contianer继承图片id

时间:2018-01-19 13:25:28

标签: kubernetes

我的yaml中定义了两个容器,两者都有最新的图像拉动。

然而,当部署pod时,第二个容器无法启动,kubernetes中的pod yaml声明它们都具有相同的图像ID。

 spec:
      containers:
      - name: 1st
        image: "x/abc:latest"
        imagePullPolicy: "Never"

        ports:
          - containerPort: 8080 
          - containerPort: 5005

        volumeMounts:
          - name: config-volume 
            mountPath: /config

        resources:
          limits:
            cpu: 500m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 128Mi


        env:

          - name: JVM_DEBUG
            value: "True"

      - name: second
        image: "x/def:latest"
        imagePullPolicy: "Never"

        ports:
          - containerPort: 9998

        volumeMounts:
          - name: config-volume 
            mountPath: /config

        resources:
          limits:
            cpu: 500m
            memory: 512Mi
          requests:
            cpu: 100m
            memory: 128Mi


      volumes:
        - name: config-volume
          configMap:
            name: abc-RELEASE

任何想法?

1 个答案:

答案 0 :(得分:0)

我认为你在这里混合了两个概念:图像拉动政策和图像标签。

图像拉取策略告诉kubernetes何时希望它尝试下载容器图像。 由于您使用的是instanceof CustomError ImagePullPolicy,因此该图像必须已存在于kubernetes节点上:kubernetes不会尝试下载该图像。 除了Never,您还可以选择NeverAlways。除非您有充分的理由选择IfNotPresent,否则我会尽可能选择Never

另一方面,您选择了IfNotPresent图片代码。这是在尝试创建容器时kubernetes节点上必须存在的确切标记。

此外,在您的示例yaml中,您使用了两个不同的图像:latestx/abc。因此,两个图像必须存在,否则容器将无法由kubernetes创建。