【发布时间】:2021-01-30 19:50:57
【问题描述】:
我正在尝试在 Kubernetes 上运行我的应用程序。我的 docker 容器有 PATH 和 LD_LIBRARY_PATH 等环境变量,它们是在 Dockerfile 中设置的。我尝试像这样在 yaml 文件中更改它们:
env:
- name: LD_LIBRARY_PATH
value: "foo:$(LD_LIBRARY_PATH)"
上面的配置不行,我只是在pod里看到LD_LIBRARY_PATH=foo:$(LD_LIBRARY_PATH)。这种方法似乎适用于 Kubernetes 环境变量,例如 KUBERNETES_PORT_443_TCP_PROTO,但不适用于 docker 环境变量。
我的问题是:
-
我认为yaml中的
env设置是在容器运行时间之前注入到docker中的,所以kubernetes无法读取LD_LIBRARY_PATH的值。因此它不能改变变量。我理解的对吗? -
如何使用 kubernetes env 更改容器环境变量?我知道我可以在 yaml 文件的
command字段中设置环境变量,但这似乎不干净,还有其他方法吗? -
如果 Kubernetes 不能改变已经存在的 envs,是否意味着 yaml 文件中的 env 字段是设计用来添加新的 envs 的?
谢谢!
【问题讨论】:
标签: docker kubernetes environment-variables