When we create a yml for the replication controller, we can give labels for the pod that is being created.
apiVersion: v1
kind: ReplicationController
metadata:
  name: redis
spec:
  template:
    metadata:
      labels:
        app: redis
        tier: backendCan the containers that reside in this pod access those label values?
One way to access information of pod from inside the container is by using environment variables. The yaml file for pod is:
apiVersion: v1
kind: Pod
metadata:
  name: pod-env
spec:
  containers:
    - name: test-container
      image: ubuntu
      command: [ "sh", "-c"]
      args:
      - while true; do
          echo -en '\n';
          printenv MY_NODE_NAME MY_POD_NAME;
          printenv MY_POD_IP 
          sleep 1000;
        done;
      env:
        - name: MY_NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - name: MY_POD_NAME
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: MY_POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
  restartPolicy: NeverThe mY_POD_NAME environment variable gets its value from the pod's field spec.nodeName. Likewise we can also container's fields as values. To verify this connect to the pod using the command:
kubectl exec -it pod-env -- /bin/bashand print the environment variable:
printenv MY_POD_NAMEOther way of passing information from pod to container is using downwardAPI : https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/
Check out the Downward API, which allows the container to know more about itself.