【K8s】专题六(2):Kubernetes 稳定性之健康检查

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!

公众号二维码


目录

一、基本介绍

二、工作原理

三、探针类型

1、存活探针(LivenessProbe)

2、就绪探针(ReadinessProbe)

3、启动探针(StartupProbe)

四、探测方式

1、EXEC 命令探测(ExecAction)

2、TCP 连接探测(TCPSocketAction)

3、HTTP 请求探测(HTTPGetAction)

五、资源清单(示例)


一、基本介绍

在 Kubernetes 中,健康检查是集群通过探针(Probe)定期检查容器是否健康运行,并自动维持容器健康运行的一种机制。

健康检查可以保障容器内应用程序的稳定性和可用性,并控制应用程序何时可以提供对外访问。


二、工作原理
  • 定义探针:用户在 Pod 中定义探针配置,包括探针类型、探测方式、探测间隔和阈值
  • 触发探针:Kubernetes 会根据定义的探针配置,定期触发健康检查
  • 执行探针:Kubernetes 会根据定义的探针配置,在容器中执行 EXEC 命令、建立 TCP 连接或发送 HTTP Get 请求
  • 结果处理:探针执行成功则等待下一次探测,探针执行失败则根据既定规则对容器进行处理


三、探针类型
1、存活探针(LivenessProbe)

LivenessProbe 用于判断容器是否存活,即是否处于 Running 状态。如果 LivenessProbe 检测到容器不健康,Kubernetes 会认为容器内应用程序已经崩溃或挂起,会通过 Kubelet 对该容器进行 Kill 和重启处理。

2、就绪探针(ReadinessProbe)

ReadinessProbe 用于判断容器是否可用,即是否处于 Ready 状态。如果 Pod 中的全部容器都达到 Ready 状态,Pod 才可以接收和处理请求,否则 Kubernetes 会认为容器内应用程序启动异常,会通过 Kubelet 对该容器进行 Kill 和重启处理。

3、启动探针(StartupProbe)

某些应用程序启动非常慢,如果只配置 LivenessProbe 或 ReadinessProbe,很可能出现应用程序还没有完成启动,对应的容器就被 Kill 掉无限重启的情况。

配置有 StartupProbe 的 Pod,在应用程序没有成功启动之前,LivenessProbe 和 ReadinessProbe 均不生效,不会重启容器。


四、探测方式
1、EXEC 命令探测(ExecAction)

尝试在容器内执行一个 EXEC 命令,返回码为 0 表明容器健康。

2、TCP 连接探测(TCPSocketAction)

尝试与容器的指定端口建立 TCP 连接,如果能够建立表明容器健康。

3、HTTP 请求探测(HTTPGetAction)

尝试对容器的指定接口发送 HTTP Get 请求,如果响应码大于等于 200 且小于 400 表明容器健康。


五、资源清单(示例)
apiVersion: apps/v1
kind: Deployment
metadata:nanme: demo-deployment
spec:
...spec:containers:- name: demo-container
...startupProbe / livenessProbe / readinessProbe:exec:                              # EXEC 命令探测方式command: ["cat", "/health.txt"]或tcpSocket:                         # TCP 连接探测方式port: 80或httpGet:                           # HTTP 请求探测方式path: /healthport: 80initialDelaySeconds: 5             # 首次探测前等待时间periodSeconds: 10                  # 探测间隔时间timeoutSeconds: 1                  # 探测超时时间successThreshold: 1                # 探测成功阈值failureThreshold: 3                # 探测失败阈值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/35849.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker入门配置

