22.3. 使用 Downward API 消耗容器值


22.3.1. 使用环境变量

消耗 Downward API 的一种机制是使用容器的环境变量。EnvVar 类型的 valueFrom 字段(类型为 EnvVarSource)用于指定变量的值应来自一个 FieldRef 源,而不是 value 字段指定的字面值。以后可能会支持其他源 ; 当前,源的 fieldRef 字段用于从 Downward API 中选择一个字段。

只有 pod 常量属性可以这种方式消耗,因为一旦进程启动并且将变量值已更改的通知发送给进程,就无法更新环境变量。使用环境变量支持的字段包括:

  • Pod 名称
  • Pod 命名空间

    1. 创建 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
    2. pod.yaml 文件创建 pod:

      $ oc create -f pod.yaml
    3. 检查容器的日志,以查看 MY_POD_NAMEMY_POD_NAMESPACE 值:

      $ oc logs -p dapi-env-test-pod
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.