22.3. 使用 Downward API 消耗容器值
22.3.1. 使用环境变量
消耗 Downward API 的一种机制是使用容器的环境变量。EnvVar
类型的 valueFrom
字段(类型为 EnvVarSource
)用于指定变量的值应来自一个 FieldRef
源,而不是 value
字段指定的字面值。以后可能会支持其他源 ; 当前,源的 fieldRef
字段用于从 Downward API 中选择一个字段。
只有 pod 常量属性可以这种方式消耗,因为一旦进程启动并且将变量值已更改的通知发送给进程,就无法更新环境变量。使用环境变量支持的字段包括:
- Pod 名称
Pod 命名空间
创建
pod.yaml
文件:apiVersion: v1 kind: Pod metadata: name: dapi-env-test-pod spec: containers: - name: env-test-container image: gcr.io/google_containers/busybox command: [ "/bin/sh", "-c", "env" ] env: - name: MY_POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: MY_POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace restartPolicy: Never
从
pod.yaml
文件创建 pod:$ oc create -f pod.yaml
检查容器的日志,以查看
MY_POD_NAME
和MY_POD_NAMESPACE
值:$ oc logs -p dapi-env-test-pod