gpt4 book ai didi

docker - InitContainer 从 Kubernetes 中的容器镜像中使用 config.template

转载 作者:行者123 更新时间:2023-12-02 21:22:01 25 4
gpt4 key购买 nike

摘要:
我希望能够在 中获取 config.template 文件初始化容器 来自 容器 .

现有状态:
有模板配置文件,很少更改并包含 占位符 ,存储在 的图像中容器 .
当我们在 kubernetes 中创建容器时,镜像中也存储了一个脚本,该脚本运行并用真实值替换所有 PlaceHolders,然后启动服务。

所需状态:
拥有一个从 构建的 Init-Container通用 带有通用代码的图像只需要获取模板文件的目录(作为目录数组)作为参数,当它运行时,它会从容器的图像中获取所有模板文件(抛出 ),替换PlaceHolders 具有实际值(value),并在与容器共享的卷中创建最终配置文件。
这样,Init-Container 会做准备,当它完成后,Container 需要立即使用准备好的配置文件启动。
此外,Init-Container 的同一个镜像也可以在带有其他容器的 pod 中使用。

问题:
首先启动 Init-Container,映射到 Container 镜像并应该包含 config.template 文件的卷是 还是空的当 Init-Container 运行时。

我的问题:
- 在容器运行之前,是否有一种简单而好的方法可以从 Init-Container 的容器镜像中获取这些 config.template 文件?
- 这个问题是否有更好的解决方案来获得相同或相似的结果?

最佳答案

我认为没有办法将 pod 中容器中的文件访问到 init-containers . volume在您的 init-container 之间共享并且 pod 的容器是空的,因为 pod 的容器是 not started until all init-containers successfully exit (退出代码 0 )。

所以我建议你做的事情是创建一个 configMap templates你要。 Mount this configMap 里面init-container .在init-container里面替换 template 中的占位符值来自 configMap并将其转储到 volume您已在 pod 容器和 init-container 之间共享的 pod 。

现在这可以帮助您根据需要更改配置,您需要做的就是更新 configMap资源。替换占位符值的代码也可以更改,您需要做的就是为 init-container 构建图像。 .这也可以帮助您根据需要保持初始化容器图像的通用性。

通过这种解耦,您的源代码容器保持独立于配置中的更改。

还有这个init-containerconfigMap随心所欲地用于其他 pods 。

关于docker - InitContainer 从 Kubernetes 中的容器镜像中使用 config.template,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44183393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com