0

万一我的集群中的 pod 出现故障,它需要大约 15 秒或更长时间才能通过就绪探测逻辑来确定故障,由于调用失败而不被接受(因为 kubernetes 没有识别出 pod 故障,所以它会将流量发送到失败的pod / 我的意思是失败的 pod 仍在 cluster-P 服务端点中)。

请在此处建议,如何立即使就绪探测失败或如何在失败时立即删除端点,而无需将 periodSeconds 减少到 5 秒以下。

下面是我的配置:

initialDelaySeconds:90s
periodSeconds:5s
timeoutSeconds:2s
successThreshold:<default>
failureThreshold:<default>

提前致谢。

4

1 回答 1

0

您可以做的是调整探头的配置以满足您的要求:

探针有许多字段,您可以使用它们来更精确地控制活动性和就绪性检查的行为:

  • initialDelaySeconds:容器启动后在启动活动或就绪探测之前的秒数。默认为 0 秒。最小值为 0。

  • periodSeconds:执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。

  • timeoutSeconds: 探测超时的秒数。默认为 1 秒。最小值为 1。

  • successThreshold:探测失败后被视为成功的最小连续成功次数。默认为 1。活性必须为 1。最小值为 1。

  • failureThreshold:当一次探测失败时,Kubernetes 会尝试 failureThreshold 次才放弃。在 liveness probe 的情况下放弃意味着重新启动容器。在就绪探测的情况下,Pod 将被标记为未就绪。默认为 3。最小值为 1。

您没有指定,failureThreshold所以它默认为 3。您当前使用的值需要大约 15-20 秒才能将 pod 视为失败并重新启动它。

如果您设置、 和 的最小值,您可以periodSeconds期待更频繁的检查和更快的 pod 重新创建。timeoutSecondssuccessThresholdfailureThreshold

于 2020-10-23T10:26:02.163 回答