1、创建配置镜像 由于国内docker连接外网速度慢,采用代理 vi /etc/docker/daemon.json添加以下内容 {"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com","https://dockerproxy.com","https://hub-mirror.c.163.co…

SOA和ESB介绍

SOA(面向服务的架构) 面向服务的架构(Service-Oriented Architecture,SOA)是一种设计理念,用于构建松耦合的、可互操作的、模块化的服务。在SOA架构中,应用程序被划分为一系列的服务&#xff0c…

电脑屏幕花屏怎么办?5个方法解决问题!

“我刚刚打开电脑就发现我的电脑屏幕出现了花屏的情况。这让我很困惑,我应该怎么解决这个问题呢?求帮助。” 在这个数字时代的浪潮中,电脑早已成为我们生活中不可或缺的一部分。然而,当你正沉浸在紧张的游戏对战中,或是…

从零到一学FFmpeg:AVCodecContext 结构体详析与实战

文章目录 前言一、函数原型二、功能描述三、使用场景四、使用实例 前言 avio_open是FFmpeg库中的一个函数,用于打开一个I/O(输入/输出)上下文,以便于读写文件、网络流或其他类型的媒体数据源。这个函数是FFmpeg进行文件操作的基础…

谷歌上搞下来的,无需付费,可以收藏!

在数字化时代,我们越来越依赖于智能设备来获取信息和知识。中国智谋App正是这样一款应用,它将中国古代的智慧与谋略书籍带入了我们的移动设备,让我们能够随时随地学习和领悟。而且提供文言文的原文和译文。 软件下载方式:谷歌上搞…

39.右键弹出菜单管理游戏列表

上一个内容:38.控制功能实现 以 ​​​​​​​ 38.控制功能实现 它的代码为基础进行修改 效果图: 点击设置之后的样子 点击删除 点击删除之后的样子 实现步骤: 首先添加一个菜单资源,右击项目资源选择下图红框 然后选择Menu 然…

【C语言】字符/字符串+内存函数

目录 Ⅰ、字符函数和字符串函数 1 .strlen 2.strcpy 3.strcat 4.strcmp 5.strncpy 6.strncat 7.strncmp 8.strstr 9.strtok 10.strerror 11.字符函数 12. 字符转换函数 Ⅱ、内存函数 1 .memcpy 2.memmove 3.memcmp Ⅰ、字符函数和字符串函数 1 .strlen 函数原型:…

《计算机英语》 Unit 6 Internet 互联网

Section A Internet 互联网 The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite (TCP/IP) to link several billion devices worldwide. 互联网是一个全球性的互连计算机网络系统,使用标准的互联…

python多线程加速web服务

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、代码实现?1.引入库2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 1 提示:以下是本篇文章…

15、Spring~容器启动过程

15、Spring~容器启动过程 容器启动过程AnnotationConfigApplicationContext类的四个构造器:启动过程详解无参构造方法refresh()方法prepareRefresh()方法prepareBeanFactory()方法invokeBeanFactoryPostProcessors()方法registerBeanPostProcessors()方法finishBean…

苹果CMS-V10 搭建教程踩坑,跳过部分验证

我突发奇想,想要安装一个CMS 苹果CMS搭建教程-CSDN博客 然后就有了下面的问题 结论是zip相关依赖未安装, 通过 apt install php-zip, 重新打开安装页面,同样如此 最后依据某个网站提示,修改 "\\192.168.1.200\root\var\www\html\maccms\application\install\control…

JSR 303全解析:如何在Java项目中实施高效数据校验

1. JSR 303是什么? JSR 303(Java Specification Request 303),也称为Bean Validation,是Java中的一个规范,用于定义Java对象的校验规则。 1.1 JSR 303的主要功能 注解驱动:通过注解直接在Jav…

多家国产大模型提供OpenAI API服务替代方案,谷歌将推出明星网红AI聊天机器人

ChatGPT狂飙160天,世界已经不是之前的样子。 更多资源欢迎关注 1、OpenAI终止对中国提供服务 6月25日凌晨,多个用户收到OpenAI的推送邮件,信中称,自今年7月9日起,将开始阻止来自非支持国家和地区的API(应…

3.任务的创建与删除

1.什么是任务? 任务可以理解为进程/线程,创建一个任务,就会在内存开辟一个空间。 任务通常都含有while(1)死循环 2.任务创建与删除相关的函数 3.CUBEMAX相关配置 编辑一个led1闪烁的任务

小程序使用echarts和echarts配置项总结(全网最简单详细)

文章目录 概要小程序中使用echarts1. ec-canvas2. 下载项目3. 去echarts官网定制:4.点击下载5.引入使用 echarts的option配置知识点归纳整理(还在更新):小结 概要 小程序中使用echarts(简单详细) 小程序中…

解密城市酷选为何异军突起!打造消费新潮流的排队免单模式

一、城市酷选平台简介 在数字化浪潮席卷全球的今天,城市酷选作为一个前沿的消费平台,凭借其独特的排队免单模式,成功吸引了众多消费者和商家的目光。该平台不仅整合了线上线下的资源,更通过数字化手段,为消费者提供了…

云计算 | 期末梳理(中)

1. 经典虚拟机的特点 多态(Polymorphism):支持多种类型的OS。重用(Manifolding):虚拟机的镜像可以被反复复制和使用。复用(Multiplexing):虚拟机能够对物理资源时分复用。2. 系统接口 最基本的接口是微处理器指令集架构(ISA)。应用程序二进制接口(ABI)给程序提供使用硬件资源…

C3P0数据库连接池

目录 一:连接池介绍 1.1连接池解决的问题 2.常用的数据库连接池 二:c3p0介绍 2.1C3P0介绍: 2.2C3P0快速入门 1.常用参数说明 2.API介绍 3.使用步骤 1.导入jar包c3p0-0.9.1.2.jar 2.编写c3p0-config.xml配置文件,配置对…

Python 中字符串修饰符

1. 原始字符串 (Raw String) - r 或 R 使用 r 或 R 前缀,可以告诉 Python 字符串中的所有反斜杠都是普通字符,而不是转义字符。这在处理文件路径、正则表达式等情况下非常有用。 path rC:\new_folder\test.txt # 原始字符串2. 格式化字符串 (Formatt…

第十九条:要么为继承而设计并提供文档说明,要么就禁止继承

在前面一条中,我们已经知道了David写了A类被Tom拿去继承了,导致了A类的封装性遭到了破坏,那么有没有可能做点事情避免此事发生呢?第十九条孕育而生!David在创建A类的时候写上文档说明,说Al类不允许任何类来…