环境变量可以在 kubernetes 清单中使用吗?

问题描述 投票:0回答:2

使用示例来设置环境变量我可以设置它们,但我找不到关于在清单中哪里可以使用它们的文档。使用 hostAliases IP 的环境变量替换文字值会出现错误:

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: HOST_ALIAS_IP
      value: "127.0.0.1"      
  hostAliases:
  - ip: $(HOST_ALIAS_IP)
    hostnames:
    - "desktop"

C:>kubectl apply -f envars.yaml
Pod“envar-demo”无效:spec.hostAliases.ip:无效值:“$(HOST_ALIAS_IP)”:必须是有效的 IP 地址

kubernetes environment-variables
2个回答
2
投票

您不能在清单中使用环境变量。您只能在 Pod 内使用它们。它们描述的是 Pod 的环境,而不是解析清单的环境。


0
投票

@larsks 在公认的答案中是正确的,但有时有一个解决方法。根据您的具体情况,我们可以使用 YAML 锚点:

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: HOST_ALIAS_IP
      value: @hostIp "127.0.0.1"      
  hostAliases:
  - ip: *hostIp
    hostnames:
    - "desktop"
© www.soinside.com 2019 - 2024. All rights reserved.