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_…...
Packet Tracer实战:交换机基础配置与常见问题排查
1. Packet Tracer与交换机配置入门 第一次接触网络设备配置的朋友可能会觉得交换机是个神秘的黑盒子。其实用Cisco Packet Tracer这个仿真工具,你完全可以在自己的电脑上搭建一个虚拟实验室。我刚开始学习时也是从这个工具入手的,它比真机操作更友好——…...
FFCreator 10个实用技巧:轻松掌握视频制作的核心功能
FFCreator 10个实用技巧:轻松掌握视频制作的核心功能 【免费下载链接】FFCreator 一个基于node.js的高速视频制作库 A fast video processing library based on node.js 项目地址: https://gitcode.com/gh_mirrors/ff/FFCreator FFCreator是一个基于Node.js的…...
【并发心法】别用 volatile 骗自己了!撕碎裸机并发的伪安全,用 C++ Atomics 与内存屏障镇压“乱序执行”的底层叛乱
摘要:在嵌入式 C/C 开发中,99% 的工程师误以为 volatile 是解决中断与主循环并发冲突的万能解药。本文将无情揭露这一长达数十年的认知毒瘤。我们将带你深入现代编译器(GCC/Clang)的优化黑盒与 ARM Cortex 高级内核的流水线深处&a…...
毕业设计实战:基于SSM的学生宿舍设备报修管理系统设计与实现全攻略
毕业设计实战:基于SSM的学生宿舍设备报修管理系统设计与实现全攻略 在开发“学生宿舍设备报修管理系统”这套毕设时,我曾因“故障上报与维修派单流程脱节”踩过一个关键坑。初期设计时,我将“学生报修”和“维修人员接单”视为两个独立的模块…...
FastAPI项目PyInstaller打包实战:避坑指南与最佳实践
1. 为什么需要打包FastAPI项目? 当你用FastAPI开发完一个Web应用后,最终需要部署到生产环境。传统方式要求服务器安装Python环境、配置依赖库,这个过程既繁琐又容易出错。PyInstaller的价值就在于能把整个项目打包成独立可执行文件࿰…...
别再只盯着find提权了!盘点Linux下5种更隐蔽的权限维持姿势与排查手册
超越find提权:Linux系统下5种高阶权限维持技术与深度排查指南 当攻击者成功获取Linux系统权限后,权限维持(Persistence)往往成为攻防对抗的核心战场。传统安全培训常聚焦于SUID提权等基础手段,但真实APT攻击中…...
Bypass Paywalls Clean:突破内容壁垒的智能解决方案
Bypass Paywalls Clean:突破内容壁垒的智能解决方案 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息爆炸的今天,你是否曾因学术论文被付费墙阻挡而错失研…...
告别Git命令行烦恼:Tig工具让版本控制效率提升3倍
告别Git命令行烦恼:Tig工具让版本控制效率提升3倍 【免费下载链接】tig Text-mode interface for git 项目地址: https://gitcode.com/gh_mirrors/ti/tig 作为开发者,你是否也曾面临这些Git操作痛点:记不住复杂的git log参数组合、在命…...
使用 C++ 模拟 ShaderLanguage 的 swizzle
经常编写着色器的同学应该对 swizzle(重排)语法非常熟悉,方便又灵活,可以说是用过一次便回味无穷。 代码 vec4 color vec4(1.0, 0.5, 0.0, 1.0); vec3 rgb color.rgb; // { 1.0, 0.5, 0.0 } vec2 xy color.xy; …...
Windows平台APK安装架构革命:从模拟器到原生集成的技术演进
Windows平台APK安装架构革命:从模拟器到原生集成的技术演进 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 当移动生态与桌面系统相遇,技术融合…...
