【问题标题】:Programmatically get the name of the pod that a container belongs to in Kubernetes?以编程方式获取容器在 Kubernetes 中所属的 pod 的名称?
【发布时间】:2016-05-17 02:44:02
【问题描述】:

有没有办法在 Kubernetes 中以编程方式获取容器所属的 pod 的名称?如果有怎么办?我正在使用 fabric8 的 java 客户端,但 curl 或类似的东西也可以。

请注意,从那时起,我不想使用特定标签来查找 pod(我假设)如果使用复制控制器进行缩放,我可能不会总能找到正确的 pod。

【问题讨论】:

  • 你正在让自己陷入“抚摸牛群”的危险行为。让牛成为牛

标签: java kubernetes fabric8


【解决方案1】:

您可以使用downward API 告诉 Kubernetes 将 pod 名称放入您选择的环境变量中。

例如:

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
        - name: MY_POD_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: MY_POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
  restartPolicy: Never

【讨论】:

  • 很好,不知道这个。
【解决方案2】:

pod 名称被写入/etc/hostname,因此可以从那里读取它。在 Java(我正在使用)中,您还可以通过调用 System.getenv("HOSTNAME") 来获取主机名(以及 Pod 的名称)。

【讨论】:

猜你喜欢
  • 2018-09-15
  • 2014-08-12
  • 2021-07-10
  • 1970-01-01
  • 2020-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
相关资源
最近更新 更多