在 Kubernetes 的 YAML 文件中,可以使用 env
字段来定义容器的环境变量。
以下是一个包含环境变量的 Kubernetes YAML 文件示例:
apiVersion: v1
kind: Pod
metadata:
name: my-pod-with-env-vars
spec:
containers:
- name: alpine-container
imagePullPolicy: IfNotPresent
image: alpine
command:
- "sh"
- "-c"
- "echo $MY_ENV_VAR && sleep 3600"
env:
- name: MY_ENV_VAR
value: "Hello, World!"
上面这个 YAML 文件定义了一个 Pod,并在其中创建了一个名为 alpine-container
的容器。该容器将打印环境变量 MY_ENV_VAR
的值,并进入睡眠状态。
在此示例中,我们通过 env
字段将环境变量传递给容器。其中,name
属性指定了环境变量的名称,而 value
属性则指定了其值。
可以添加多个环境变量到同一个容器中。只需要像下面这样继续向 env
数组添加更多元素即可:
env:
- name: ENV_VAR_1
value: "Value of environment variable 1"
- name: ENV_VAR_2
value: "Value of environment variable 2"
也可以从 ConfigMap 或 Secret 中加载环境变量。例如:
spec:
containers:
- name: my-container-name
imagePullPolicy : IfNotPresent
image: my-image-name
env:
- name: ENV_VAR_1
valueFrom:
configMapKeyRef:
name: my-config-map
key: config-map-key-1
- name: ENV_VAR_2
valueFrom:
secretKeyRef:
name: my-secret
key: secret-key-1
上面这个示例中,我们从 ConfigMap my-config-map
中加载了环境变量 ENV_VAR_1
的值,并从 Secret my-secret
中加载了环境变量 ENV_VAR_2
的值。在使用这种方式时,需要确保 ConfigMap 和 Secret 已经存在于 Kubernetes 集群中。