gpt4 book ai didi

kubernetes - 指定 Kubernetes DaemonSet 的调度顺序

转载 作者:行者123 更新时间:2023-12-02 11:54:28 25 4
gpt4 key购买 nike

我的集群中运行着 Consul,每个节点都运行一个 consul-agent 作为 DaemonSet。我还有其他与 Consul 交互的 DaemonSet,因此需要运行一个 consul-agent 才能与 Consul 服务器通信。

我的问题是,如果我的 DaemonSet 在 consul-agent 之前启动,应用程序将出错,因为它无法连接到 Consul 并随后重新启动。

我也注意到其他 DaemonSets 也有同样的问题,例如 Weave ,因为它需要 kube-proxy 和 kube-dns。如果 Weave 先启动,它将不断重启,直到 kube 服务准备就绪。

我知道我可以向我的应用程序添加重试逻辑,但我想知道是否可以指定 DaemonSet 的调度顺序?

最佳答案

Kubernetes 本身不提供一种方法来处理 pod/部署/服务之间的特定依赖关系(例如,“仅当服务 B 可用时才启动 pod A”或“在 pod B 之后启动 pod A”)。

当前的方法(基于我在研究此问题时发现的内容)似乎是重试逻辑或初始化容器。引用docs :

They run to completion before any app Containers start, whereas app Containers run in parallel, so Init Containers provide an easy way to block or delay the startup of app Containers until some set of preconditions are met.

这意味着您可以将重试逻辑添加到您的应用程序(我建议这样做,因为它可能会在不同情况下帮助您,例如短暂的服务中断)或者您可以使用通过 Kubernetes 服务轮询健康端点的初始化容器直到得到满意的响应为止。

关于kubernetes - 指定 Kubernetes DaemonSet 的调度顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50435031/

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