是否可以在不同pods的其他容器中复用k8s容器环境变量?
Is it possible to reuse k8s container environment variables in other containers of different pods?
目前,我有多个单独的 pods,每个 运行 相同的图像,但具有不同的入口点。因此,pods 需要相同的环境变量集。这是 helm 模板的示例,说明我如何使用普通的 k8s env 属性将 env 变量传递给 pod(但是,实际的变量数量要多得多):
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: {{ get-value-from-helm-values }}
- name: DEMO_FAREWELL
value: {{ get-value-from-helm-values }}
由于每个 pods 都需要相同的环境变量集,我目前正在为每个需要的 pod 容器定义多次复制粘贴整个长列表,这使它变得非常混乱。有没有更好的方法来共享这些变量?
实现这一点的正确过程是通过使用 ConfigMap。创建所有变量的配置映射,然后使用 envfrom
作为环境变量加载
目前,我有多个单独的 pods,每个 运行 相同的图像,但具有不同的入口点。因此,pods 需要相同的环境变量集。这是 helm 模板的示例,说明我如何使用普通的 k8s env 属性将 env 变量传递给 pod(但是,实际的变量数量要多得多):
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: {{ get-value-from-helm-values }}
- name: DEMO_FAREWELL
value: {{ get-value-from-helm-values }}
由于每个 pods 都需要相同的环境变量集,我目前正在为每个需要的 pod 容器定义多次复制粘贴整个长列表,这使它变得非常混乱。有没有更好的方法来共享这些变量?
实现这一点的正确过程是通过使用 ConfigMap。创建所有变量的配置映射,然后使用 envfrom