Kubernetes:如何获取我正在运行的 Pod 名称?

Fel*_*lix 2 kubernetes

我想在 Pod 内运行 Python 代码。该吊舱是由我无法控制的气流创建的。

我想以某种方式获取我正在运行的 Pod 的名称。

如何做呢?

tes*_*ile 7

您可以告诉 kuberenetes 为您挂载一个环境变量:

apiVersion: v1
kind: Pod
metadata:
  name: dapi-test-pod
spec:
  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
Run Code Online (Sandbox Code Playgroud)

然后在 python 中你可以像这样访问它:

apiVersion: v1
kind: Pod
metadata:
  name: dapi-test-pod
spec:
  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
Run Code Online (Sandbox Code Playgroud)

或者您可以打开并阅读/etc/hostname

import os
pod_name = os.environ['MY_POD_NAME']
Run Code Online (Sandbox Code Playgroud)