kubernetes multi pod contianer inheriting image id

1/19/2018

I have two containers defined in my yaml, both have the image pull poilicy as latest.

however when the pod is deployed, second container does not start, the pod yaml in kubernetes states that they both have the same image 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

any ideas?

-- user1555190
kubernetes

1 Answer

1/19/2018

I think you are mixing two concepts here: the image pull policy and the image tag.

The image pull policy tells kubernetes when you want it to try to download the container image. Since you are using a ImagePullPolicy of Never the image must already be present on the kubernetes node: kubernetes will not try to download the image. Besides Never you can also choose Always or IfNotPresent. Unless you have a compelling reason to choose Never, I'd choose IfNotPresent whenever possible.

On the other hand, you have chosen the latest image tag. That's the exactly tag that must be present on the kubernetes node when trying to create the container.

Furthermore, in your example yaml, you are using two differente images: x/abc and x/def. So both images must be present or the containers won't be able to be created by the kubernetes.

-- Jose Armesto
Source: StackOverflow