【问题标题】:Readiness probe for statefulset, not individual pod/container状态集的就绪探测,而不是单个 pod/容器
【发布时间】:2018-11-30 22:50:06
【问题描述】:

我一直在阅读有关 liveness and readiness probes in kubernetes 的信息,我想使用它们来检查集群是否已激活。

问题是如何为整个 statefulset 而不是单个 pod/容器配置就绪探测。

可以使用简单的 HTTP 检查来确定准备情况,但我遇到的问题是,readinessCheck 似乎适用于容器/pod 而不是集合本身。

对于我正在使用的软件,HTTP 端点在集群形成之前不会出现;这意味着每个单独的 pod 都将无法通过 readinessCheck,直到所有三个都启动并找到另一个。

我现在在 Kubernetes 中看到的行为是创建了 3 个副本中的第一个,并且 Kubernetes 甚至不会尝试创建副本 2 和 3,直到第一个通过 readinessCheck,这永远不会发生,因为这三个副本都有做好准备有机会通过它。

【问题讨论】:

    标签: kubernetes google-kubernetes-engine kubernetes-statefulset


    【解决方案1】:

    您需要将 .spec.podManagementPolicyStatefulSetOrderedReady 更改为 Parallel 策略。

    这样,K8S 将并行启动所有 pod,而不会等待探测。

    来自documentation

    podManagementPolicy 控制在初始缩放期间如何创建 pod 向上,在更换节点上的 Pod 时,或者在缩小时。默认 策略是 OrderedReady,其中 pod 是按升序创建的 (pod-0,然后是 pod-1 等),控制器将等到每个 pod 在继续之前准备好。缩小时,豆荚被移除 相反的顺序。替代策略是 Parallel 将 无需等待即可并行创建 pod 以匹配所需的规模, 并且按比例缩小将立即删除所有 pod。

    【讨论】:

      猜你喜欢
      • 2021-09-05
      • 1970-01-01
      • 2021-08-29
      • 1970-01-01
      • 2019-09-24
      • 2018-05-15
      • 2020-05-11
      • 2017-11-02
      • 1970-01-01
      相关资源
      最近更新 更多