我是istio和k8s的新手,最近我一直在探索istio异常值检测,如果我错了,我对几个things.Please纠正我有点困惑:
1.异常检测基于pod,基于容器的就绪探测?但实际上两者都会将不健康的pod从“lb”(svc或子网的连接池)中移除。
2.我能想到的最好的情况是,我们可能会配置就绪探测,假设间隔30秒,但当异常值检测得到5**时,会将不健康的pod从池中取出。
3.异常检测将在BaseEjectionTime之后重新添加pod,我假设情况类似于,从池中挑选出一个pod,然后活动探针显示不健康并重新启动容器。在所有这些之后,pod又恢复了健康,并重新添加到池中?
4.理想情况下,如果就绪探测器每秒运行一次并且没有错误警报,这是否与异常值检测相同?或者因为它需要与apiserver对话,并且可能存在网络延迟和调度程序问题等等,所以istio更高效?
5.只是好奇他们两个是如何在生产中一起工作的,有什么最佳实践吗?
任何意见/想法都很感谢,谢谢大家!
发布于 2020-10-27 00:37:11
关于istio异常值检测如何工作的最好解释在此article中介绍。我推荐你去读一读。
健康检查探头允许检测pod何时准备就绪或根据特定配置进行响应。另一方面,异常值检测控制服务从连接池中弹出之前的错误数量。
当k8s运行状况检查失败时,pod将重新启动。在孤立点检测的情况下,触发孤立点检测的端点在特使级别挂起,并有时间恢复。
可能存在这样一种场景,即在不对k8s健康检查进行任何更改的情况下触发异常检测。
还要注意,istio异常值检测的间隔和基准弹出时间是动态的,并且每次它们被触发时可能更长,并且不是非常精确。
https://stackoverflow.com/questions/64512728
复制相似问题