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

小蕊 发表于: 2019-08-26   最后更新时间: 2019-08-26  

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



您需要解锁本帖隐藏内容请: 点击这里
本帖隐藏的内容




小蕊 发表于: 20天前   最后更新时间: 20天前   游览量:87

上一条: 部署istio服务网格后,Kubernetes pods无法向外发出https请求
下一条: 如何在Kubernetes上保持运行docker容器,不关闭?

  • 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