
kubernetes 自从1.7开始,可以在pod 的container 内获取pod的spec,metadata 等信息。
为啥可以获取
容器中进程启动顺序:先调度确定pod部署在哪个机器上,部署pod,部署container,启动进程。
所以在启动进程前,就已经有了pod的信息,所以可以获取,然后通过进程启动前设置环境变量的形式来实现。
可以传递的信息
先随便部署一个pod,通过
kubectl get pod -n your-namespace -o yaml your-app
获取的pod信息为
apiVersion: v1
kind: Pod
metadata:
annotations:
cni.projectcalico.org/podIP: 172.16.162.2/32
creationTimestamp: "2020-03-06T15:11:40Z"
generateName: your-app-57846cfdbf-
labels:
app: your-app
pod-template-hash: 57846cfdbf
name: your-app-57846cfdbf-x6nj6
namespace