可以直接设置 Value 值,也可以将当前 Pod 的入环信息作为 Value 值。 apiVersion: v1 kind: Pod metadata: name: envar-demo labels: purpose: demonstrate-envars spec: containers: - name: envar-demo-container image: gcr.io/google-samples/node-hello:1.0 env: - name: DEMO_GREETING value: "Hello from the environment" - name: DEMO_FAREWELL value: "Such a sweet sorrow" - name: MY_NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName - name: MY_POD_NAME valueFrom: fieldRef: 有两种方式引用 Secret 中的境变级问变量: 通过 envFrom 引用 Secret 中全部变量通过 valueFrom 引用 Secret 中指定变量apiVersion: v1 kind: Pod metadata: name: secret-env-pod spec: containers: - name: mycontainer image: redis envFrom: - secretRef: name: secret-config env: - name: SECRET_USERNAME valueFrom: secretKeyRef: name: secret-config key: username - name: SECRET_PASSWORD valueFrom: secretKeyRef: name: secret-config 有两种方式引用 ConfigMap 中的变量: 通过 envFrom 引用 ConfigMap 中全部变量通过 valueFrom 引用 ConfigMap 中指定变量apiVersion: v1 kind: Pod metadata: name: dapi-test-pod spec: containers: - name: test-container image: k8s.gcr.io/busybox envFrom: - configMapRef: name: configmap-config env: - name: SPECIAL_LEVEL_KEY valueFrom: configMapKeyRef: name: special-config key: special.how - name: LOG_LEVEL valueFrom: configMapKeyRef: name: env-config 从源码中可以看到的实现逻辑是,会初始化一个 Map 存放环境变量,量及然后按照如下步骤进行处理: 优先级是云服务器提供商中注,Service 变量 > Env > EnvFrom,入环其中 EnvFrom 的境变级问优先级是后面覆盖前面。 这里单独说下,量及注入到环境变量中的优先 Service 相关变量:1. Kubernetes Pod 引用环境变量的中注几种方式
1.1 直接 Key/Value2. 变量引用的优先级
3. 参考
https://img.ydisp.cn/news/20220701/ctkn1pxyyq3.go data-id="l20de63f-pCK01fpn">https://img.ydisp.cn/news/20220701/4d3dzaxulmn.go