10-k8s中pod的探针
一、探针的概念
一般时候,探针的设置,都是为了优化业务时,需要做的事情;属于后期工作;
1,探针的分类
1,健康状态检查探针:livenessProbe
当我们设置了这个探针之后,检查不通过,pod容器就会重启,周期性检查服务是否存在;
- 检查若失败,将“重启容器”,本质上就是删除原来的容器,重新创建;
- 若不设置健康检查探针,默认就是成功的,检查成功;
2,可用性检查探针:readinessProbe
当我们设置这个探针之后,检查不通过,pod容器不会重启,周期性检查服务是否可用,从而判断容器是否准备就绪;
- 若检查服务不可用,就是检查失败,则会将pod从service的endppints列表中移除;
- 若检查可用,则会将pod重新添加会secvice的endppints列表中;
- 若不设置这个探针,则默认是检查成功状态;
3,启动探针:startupProbe
从k8s的1.16版本之后才新加的功能,1.16版本之前没有这个探针;
- 如果设置了这个探针,则其他所有探针都会被禁用,指导这个探针检查成功为止;
- 如果检查失败,kubelet会杀死容器,而容器依照我们的重启策略进行重启;
- 如果没有设置这个探针,默认是成功状态;
2,探针使用的检查方法
1,命令检查:exec
就是执行一段命令,根据返回的结果判断是否成功,返回0或者非0(类似shell中echo $?)
2,http请求检查:httpGet
根据返回的状态码,判断是否正常;
3,端口检查:tcpSocket
测试某个TCP端口是否能够链接,类似于telnet,nc等网络工具;
4,grpc:(了解即可)
二、livenessProbe健康检查探针
1,exec方式
[root@k8s231 pod]# cat 12-probe.yaml
apiVersion: v1
kind: Pod
metadata:
name: mylinux-livenessprobe
spec:
containers:
- name: c1
image: nginx:1.20.1-alpine
#声明健康检查探针livenessProbe
livenessProbe:
#使用exec方式做检查;
exec:
#自定义检查命令
command:
- cat
- /etc/hosts
#检查失败几次算【不存活】,默认值是3,最小值是1,检查成功后,值会重置重1开始数;
failureThreshold: 3
#容器启动后多久开始进行健康检查,即此时间段内,检测到服务失败并不计数;默认1,最小值1
initialDelaySeconds: 15
#探针检测频率,多久检测一次,默认10(秒),最小值1(秒)
periodSeconds: 1
#检查成功几次算【存活】,默认1,最小值1
successThreshold: 1
#一次检查超时时间,默认1(秒),最小值1(秒)
timeoutSeconds: 1
2,httpGet检查方式
[root@k8s231 pod]# cat 12-probe.yaml
apiVersion: v1
kind: Pod
metadata:
name: mylinux-livenessprobe
spec:
containers:
- name: c1
image: nginx:1.20.1-alpine
#声明健康检查探针livenessProbe
livenessProbe:
#使用httpGet方式做检查;
httpGet:
#检查那个端口,通过哪个端口访问页面?
port: 80
#指定探测的页面路径
path: /usr/share/nginx/html/index.html
#检查失败几次算【不存活】,默认值是3,最小值是1,检查成功后,值会重置重1开始数;
failureThreshold: 3
#容器启动后多久开始进行健康检查,即此时间段内,检测到服务失败并不计数;默认1,最小值1
initialDelaySeconds: 15
#探针检测频率,多久检测一次,默认10(秒),最小值1(秒)
periodSeconds: 1
#检查成功几次算【存活】,默认1,最小值1
successThreshold: 1
#一次检查超时时间,默认1(秒),最小值1(秒)
timeoutSeconds: 1
3,tcpSocket检测方式
[root@k8s231 pod]# cat 12-probe.yaml
apiVersion: v1
kind: Pod
metadata:
name: mylinux-livenessprobe
spec:
containers:
- name: c1
image: nginx:1.20.1-alpine
#声明健康检查探针livenessProbe
livenessProbe:
#使用tcpSocket方式做检查;
tcpSocket:
#检查哪一个端口
port: 80
#检查失败几次算【不存活】,默认值是3,最小值是1,检查成功后,值会重置重1开始数;
failureThreshold: 3
#容器启动后多久开始进行健康检查,即此时间段内,检测到服务失败并不计数;默认1,最小值1
initialDelaySeconds: 15
#探针检测频率,多久检测一次,默认10(秒),最小值1(秒)
periodSeconds: 1
#检查成功几次算【存活】,默认1,最小值1
successThreshold: 1
#一次检查超时时间,默认1(秒),最小值1(秒)
timeoutSeconds: 1
三、readinessProbe可用性检查
[root@k8s231 pod]# cat 12-probe.yaml
apiVersion: v1
kind: Pod
metadata:
name: mylinux-livenessprobe
spec:
containers:
- name: c1
image: nginx:1.20.1-alpine
#声明健康检查探针readinessProbe
readinessProbe:
#使用tcpSocket方式做检查;
tcpSocket:
#检查哪一个端口
port: 80
#检查失败几次算【不存活】,默认值是3,最小值是1,检查成功后,值会重置重1开始数;
failureThreshold: 3
#容器启动后多久开始进行健康检查,即此时间段内,检测到服务失败并不计数;默认1,最小值1
initialDelaySeconds: 15
#探针检测频率,多久检测一次,默认10(秒),最小值1(秒)
periodSeconds: 1
#检查成功几次算【存活】,默认1,最小值1
successThreshold: 1
#一次检查超时时间,默认1(秒),最小值1(秒)
timeoutSeconds: 1
四、startupProbe启动检查
[root@k8s231 pod]# cat 12-probe.yaml
apiVersion: v1
kind: Pod
metadata:
name: mylinux-livenessprobe
spec:
containers:
- name: c1
image: nginx:1.20.1-alpine
#声明启动探针startupProbe
startupProbe:
#使用tcpSocket方式做检查;
tcpSocket:
#检查哪一个端口
port: 80
#检查失败几次算【不存活】,默认值是3,最小值是1,检查成功后,值会重置重1开始数;
failureThreshold: 3
#容器启动后多久开始进行健康检查,即此时间段内,检测到服务失败并不计数;默认1,最小值1
initialDelaySeconds: 15
#探针检测频率,多久检测一次,默认10(秒),最小值1(秒)
periodSeconds: 1
#检查成功几次算【存活】,默认1,最小值1
successThreshold: 1
#一次检查超时时间,默认1(秒),最小值1(秒)
timeoutSeconds: 1
五、三个探针一起使用
[root@k8s231 pod]# cat 12-probe.yaml
apiVersion: v1
kind: Pod
metadata:
name: mylinux-livenessprobe
spec:
containers:
- name: c1
image: nginx:1.20.1-alpine
#声明启动探针startupProbe
startupProbe:
tcpSocket:
port: 80
failureThreshold: 3
initialDelaySeconds: 15
periodSeconds: 1
successThreshold: 1
timeoutSeconds: 1
#声明启动探针livenessProbe
livenessProbe:
tcpSocket:
port: 80
failureThreshold: 3
initialDelaySeconds: 15
periodSeconds: 1
successThreshold: 1
timeoutSeconds: 1
#声明启动探针readinessProbe
readinessProbe:
tcpSocket:
port: 80
failureThreshold: 3
initialDelaySeconds: 15
periodSeconds: 1
successThreshold: 1
timeoutSeconds: 1
相关文章:
10-k8s中pod的探针
一、探针的概念 一般时候,探针的设置,都是为了优化业务时,需要做的事情;属于后期工作; 1,探针的分类 1,健康状态检查探针:livenessProbe 当我们设置了这个探针之后,检查…...
【Langchain Agent研究】SalesGPT项目介绍(二)
【Langchain Agent研究】SalesGPT项目介绍(一)-CSDN博客 上节课,我们介绍了SalesGPT他的业务流程和技术架构,这节课,我们来关注一下他的项目整体结构、poetry工具和一些工程项目相关的设计。 项目整体结构介绍 我们把…...
《UE5_C++多人TPS完整教程》学习笔记4 ——《P5 局域网连接(LAN Connection)》
本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P5 局域网连接(LAN Connection)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主(也是译者&…...
【运维测试】移动测试自动化知识总结第1篇:移动端测试介绍(md文档已分享)
本系列文章md笔记(已分享)主要讨论移动测试相关知识。主要知识点包括:移动测试分类及android环境搭建,adb常用命令,appium环境搭建及使用,pytest框架学习,PO模式,数据驱动࿰…...
高校疫情防控系统的全栈开发实战
✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…...
OpenTitan- 开源安全芯片横空出世
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
简单的edge浏览器插件开发记录
今天在浏览某些网页的时候,我想要屏蔽掉某些信息或者修改网页中的文本的颜色、背景等等。于是在浏览器的控制台中直接输入JavaScript操作dom完成了我想要的功能。但是每次在网页之间跳转该功能都会消失,我需要反复复制粘贴js脚本,无法实现自动…...
WSL下如何使用Ubuntu本地部署Vits2.3-Extra-v2:中文特化修复版(新手从0开始部署教程)
环境: 硬: 台式电脑 1.cpu:I5 11代以上 2.内存16G以上 3.硬盘固态500G以上 4.显卡N卡8G显存以上 20系2070以上 本案例英伟达4070 12G 5.网络可连github 软: Win10 专业版 19045以上 WSL2 -Ubuntu22.04 1.bert-Vits2.3 Extra-v2:…...
Go语言的100个错误使用场景(40-47)|字符串函数方法
前言 大家好,这里是白泽。 《Go语言的100个错误以及如何避免》 是最近朋友推荐我阅读的书籍,我初步浏览之后,大为惊喜。就像这书中第一章的标题说到的:“Go: Simple to learn but hard to master”,整本书通过分析100…...
Fluke ADPT 连接器新增对福禄克万用 Fluke 15B Max 的支持
所需设备: 1、Fluke ADPT连接器; 2、Fluke 15B Max; Fluke 15B Max拆机图: 显示界面如下图: 并且可以将波形导出到EXCEL: 福禄克万用表需要自己动手改造!!!...
前端工程化面试题 | 10.精选前端工程化高频面试题
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
【并发编程】AQS原理
📝个人主页:五敷有你 🔥系列专栏:并发编程 ⛺️稳中求进,晒太阳 1. 概述 全称是 AbstractQueuedSynchronizer,是阻塞式锁和相关的同步器工具的框架 特点: 用 state 属性来表示资源的状…...
AI:130-基于深度学习的室内导航与定位
🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…...
Leetcode1423.可获得的最大点数
文章目录 题目原题链接思路(逆向思维) 题目 原题链接 Leetcode1423.可获得的最大点数 思路(逆向思维) 由题目可知,从两侧选k张,总数为n张,即从中间选n - k张 nums总和固定,要选k张最…...
深度学习之梯度下降算法
梯度下降算法 梯度下降算法数学公式结果 梯度下降算法存在的问题随机梯度下降算法 梯度下降算法 数学公式 这里案例是用梯度下降算法,来计算 y w * x 先计算出梯度,再进行梯度的更新 import numpy as np import matplotlib.pyplot as pltx_data [1.0,…...
代码随想录第32天|● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
文章目录 买卖股票思路一:贪心代码: 思路:动态规划代码: 跳跃游戏思路:贪心找最大范围代码: 跳跃游戏②思路:代码: 方法二:处理方法一的特殊情况 买卖股票 思路一&#x…...
线性代数的本质 2 线性组合、张成的空间、基
基于3Blue1Brown视频的笔记 一种新的看待方式 对于一个向量,比如说,如何看待其中的3和-2? 一开始,我们往往将其看作长度(从向量的首走到尾部,分别在x和y上走的长度)。 在有了数乘后࿰…...
- 工程实践 - 《QPS百万级的有状态服务实践》01 - 存储选型实践
本文属于专栏《构建工业级QPS百万级服务》 《QPS百万级的无状态服务实践》已经完成。截止目前为止,支持需求“给系统传入两个日期,计算间隔有多少天”的QPS百万级服务架构已经完成。如图1: 图1 可是这个架构不能满足需求“给系统传入两个日期…...
SECS/GEM的HSMS通讯?金南瓜方案
High Speed SECS Message Service (HSMS) 是一种基于 TCP/IP 的协议,它使得 SECS 消息通信更加快速。这通常用作设备间通信的接口。 HSMS 状态逻辑变化(序列): 1.Not Connected:准备初始化 TCP/IP 连接,但尚…...
wayland(xdg_wm_base) + egl + opengles——dma_buf 作为纹理数据源(五)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、EGL dma_buf import 相关的数据结构和函数1. EGLImageKHR2. eglCreateImageKHR()3. glEGLImageTargetTexture2DOES()二、egl 中 import dma_buf 作为纹理的代码实例1. egl_wayland_dmabuf_…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
