kubernetes如何让在pod中运行的代码知道其pod的名称

小蕊 发表于: 2019-08-26   最后更新时间: 2019-08-26 22:23:27   2,119 游览

在pod内运行的程序。我怎么样编写代码(go-client库)让它获取当前运行它的pod的名称呢?

发表于 2019-08-26

Pod信息的可以通过Env Vars or Downward Api暴露。
官方k8s文档的示例:

apiVersion: v1
kind: Pod
metadata:
  name: dapi-envars-fieldref
spec:
  containers:
    - name: test-container
      image: k8s.gcr.io/busybox
      command: [ "sh", "-c"]
      args:
      - while true; do
          echo -en '\n';
          printenv MY_NODE_NAME MY_POD_NAME MY_POD_NAMESPACE;
          printenv MY_POD_IP MY_POD_SERVICE_ACCOUNT;
          sleep 10;
        done;
      env:
        - name: MY_NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - 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
        - name: MY_POD_SERVICE_ACCOUNT
          valueFrom:
            fieldRef:
              fieldPath: spec.serviceAccountName
  restartPolicy: Never
小蕊 -> 半兽人 4年前

非常感谢,正好解决我的问题。

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题