在同一 pod 的所有容器上设置相同的环境变量
Set the same environment variables on all containers of the same pod
我想在我的 pod 的所有容器上将相同的环境变量设置为相同的值。我不想在容器之间传递信息,所以这个变量不会更新,但我想确保如果有人更新它的值,它会在我的 pod 中的所有容器中保持同步。
有什么开箱即用的方法吗?目前我看到两个选项:
- 丑陋的方法是在一个容器上设置值并在其他容器上使用
fieldRef
。
- 更简单的方法是创建一个新的 ConfigMap 并在所有容器中使用 envFrom。
但是Pods作为一个“单一单元”,没有办法定义“pod-wide”环境变量似乎很奇怪。
有几种方法。
最常见的做法就是您提到的使用 ConfigMap
。这种方式在Kubernetes docs.
中有解释
另一种选择是使用 Secret,但它类似于 ConfigMap
方式。
如果您在部署前知道该变量,您可以Define an environment variable for a container
最后一种方法是在每个容器中手动设置它们,但是这种方法很苛刻。
在medium article中传递environmental variable
也有很好的比较。
我想在我的 pod 的所有容器上将相同的环境变量设置为相同的值。我不想在容器之间传递信息,所以这个变量不会更新,但我想确保如果有人更新它的值,它会在我的 pod 中的所有容器中保持同步。
有什么开箱即用的方法吗?目前我看到两个选项:
- 丑陋的方法是在一个容器上设置值并在其他容器上使用
fieldRef
。 - 更简单的方法是创建一个新的 ConfigMap 并在所有容器中使用 envFrom。
但是Pods作为一个“单一单元”,没有办法定义“pod-wide”环境变量似乎很奇怪。
有几种方法。
最常见的做法就是您提到的使用
中有解释ConfigMap
。这种方式在Kubernetes docs.另一种选择是使用 Secret,但它类似于
ConfigMap
方式。如果您在部署前知道该变量,您可以Define an environment variable for a container
最后一种方法是在每个容器中手动设置它们,但是这种方法很苛刻。
在medium article中传递environmental variable
也有很好的比较。