当前位置:   article > 正文

Metadata获取的三种方式

metadata.name[-10:]

本文的试验环境为CentOS 7.3,Kubernetes集群为1.11.2,安装步骤参见kubeadm安装kubernetes V1.11.1 集群

0. Metadata

每个Pod都有一些信息,包括但不限于以下的内容:

  • Pod 名称
  • Pod IP
  • Pod 所属的命名空间
  • Pod 所在的 Node
  • Pod 对应的 service account
  • 每个容器的CPU、内存请求
  • 每个容器的CPU、内存上限
  • Pod 的标签
  • Pod 的 annotations

这些信息都可以通过kubectl命令获取,但是有的情况下,我们需要从应用内获取,例如获取当前Pod的地址、主机名等一些信息,这就要求我们必须知道如何在应用内获取Pod的metadata,本文介绍三种应用内获取Pod的metadata的方式,供大家参考。

1. 通过环境变量暴露Metadata

  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: downward
  5. spec:
  6. containers:
  7. - name: main
  8. image: docker.io/busybox
  9. command: ["sleep", "99999"]
  10. resources:
  11. requests:
  12. cpu: 15m
  13. memory: 100Ki
  14. limits:
  15. cpu: 100m
  16. memory: 4Mi
  17. env:
  18. - name: POD_NAME
  19. valueFrom:
  20. fieldRef:
  21. fieldPath: metadata.name
  22. - name: POD_NAMESPACE
  23. valueFrom:
  24. fieldRef:
  25. fieldPath: metadata.namespace
  26. - name: POD_IP
  27. valueFrom:
  28. fieldRef:
  29. fieldPath: status.podIP
  30. - name: NODE_NAME
  31. valueFrom:
  32. fieldRef:
  33. fieldPath: spec.nodeName
  34. - name: SERVICE_ACCOUNT
  35. valueFrom:
  36. fieldRef:
  37. fieldPath: spe
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/617196
推荐阅读
相关标签
  

闽ICP备14008679号