使用示例来设置环境变量我可以设置它们,但我找不到关于在清单中哪里可以使用它们的文档。使用 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 地址
您不能在清单中使用环境变量。您只能在 Pod 内使用它们。它们描述的是 Pod 的环境,而不是解析清单的环境。
@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"