k8s探针详细学习笔记

2024-08-30 00:04

本文主要是介绍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 将不会向该容器发送流量。

这篇关于k8s探针详细学习笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1119224

相关文章

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Python包管理工具核心指令uvx举例详细解析

《Python包管理工具核心指令uvx举例详细解析》:本文主要介绍Python包管理工具核心指令uvx的相关资料,uvx是uv工具链中用于临时运行Python命令行工具的高效执行器,依托Rust实... 目录一、uvx 的定位与核心功能二、uvx 的典型应用场景三、uvx 与传统工具对比四、uvx 的技术实

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

SpringBoot整合Apache Flink的详细指南

《SpringBoot整合ApacheFlink的详细指南》这篇文章主要为大家详细介绍了SpringBoot整合ApacheFlink的详细过程,涵盖环境准备,依赖配置,代码实现及运行步骤,感兴趣的... 目录1. 背景与目标2. 环境准备2.1 开发工具2.2 技术版本3. 创建 Spring Boot

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意