当前位置: 首页 > news >正文

k8s探针详细学习笔记

在 Kubernetes 中,主要有三种类型的探针(Probes),用于检测容器的状态:
1.存活探针(Liveness Probes):
用来检测容器是否存活,即容器是否仍在运行。如果存活探针失败,Kubernetes 会根据容器的重启策略来重启容器。
2.就绪探针(Readiness Probes):
用来检测容器是否已经准备好接收流量。如果就绪探针失败,Kubernetes 会阻止将新的流量发送到该容器,但不会重启容器。
3.启动探针(Startup Probes):
用来检测容器内的应用程序是否在启动期间已经可用。这是 Kubernetes 1.12 版本引入的特性。如果启动探针失败,Kubernetes 会认为容器没有成功启动,并根据重启策略来重启容器。

三者结合使用的顺序是:启动探针——>存活探针——>就绪探针

每种探针都可以通过以下三种方式来实现:

ExecAction:
在容器内执行一个命令,根据命令的退出状态码来判断容器状态。

TCPSocketAction:
对容器的 IP 地址和端口进行 TCP 检查,如果能够建立连接,则认为容器状态正常。

HTTPGetAction:
向容器的 IP 地址和端口发送 HTTP GET 请求,根据响应状态码来判断容器状态。

每种探针都可以配置以下探针配置参数:
initialDelaySeconds:容器启动后等待多少秒再开始执行探针。
periodSeconds:探针的执行频率。
timeoutSeconds:探针超时时间。
successThreshold:探测成功时的阈值。
failureThreshold:探测失败时的阈值。

各个探针示例:
启动探针(Startup Probes)
应用场景:
检测应用程序是否在启动过程中已经可用。
例如,应用程序可能需要较长时间来初始化,在此期间不应接收流量。

startupProbe:httpGet:path: /healthport: 8080failureThreshold: 30periodSeconds: 10

这个配置表示在容器启动后,每 10 秒发送一次 HTTP GET 请求到 http://:8080/health。如果在连续 30 次尝试中都失败,Kubernetes 将重启容器。这个探针可以防止在应用程序完全启动之前接收流量。

存活探针(Liveness Probes)
应用场景:
检测应用程序是否仍在运行,但未响应。
例如,应用程序可能因为某些错误而挂起或停止响应请求。

livenessProbe:exec:command: ["cat", "/tmp/health"]initialDelaySeconds: 15periodSeconds: 20

这个配置表示在容器启动 15 秒后,每 20 秒执行一次 cat /tmp/health 命令。如果命令返回非 0 状态码,Kubernetes 将重启容器。

就绪探针(Readiness Probes)
应用场景:
确定应用程序是否已经完全启动并准备好接收请求。
例如,应用程序可能需要加载大量数据或完成初始化操作。

readinessProbe:httpGet:path: /readyport: 8080initialDelaySeconds: 5periodSeconds: 10

这个配置表示在容器启动 5 秒后,每 10 秒发送一次 HTTP GET 请求到 http://:8080/ready。如果请求返回的 HTTP 状态码不是 200-399 范围内的值,Kubernetes 将不会向该容器发送流量。


http://www.mrgr.cn/news/14892.html

相关文章:

  • MAX_VALUE 和 MAX_SAFE_INTEGER的区别及相关知识
  • vue-router4.2.5 useRouter源码解读
  • GAN Inversion(GAN 反演)
  • Spring Cloud全解析:网关之GateWay简介
  • 利用通义灵码实现我的第一次开源贡献
  • JVM垃圾回收器
  • 发红包案例(java)
  • Linux字体缺失导致EasyExcel报错
  • 谷粒商城实战笔记-284-商城业务-分布式事务-本地事务隔离级别传播行为等复习
  • 生成艺术,作品鉴赏:将像素进行到底
  • 【曾哥分享-1】云 WAF 绕过
  • IWebHostEnvironment 的参数有哪些 ,说明下
  • 三级_网络技术_53_应用题
  • spring boot 根据实体类
  • df保存为excel
  • 【MRI基础】对比度噪声比CNR概念
  • 了解‌Prolog用于故障诊断
  • 阿里龙晰系统上将yum安装的myql_8.0.36升级到mysql_8.4.0的过程
  • MT5016A-ASEMI无人机专用整流桥MT5016A
  • 记一次 Garnet 的安装部署问题排查