Search code examples
kuberneteskubernetes-containerkubernetes-pod

Can we have same kind of multiple containers in a Pod in Kubernetes?


For instance can I have following yaml to produce a pod with multiple containers:

apiVersion: v1
kind: Pod
metadata:
name: lampapp
labels:
    app: app
spec:
  containers:
  - name: lampdb
    image: mysql_test
  - name: app
    image: php-app-db-url-env
    env:
     - name: DB_URL
      value: 127.0.0.1:3306
  - name: app2
    image: php-app-db-url-env
    env:
    - name: DB_URL
      value: 127.0.0.1:3306

Solution

  • Yes, you can add multiple container with same image.

    The containers object must contain:

    1. name: Name of the container. It must be a DNS_LABEL and be unique within the pod. Cannot be updated.
    2. image: Docker image name.

    You have to make container name unique

    You can do following:

    - name: app
      image: php-app-db-url-env   ---
    - name: app2                    |> same image
      image: php-app-db-url-env   ---
    

    But not this one:

    - name: app
      image: php-app-db-url-env
    - name: app
      image: <any image>
    

    Also the containers spec should include a unique port number within the Pod