【Kubernetes】第十二篇 - 服务探针简介

文章介绍了K8s中的服务探针机制,包括用于检查服务是否存活的存活探针(LivenessProbe)、判断服务是否准备就绪的可用探针(ReadinessProbe)以及检测服务是否启动成功的启动探针(StartupProbe)。这些探针确保了Pods的健康运行,防止将流量分配给未准备好或故障的服务。存活探针会在服务异常时重启Pod,可用探针影响流量分配,而启动探针则关注服务初始化阶段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,前言

上一篇,介绍了 k8s 滚动更新的实现;

本篇,介绍 k8s 服务探针;


二,健康度检查

当 Pod 的状态为 Running 时,即 Pod 能够被访问到,就可以被分配流量了;

但是,一个后端容器启动成功,不一定代表服务启动成功了;

比如:mysql 数据库的容器,mysql 容器成功启动后,还需要启动 mysql服 务,而 mysql 服务的启动需要 1 分钟以上的时间,有可能启动成功也有可能启动失败;

所以,mysql 的容器启动成功并不代表 mysql 服务最终可以被访问;

类似这种“容器活着,但服务已经死掉了”的情况,需要如何才能判断容器中的服务是否正常呢?

可以使用服务探针(古代试毒,用银针往碗里一插,变黑了就是有毒),探针就是指通过探测的手段,查看服务是否存活;

三,服务探针

服务探针共有三种:

  • 存活探针 LivenessProbe:探测服务是否活着;
  • 可用探针 ReadinessProbe 探测服务是否或者且能正常工作;
  • 启动探针 StartupProbe 探测启动成功;

探针不是容器,探针是容器的属性,是被植入到容器内部的

1,存活探针 LivenessProbe

存活探针:可以用来检测正在运行中的服务是否发生崩溃、中途出现退出或无响应现象;

当探针探测到错误时, Kubernetes 就会杀掉这个 Pod;否则,将不会进行任何处理;

备注:如果默认没有配置这个探针, Pod 不会被杀死;

2,可用探针 ReadinessProbe

可用探针:可以用来检测 Pod 是否允许被访问到(是否准备好接受流量)。

如果服务加载数据较多,或有要求需要在特定情况下不被分配到流量,可以用这个可用探针;

当探针检测失败时,流量就不会分配给该 Pod;探针检测失败,Pod 不会被杀死;
备注:在没有配置该探针的情况下,会一直将流量分配给 Pod;

3,启动探针 StartupProbe

  • 第三种是启动探针。作用是用来检测 Pod 是否已经启动成功。如果你的服务启动需要一些加载时长(例如初始化日志,等待其他调用的服务启动成功)才代表服务启动成功,则可以用这个探针。
  • 如果探针检测失败,该 Pod 就会被杀死重启。在没有配置该探针的情况下,默认不会杀死 Pod 。在启动探针运行时,其他所有的探针检测都会失效

四、三种探针的对比

探针名称在哪个环节触发作用检测失败对Pod的反应
启动探针Pod 运行时检测服务是否启动成功杀死 Pod 并重启
存活探针Pod 运行时检测服务是否崩溃,是否需要重启服务杀死 Pod 并重启
可用探针Pod 运行时检测服务是不是允许被访问到停止Pod的访问调度,不会被杀死重启

五,结尾

下一篇,服务探针的实现;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BraveWangDev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值