目录
87.简述 pod 中 readiness 和 liveness 的区别和各自应用场景。
特别说明:
题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。
题目 69-113 属于【Kubernetes】的生产应用题。
87.简述 pod 中 readiness 和 liveness 的区别和各自应用场景。
存活性探针(liveness probes)和就绪性探针(readiness probes):
(1)用户通过 Liveness 探测可以告诉 Kubernetes 什么时候通过重启容器实现自愈。
(2)Readiness 探测则是告诉 Kubernetes 什么时候可以将容器加入到 Service 负载均衡池中,对外提供服务,语法是一样的。
(3)主要的探测方式支持 http 探测,执行命令探测,以及 tcp 探测:
① 执行命令探测:
kubelet 是根据执行命令的退出码来决定是否探测成功。当执行命令的退出码为 0 时认为执行成功,否则为执行失败。如果执行超时,则状态为 Unknown。
② http 探测:
http 探测是通过 kubelet 请求容器的指定 url,并根据 response 来进行判断。
当返回的状态码在 200 到 400(不含 400)之间时,也就是状态码为 2xx 和 3xx 是,认为探测成功;否则认为失败。
③ tcp 探测:
tcp 探测是通过探测指定的端口。如果可以连接,则认为探测成功,否则认为失败。
(4)探测失败的可能原因:
① 执行命令探测失败的原因主要可能是容器未成功启动,或者执行命令失败。
② 当然也可能 docker 或者 docker-shim 存在故障。
③ 由于 http 和 tcp 都是从kubelet 自 node 节点上发起的,向容器的 ip 进行探测。所以探测失败的原因除了应用容器的问题外,还可能是从 node 到容器 ip 的网络不通。
“【Kubernetes】常见面试题汇总” 系列文章,可点击链接查看专栏详情:K8s 面试题汇总
标签:容器,面试题,http,Kubernetes,执行命令,tcp,探测,三十五 From: https://blog.csdn.net/Songyaxuan075118/article/details/142493499