由于Kubernetes是一个分布式系统,并且组件特别的多,分布式系统有一个很大的难点就是应用管理,当其中一个组件或者服务损坏的时候,必须能够在承受的时间内发现它,并且最终修复它,而且,这些都是不需要人为干预的。
默认情况下,一旦k8s里面有pod中的Container启动,就向他发送通讯请求,而当通讯中断并且在规定时间内无法恢复的时候,便认定该pod崩溃,并且会重启该pod,但是,k8s提供了一种更好方式来监控pod内部Container的状态,就是健康探测器,探测器有两种,liveness和readiness探测器。
Liveness:
Liveness Pro是为了k8s知道pod是否存活(决定是否重启容器),而不一定可用,如果pod死亡,k8s会启动一个新的pod。它的初始值为成功,防止在还没有成功启动之前就被杀死,如果在规定时间还没有起来,就会将初始值设置为false,从而触发容器重建
存在某一个场景,你的pod因为某个原因被挂起了而不能响应任何请求,但是进程却是存在的,k8s会认为该pod正常,从而继续向该pod发送请求。
但是如果使用了liveness pro,k8s就会知道该pod已经死亡,并且会重启这个pod。
Readiness:
Readiness Pro的设计目的是为了让k8s知道pod已经完全准备就绪,在向该pod发送通讯请求之前,会先进行Readiness Probe测试,如果该测试没有通过,k8s则会停止向该pod发送请求,直到测试通过。它的初始值为失败,这样防止在应用成功启动之前就开始流动的导入没如果在规定的时间启
kubernetes 是怎么知道一个pod是否存活并且能够正常提供服务的
最新推荐文章于 2024-02-02 21:48:54 发布