k8s_Pod健康检查

ops/2024/10/31 12:08:54/

Kubernetes 3种探针介绍

  1. LivenessProbe(存活探针)
    LivenessProbe 用于检查容器是否仍然活着。如果探针检测到容器已经失去响应,Kubernetes 将重启该容器。这通常用来修复由于内部状态错误或死锁引起的程序失效问题。
    作用:检测容器是否处于“存活”状态,如果探针失败,则容器会被重启。
    使用场景:适合长时间运行的容器,当容器出现死锁或无法继续正常工作时,通过 LivenessProbe 可以自动恢复服务。

  2. ReadinessProbe(就绪探针)
    ReadinessProbe 用于检查容器是否已经准备好处理流量。如果探针检测失败,Kubernetes 会将Pod从服务的负载均衡中移除,避免将流量发送到不健康的Pod。
    作用:判断容器是否可以处理请求,确保只有当容器准备好时,它才会接收流量。
    使用场景:用于检测容器是否能够对外提供服务。例如,应用初始化需要加载配置文件或依赖服务时,可以通过 ReadinessProbe 来避免服务在容器准备好之前接收请求。

  3. StartupProbe(启动探针)
    StartupProbe 用于检测容器的启动状态。它专门用于检测启动时间较长的容器,确保容器在完成启动之前不会被 LivenessProbe 错误地判定为不健康。如果配置了 StartupProbe,它将代替 LivenessProbe 进行探测,直到探针成功。
    作用:判断容器是否已经完成启动,避免因启动时间较长导致容器过早被 LivenessProbe 重启。
    使用场景:适用于那些启动时间较长的应用,如大型数据库或复杂的微服务,它们可能需要更多的时间来初始化。

配置参数说明
initialDelaySeconds:容器启动后第一次执行健康检查的延迟时间。
periodSeconds:两次健康检查之间的间隔时间。
timeoutSeconds:健康检查的超时时间,如果超过这个时间没有收到响应,认为检查失败。
failureThreshold:连续失败多少次后认为容器不健康并执行重启操作。
successThreshold:连续成功多少次后认为容器恢复健康。

检测容器的健康状态方式

  1. exec 方式
    exec 方式通过在容器内执行命令来检测健康状态。如果命令的退出状态码为 0,则表示健康;否则表示不健康,Kubernetes 会重启容器
livenessProbe:exec:command:- cat- /tmp/healthyinitialDelaySeconds: 5periodSeconds: 10# 在这个例子中,Kubernetes每10秒执行一次 cat /tmp/healthy 命令,如果 /tmp/healthy 文件存在且命令成功执行,容器就被认为是健康的。如果文件不存在或命令失败,Kubernetes 会重启容器
  1. httpGet 方式
    httpGet 方式通过发送HTTP请求到容器内的特定端点,根据返回的HTTP状态码来判断容器是否健康。返回2xx或3xx的状态码表示健康,其他状态码表示不健康。
livenessProbe:httpGet:path: /healthzport: 8080httpHeaders:- name: Custom-Headervalue: AwesomeinitialDelaySeconds: 3periodSeconds: 5#在这个例子中,Kubernetes每5秒向容器的/healthz端点发送一个HTTP GET请求。如果返回的状态码是2xx或3xx,容器被认为是健康的。如果返回其他状态码,容器会被重启
  1. tcpSocket 方式
    tcpSocket 方式通过尝试连接容器的TCP端口来检测健康状态。如果连接成功,则表示容器健康,否则容器将被重启。
livenessProbe:tcpSocket:port: 8080initialDelaySeconds: 10periodSeconds: 20
# 在这个例子中,Kubernetes每20秒尝试连接容器的8080端口。如果连接成功,容器被认为是健康的;如果连接失败,容器将被重启

http://www.ppmy.cn/ops/129859.html

相关文章

Android系统架构

Android系统架构: Android系统架构是一个复杂的、分层的结构,旨在提供高度的灵活性和可扩展性。这个架构可以大致分为以下几个主要层次: Linux Kernel(Linux内核): Linux内核是Android系统的底层&#xff0…

专业140+总分410+武汉大学807信号与系统考研经验武大原936电子信息与通信工程,真题,大纲,参考书。

考研专业课807信号与系统(原936)140,总分410,顺利被武汉大学录取,群 里不少同学希望总结一下复习经验,回看这一年有得有失,总结一下希望给大家有些参考。考研还需从自身情况出发,制定适合自己的复习计划&am…

RabbitMQ延迟消息插件安装(Docker环境)

背景:当我们需要使用RabbitMQ发送延迟消息的时候,为了简化延迟消息发送的实现,一般都会给RabbitMQ安装延迟插件"rabbitmq_delayed_message_exchange" 如下会说明使用Docker启动的RabbitMQ容器如何安装延迟消息插件。 1. Docker启动…

信息安全数学基础(37)有限生成交换群

一、定义 有限生成交换群是指存在一个有限集合的元素(称为生成元),通过有限次数的加法运算(群运算)可以生成群中的所有元素。即,若群G存在一个有限子集S,使得G中每一个元素都可以表示为S中元素的…

KAN原作论文github阅读(readme)

目录 目录 地址 超参数设置 结构规模要小 lamb——正则化参数入 增加解释性 1.稀疏化网路 2.剪枝 3.可解释性与准确性不一定对立, 4.训练出较好的结果,可以增加数据量,再来最后一次的训练! 作者note 一些链接&#xff…

浮动+flex布局

一.浮动 1.介绍 2.效果 <style> .one{ width: 100px; height: 100px; background-color: red; float: left; } .two{ width: 200px; height: 200px; background-color: blue; float: right; } </style> </head> <body> <div class"one&quo…

第七章 利用css和多媒体美化页面

7.1CSS链接的美化 7.1.1 文字链接的美化 在HTML5中&#xff0c;<a></a>标签始终定义超链接&#xff0c;用于从一张页面链接到另一张页面&#xff0c;<a>元素最重要的属性是href属性&#xff0c;它指示链接的目标&#xff0c;如果未设置href属性&#xff0c;…

【PythonWeb开发】Flask-RESTful视图类基础知识

flask_restful 是一个扩展库&#xff0c;它为 Flask 提供了快速构建 RESTful API 的功能。使用 flask_restful 可以简化 RESTful API 的开发过程&#xff0c;减少样板代码&#xff0c;并且提供了一些高级特性&#xff0c;如 HTTP 方法的映射、资源路由的定义等。 在flask_restf…