0

我是 istio 和 k8s 的新手,最近我一直在探索 istio 异常值检测,我对一些事情有点困惑。如果我错了,请纠正我:

1.异常值检测是基于pods,readiness探针是基于容器吗?但实际上两者都会从“lb”(svc 或子网的连接池)中删除不健康的 pod

2.我能想到的最好的场景是,我们可以配置我们的就绪探测让我们说 30 秒的间隔,但是当异常值检测到 5** 时,异常值检测会将不健康的 pod 从池中取出。

3.异常检测会在 BaseEjectionTime 之后重新添加 pod,我假设情况是这样的,从池中挑选出一个 pod,然后 liveness probe 显示不健康并重新启动容器。在这一切之后,吊舱又恢复了健康并重新添加到池中?

4. 理想情况下,如果就绪探测每秒运行一次且没有误报,这是否与异常值检测一样有效?还是因为它需要与 apiserver 通信,并且可能存在网络延迟和调度程序问题等等等等,所以 istio 更高效?

5.只是好奇他们两个如何在生产中协同工作,有什么最佳实践吗?

任何意见/想法表示赞赏,谢谢大家!

4

1 回答 1

0

本文介绍了有关 istio 异常值检测工作原理的最佳解释。我建议阅读它。

健康检查探针允许根据特定配置检测 pod 何时准备好或响应。另一方面,异常值检测控制服务从连接池中弹出之前的错误数量。

当 k8s 健康检查失败时,pod 会重新启动。在异常值检测的情况下,触发异常值检测的端点在特使级别暂停,并有时间恢复。

可能存在异常检测触发的情况,而 k8s 健康检查没有任何变化。

另请注意,istio 异常值检测的间隔和基本弹出时间是动态的,每次触发时可能会更长,而且不是很精确。

于 2020-10-26T16:37:11.333 回答