Programmatically get the name of the pod that a container belongs to in Kubernetes? Programmatically get the name of the pod that a container belongs to in Kubernetes? kubernetes kubernetes

Programmatically get the name of the pod that a container belongs to in Kubernetes?


You can tell Kubernetes to put the pod name in an environment variable of your choice using the downward API.

For example:

apiVersion: v1kind: Podmetadata:  name: dapi-test-podspec:  containers:    - name: test-container      image: gcr.io/google_containers/busybox      command: [ "/bin/sh", "-c", "env" ]      env:        - name: MY_POD_NAME          valueFrom:            fieldRef:              fieldPath: metadata.name        - name: MY_POD_NAMESPACE          valueFrom:            fieldRef:              fieldPath: metadata.namespace        - name: MY_POD_IP          valueFrom:            fieldRef:              fieldPath: status.podIP  restartPolicy: Never


The pod name is written to /etc/hostname so it's possible to read it from there. In Java (which I'm using) you can also get the hostname (and thus the name of the pod) by calling System.getenv("HOSTNAME").