k8s保持pod健康

ops/2025/1/24 5:44:05/

存活探针

Kubemetes 可以通过存活探针 (liveness probe) 检查容器是否还在运行。可以为 pod 中的每个容器单独指定存活探针。如果探测失败,Kubemetes 将定期执行探针并重新启动容器
Kubemetes 有以下三种探测容器的机制:

  • HTTP GET 探针对容器的 IP 地址(用户指定的端口和路径)执行 HTTP GET 请求。
    如果探测器收到响应,并且响应状态码不代表错误(如果 HTTP 响应状态码是2xx或3xx), 则认为探测成功。
    如果服务器返回错误响应状态码或者根本没有响应,那么探测就被认为是失败的,容器将被重新启动。
    在这里插入图片描述
  • TCP 套接字探针尝试与容器指定端口建立TCP连接。如果连接成功建立,则探测成功。否则,容器重新启动。
  • Exec 探针在容器内执行任意命令,并检查命令的退出状态码。如果状态码是 0, 则探测成功。所有其他状态码都被认为失败。
    在这里插入图片描述
    在这里插入图片描述
    RESTARTS 列显示 pod 的容器已被重启一次,可以通过查看kubectl describe的内容来了解为什么必须重启容器
    可以看到容器现在正在运行,但之前由于错误而终止。
    退出代码为137, 这有特殊的含义:表示该进程由外部信号终止。数字137是两个数字的总和:
    128+x, 其中x是终止进程的信号编号。在这个例子中,x等于9, 这是 SIGKILL 的信号编号,意味着这个进程被强行终止。

在底部列出的事件显示了容器为什么终止:Kubemetes发现容器不健康,所以终止并重新创建。
容器被强行终止时,会创建一个全新的容器,而不是重启原来的容器
kubectl describe 还显示关于存活探针的附加信息:
在这里插入图片描述

  • delay=0s 表示在容器启动后立即开始探测。
  • timeout=1s 表示容器必须在1秒内进行响应,否则这次探测记作失败。
  • period=10s 表示每10秒探测一次容器
  • failure=3 表示在探测连续三次失败后重启容器
    定义探针时可以自定义这些附加参数, 比如设置初始延迟。

如果没有设置初始延迟,探针将在启动时立即开始探测容器, 这通常会导致探测失败,因为应用程序还没准备好开始接收请求。如果失败次数超过阈值,在应用程序能正确响应请求之前, 容器就会重启。

总结

Kubernetes 会在容器崩溃或其存活探针失败时,通过重启容器来保持运行,由承载 pod 的节点上的 Kubelet 执行,在主服务器上运行的 Control Plane 组件不会参与此过程。

如果节点本身崩溃,那么 Control Plane 必须为所有随节点停止运行的 pod 创建新的 pod。它不会为你直接创建的 pod 执行此操作,这些 pod 只被 Kubelet 管理,但由于 Kubelet 本身运行在节点上,所以如果节点异常终止,它将无法执行任何操作。


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

相关文章

docker安装elasticsearch:7.17.21

docker安装elasticsearch:7.17.21 下载对应版本的docker镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.21启动容器 docker run --name elasticsearch-test -p 9200:9200 -p 9300:9300 -e "discovery.typesingle-node" -t docker.elastic.…

Kubernetes 文档 / 概念 / Kubernetes 架构 / 节点

Kubernetes 文档 / 概念 / Kubernetes 架构 / 节点 此文档从 Kubernetes 官网摘录 中文地址 英文地址 节点上的组件包括 kubelet、 容器运行时以及 kube-proxy。 管理 向 API 服务器添加节点的方式主要有两种: 节点上的 kubelet 向控制面执行自注册&#xff1b…

图像处理技术与应用(四)

图像处理技术与应用入门 颜色空间及其转换 颜色空间是一种用于在数字图像中表达和指定颜色的方法。不同的颜色空间使用不同的方式来定义颜色,每种方式都有其特定的用途和优势。以下是一些常见的颜色空间及其特点: RGB(红绿蓝)&a…

mysql 按字段查询重复的数据

在 MySQL 中,可以使用多种方法来查询按字段重复的数据。以下是一些最常用的方法: 1. 使用 GROUP BY 和 HAVING 子句 SQL SELECT column_name, COUNT(*) AS count FROM table_name GROUP BY column_name HAVING count > 1; Use code with caution. …

网络演进技术演进:裸纤专线、SDH、MSTP+、OTN、PTN、IP-RAN

前言 文章主要介绍常见名词以及其在各自领域实现的功能价值。 01 裸纤 裸光纤(裸光纤)由运营商提供,是无中继的光纤线路,仅通过配线架连接。相比传统光纤,裸光纤提供纯粹的物理传输路径,无需额外网…

Go中如何将io.Writer转换成字符串(将两个管道连接的exec.Command输出的标准输出获取成字符串)

假设我们需要在Go中运行下面的命令: PS -A | grep wget这里需要写成两个exec.Command,如下,第一个命令为cmd,第二个为cmd2: cmd : exec.Command("PS", "-A") cmd2 : exec.Command("grep&qu…

AI智能分析视频监控系统现状与应用场景浅析

随着人工智能技术的快速发展,智能视频监控系统在安全监管工作中发挥着越来越重要的作用,为企业的安全生产管理提供了强有力的支持,也为企业在安全生产管理上大大提高了安全指数。那么目前安防视频分析的现状与应用场景有哪些呢? …

delphi获取进程版本信息

结构体声明 typeTFileInfo packed recordCommpanyName: widestring;FileDescription: widestring;FileVersion: widestring;InternalName: widestring;LegalCopyright: widestring;LegalTrademarks: widestring;OriginalFileName: widestring;ProductName: widestring;Produc…