InitContainer在同一Pod中运行时是否可以更改应用程序容器的环境变量?请注意,我正在寻找一个详细的答案,说明为什么这是或不可能的技术原因。例如:'当前容器技术支持容器之间的环境变量隔离,Pod无法通过将容器“分组”在同一“环境变量空间”中来绕过该限制'。
roejwanj1#
简短的回答是不,他们不能。你可以尝试一些黑客的东西使用ShareProcessNamespace和gdb,但可以肯定的是,这不是正确的解决方案,你试图解决的问题.
xpcnnkqh2#
不,不可能像那样只更改变量。一个可能的解决方法是使用InitContainer和主容器之间共享的EmptyDir卷。您可以使用InitContainer中的文件将变量存储在那里,然后使用一些简单的shell脚本将它们加载到主容器中。
InitContainer
EmptyDir
vsikbqxv3#
这正是我们在kubernetes上使用https://developer.hashicorp.com/vault/docs/platform/k8s/injector/annotations中的注入器对Vault所做的。这将注入一个init容器。然后,我们使用emptyDir卷,Vault代理初始化容器将在其中创建一个文件,然后正在运行的容器将在启动时获取该文件。
emptyDir
3条答案
按热度按时间roejwanj1#
简短的回答是不,他们不能。
你可以尝试一些黑客的东西使用ShareProcessNamespace和gdb,但可以肯定的是,这不是正确的解决方案,你试图解决的问题.
xpcnnkqh2#
不,不可能像那样只更改变量。一个可能的解决方法是使用
InitContainer
和主容器之间共享的EmptyDir
卷。您可以使用InitContainer
中的文件将变量存储在那里,然后使用一些简单的shell脚本将它们加载到主容器中。vsikbqxv3#
这正是我们在kubernetes上使用https://developer.hashicorp.com/vault/docs/platform/k8s/injector/annotations中的注入器对Vault所做的。
这将注入一个init容器。
然后,我们使用
emptyDir
卷,Vault代理初始化容器将在其中创建一个文件,然后正在运行的容器将在启动时获取该文件。