在K8S POD中获取pod所在node节点的ip

网上找了很多办法都没用,自己琢磨了下,在环境变量里设置fieldRef读取status.hostIP的值,这个其实就是宿主机的值,再在Pod里通过环境变量读取就好了。

同理一样可以获得节点名称,所在的命名空间等


fieldRef:当前Pod资源的指定字段,目前支持使用的字段包括 metadata.name、metadata.namespace、metadata.labels、metadata.annotations、spec.nodeName、spec.serviceAccountName、status.hostIP和status.podIP。

resourceFieldRef:当前容器的特定系统资源的最小值(配额)或最大值(限额),目前支持的引用包括limits.cpu、limts.ephemeral-storage、requests、cpu、requests.memory、requests.ephemeral-storage。


这是一个yaml示例

apiVersion: v1

kind: Pod

metadata:

  name: env-demo

  labels:

    purpose: demonstrate-environment-variables

spec:

  containers:

  - name: env-demo-container

    image: busybox

    command: [ "httpd" ]

    args: [ "-f" ]

    env:

    - name: HELLO_WORLD

      value: just a demo

    - name: MY_NODE_NAME

      valueFrom:

        fieldRef:

          fieldPath: spec.nodeName

    - name: MY_NODE_IP

      valueFrom:

        fieldRef:

          fieldPath: status.hostIP

    - name: MY_POD_NAMESPACE

      valueFrom:

        fieldRef:

          fieldPath: metadata.namespace

  restartPolicy: OnFailure

你可能感兴趣的:(在K8S POD中获取pod所在node节点的ip)