【发布时间】:2021-10-16 10:21:54
【问题描述】:
在实现更好的 kubernetes 资源部署方面需要一些帮助。
本质上,我们试图在单个 values.yaml 文件中提及每个资源。 安装图表时。所有资源都是并行创建的。其中我有 2 个组件。 假设组件 1 和组件 2。
对于component1,它的主要功能是在服务器机器上安装一些dars。这需要 45 分钟到一个小时。
对于组件2,它依赖于组件1将安装到服务器上的一些dars。
问题是,当您部署 helm chart 并同时创建每个 pod 时。 即使 component2 的 pod 的状态将运行。当您检查容器日志时,它会告诉您进程启动失败。由于缺少一些类(组件1已安装)
我正在寻找一种方法,通过该方法我可以引入一些延迟直到组件 1 完成,或者继续销毁和重新创建组件 2 的资源直到组件 1 完成。
延迟取决于是否所有 dars 都安装到服务器机器中。
为了重新启动 component2 的所有资源,我正在考虑创建第三个 pod 或维护 pod。它将继续查找 components1 和 2 ,并且它将继续为 component2 重新创建资源,直到 component1 完成。
Readiness 和 liveliness 探针在这里不起作用,因为即使服务启动失败。 Pod 状态将运行。
任何有关如何实现此功能的提示或建议都会有很大帮助。或者如果有更好的方法来处理这个问题。
【问题讨论】:
-
如果第一个 pod 还没有完成,第二个 pod 就会崩溃,那么你已经设置好了,你不需要做任何事情。 Kubernetes 会延迟自动重启;在准备就绪之前,它将处于 CrashLoopBackOff 状态。 (但如果第一个 pod 正在编译和安装软件,那么在您的 CI 系统中执行此操作并为第二个 pod 部署一个完整的映像会是更好的设置。)
标签: kubernetes kubernetes-helm