在每次初始化另一个Pod之前检查特定Pod的状态

时间:2019-10-02 21:17:25

标签: kubernetes

假设这样部署:

  1. 部署包含两种类型的Pod Config和App
  2. 每个要启动的App窗格都必须有权访问Config窗格
  3. 总是只有一个配置窗格
  4. 已经启动的App pod可以在不访问Config pod服务的情况下工作

我要管理的情况:

  1. 包含某些App pod和Config Pod出于某种原因而关闭的节点
  2. 在另一个节点上,首先启动Config pod
  3. 成功启动Config Pod后启动App Pod

已经阅读:

  1. InitContainers-如果在上述情况下Config pod的类型为Init,则找不到信息,如果它会重新运行-我想不是
  2. StatueFullSet-在这种情况下,我找不到解决方案的方法

从我的角度来看,我正在考虑在运行目标应用程序之前为App Pod循环,这将等待Config Pod出现,并在超时后不可用的情况下迫使它们失败。但是我不确定这是否是最佳实践,是否希望使用Kubernetes配置而不是使用此类脚本更好地解决这个问题。

1 个答案:

答案 0 :(得分:1)

您将使用应用程序中的代码或initContainer进行阻止,直到配置窗格可用。结合使用readinessProbe来检查应用程序是否启动。在您自己的代码中执行“阻止并重试”循环还需要更多工作,但建议您这样做,因为您可以更仔细地控制行为。这意味着应用程序Pod可以在任何时候启动,但是直到初始化它们才被标记为可以流量。