您可以POD_NAME通过.POD_NAMESPACEfieldRef
apiVersion: v1
kind: Pod
metadata:
name: test-env
spec:
containers:
- name: test-container
image: my-test-image:latest
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
- name: REFERENCE_EXAMPLE
value: "/$(MY_NODE_NAME)/$(MY_POD_NAMESPACE)/$(MY_POD_NAME)/data.log"
restartPolicy: Never
编辑:添加示例 envREFERENCE_EXAMPLE以显示如何引用变量。感谢这个答案指出$()插值。
您可以参考此处supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP文档中提到的内容。
但是,CLUSTERNAME不是可用的标准属性。根据此PR #22043,如果使用 GCE ,CLUSTERNAME则应将其注入现场。.metadata
否则,您必须CLUSTERNAME在该字段中手动指定.metadata,然后fieldRef将其作为环境变量注入。