背景: 部署skywalking需要管理k8s的pod,需要一个参数-Dskywalking.agent.instance_name
要将podname传递给这个参数 -Dskywalking.agent.instance_name={PODNAME} 通过configmap和secret都无法传递。
在容器里通过这两个命令都可以获取到podname
但在env里这样设置或者${HOSTNAME}都无法实现传递.
按照如下方式 Downward API 字段引用,它将 Pod 的名称传递给容器的环境变量中。
当 Pod 启动时,Kubernetes 将自动将 Pod 的名称注入到容器的环境变量中。
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name