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_…...

51单片机基础部分——矩阵按键检测
前言 上一节,我们说到了独立按键的检测以及使用,但是独立按键每一个按键都要对应一个IO口进行检测,在一些需要多按键的情况下,使用过多的独立按键会过多的占用单片机的IO资源,为了解决这个问题的出现,我们…...

RPA+AI:自动化办公机器人开发指南
RPAAI:自动化办公机器人开发指南 系统化学习人工智能网站(收藏):https://www.captainbed.cn/flu 文章目录 RPAAI:自动化办公机器人开发指南摘要引言技术融合路径1. 传感器层:多模态数据接入2. 决策层&…...

Model Context Protocol (MCP) 是一个前沿框架
微软发布了 Model Context Protocol (MCP) 课程:mcp-for-beginners。 Model Context Protocol (MCP) 是一个前沿框架,涵盖 C#、Java、JavaScript、TypeScript 和 Python 等主流编程语言,规范 AI 模型与客户端应用之间的交互。 MCP 课程结构 …...
任务调度器-关于中心化调度 vs 去中心化调度的核心区别
1. 定义与架构模型 维度中心化调度去中心化调度核心角色存在一个中央调度器(如XXL-JOB的调度中心),统一管理任务分配、状态监控和故障处理。无中心节点,调度逻辑分散在多个节点,通过共识算法(如选举机制&a…...
服务器信任质询
NSURLSession 与 NSURLAuthenticationMethodServerTrust —— 从零开始的“服务器信任质询”全流程 目标读者:刚接触 iOS 网络开发、准备理解 HTTPS 与证书校验细节的同学 出发点:搞清楚为什么会有“质询”、质询的触发时机、以及在 delegate 里怎么正确…...

STM32H562----------ADC外设详解
1、ADC 简介 STM32H5xx 系列有 2 个 ADC,都可以独立工作,其中 ADC1 和 ADC2 还可以组成双模式(提高采样率)。每个 ADC 最多可以有 20 个复用通道。这些 ADC 外设与 AHB 总线相连。 STM32H5xx 的 ADC 模块主要有如下几个特性: 1、可配置 12 位、10 位、8 位、6 位分辨率,…...

手撕 K-Means
1. K-means 的原理 K-means 是一种经典的无监督学习算法,用于将数据集划分为 kk 个簇(cluster)。其核心思想是通过迭代优化,将数据点分配到最近的簇中心,并更新簇中心,直到簇中心不再变化或达到最大迭代次…...
Druid连接池实现自定义数据库密码加解密功能详解
Druid连接池实现自定义数据库密码加解密功能详解 在企业级应用开发中,数据库密码的明文存储是一个显著的安全隐患。Druid作为阿里巴巴开源的高性能数据库连接池组件,提供了灵活的密码加密与解密功能,允许开发者通过自定义逻辑实现数据库密码…...
# 从底层架构到应用实践:为何部分大模型在越狱攻击下失守?
从底层架构到应用实践:为何部分大模型在越狱攻击下失守? 引言 近期,我们对多个主流大语言模型(LLM)进行了安全性测试,使用了极具诱导性的越狱提示词,试图绕过其内容安全机制。测试结果显示&am…...
学习 React【Plan - June - Week 1】
一、使用 JSX 书写标签语言 JSX 是一种 JavaScript 的语法扩展,React 使用它来描述用户界面。 什么是 JSX? JSX 是 JavaScript 的一种语法扩展。看起来像 HTML,但它实际上是在 JavaScript 代码中写 XML/HTML。浏览器并不能直接运行 JSX&…...