当前位置: 首页 > news >正文

5-k8s-探针介绍

文章目录

    • 一、探针介绍
    • 二、探针类型
    • 三、探针定义方式
    • 四、探针实例
    • 五、启动探针测试
    • 六、存活探针测试
    • 七、就绪探针测试

一、探针介绍

  1. 概念

    在 Kubernetes 中 Pod 是最小的计算单元,而一个 Pod 又由多个容器组成,相当于每个容器就是一个应用,应用在运行期间,可能因为相关原因导致应用异常等。所以,我们需要对k8s进行健康检查,而我们可以通过探针配置运行状况检查,来确定每个 Pod 的状态。

二、探针类型

  1. 存活探针(Liveness Probe)

    存活探针用于检测容器内应用程序的健康状态。如果存活探针失败(即应用程序不健康),k8s将会自动重启容器,以尝试恢复应用程序的健康状态。如果重启容器仍然无法解决问题,Kubernetes 可能会根据配置的重启策略进一步采取行动。重启策略包括:

    • Always(默认):始终重启容器,无限次数地尝试恢复应用程序的健康状态。
    • OnFailure:仅在容器失败(退出状态码非零)时重启容器,尝试恢复应用程序的健康状态。
    • Never:永不重启容器,不会尝试恢复应用程序的健康状态。
  2. 就绪探针(Readiness Probe)

    对于就绪探针(Readiness Probe):就绪探针用于检测容器是否已经准备好接收流量。如果就绪探针失败,Kubernetes 将从服务负载均衡的池中剔除该容器。这意味着新的流量将不会被路由到该容器,直到就绪探针成功为止。这可以确保只有健康的容器能够接收流量,避免将流量发送到尚未准备好的容器上。一旦就绪探针成功,Kubernetes 将再次将容器纳入服务负载均衡,并开始将新的流量路由到该容器。

  3. 启动探针(Startup Probe)

    启动探针用于检测容器内应用程序是否已经启动成功。与存活探针和就绪探针不同,启动探针仅在容器启动时执行,并且只需检测一次。启动探针的结果不会影响容器的重启或负载均衡。它主要用于检测应用程序是否成功启动,并在启动过程中提供一定的等待时间。如果启动探针失败,Kubernetes 不会采取任何特殊行动。这是因为启动探针失败只意味着应用程序尚未成功启动,并且不会触发容器的重启或负载均衡操作。

三、探针定义方式

  1. 执行命令(Exec):通过在容器内执行特定的命令来检查应用程序的状态。如果命令的返回状态码是 0,探针被认为是成功的;否则,探针被认为是失败的。
  2. 发送 HTTP 请求(HTTP GET):通过发送 HTTP GET 请求到容器内的指定端点来检查应用程序的状态。如果返回的 HTTP 状态码在 2xx 或 3xx 范围内,探针被认为是成功的;否则,探针被认为是失败的。
  3. TCP 套接字(TCP Socket):通过尝试建立到容器内指定端口的 TCP 连接来检查应用程序的状态。如果连接成功建立,探针被认为是成功的;否则,探针被认为是失败的。

四、探针实例

  1. 查看我们coredns的探针配置:kubectl edit deploy coredns -n kube-system
    在这里插入图片描述

五、启动探针测试

  1. 快速部署nginx的pod:kubectl create deployment nginx --image=nginx

  2. 测试nginx启动探针-http(层级参考第四点coredns的层级):kubectl edit deploy nginx

            startupProbe:httpGet:path: /api/pathport: 80failureThreshold: 3periodSeconds: 10successThreshold: 1timeoutSeconds: 5
    
            startupProbe: 			#应用启动探针httpGet:				#使用http方式进行请求探测path: /api/path 	#请求路径port: 80			#请求端口failureThreshold: 3 	#失败次数达到多少次算失败periodSeconds: 10		#间隔时间successThreshold: 1	#成功次数达到多少次算成功timeoutSeconds: 5		#请求的超时时间
    

    查看:kubectl get pod
    在这里插入图片描述

    查看详情:kubectl describe pod nginx-569854844d-6dzxd
    在这里插入图片描述

    解:因为我们这边设置了启动探针,去访问/api/path。由于nginx没有这个路径,所以访问失败了,所以pod一直没有ready。可以将路径改为/index.html。

  3. 测试nginx启动探针-tcp:kubectl edit deploy nginx

            startupProbe:tcpSocket:port: 80failureThreshold: 3periodSeconds: 10successThreshold: 1timeoutSeconds: 5
    
  4. 测试nginx启动探针-shell:kubectl edit deploy nginx

            startupProbe:exec: command: - sh- -c- "echo 'success' > /inited;"failureThreshold: 3periodSeconds: 10successThreshold: 1timeoutSeconds: 5
    

    查看: kubectl exec -it nginx-576dc58bc8-scbv7 cat /inited
    在这里插入图片描述

六、存活探针测试

  1. 测试nginx应用存活探针-http:kubectl edit deploy nginx

            livenessProbe:httpGet:path: /started.htmlport: 80failureThreshold: 3periodSeconds: 10successThreshold: 1timeoutSeconds: 5
    

    查看:kubectl describe pod nginx-65cdf95974-m8l2p
    在这里插入图片描述

    因为不存在/started.html文件,所以检测不到存活,将地址改为/index.html即可

七、就绪探针测试

  1. 测试nginx就绪探针-http:kubectl edit deploy nginx

            readinessProbe:httpGet:path: /started.htmlport: 80failureThreshold: 3periodSeconds: 10successThreshold: 1timeoutSeconds: 5
    

    查看:kubectl describe pod nginx-5bd5c78bbd-tbzvb
    在这里插入图片描述

    因为不存在/started.html文件,所以无法就绪,将地址改为/index.html即可

相关文章:

5-k8s-探针介绍

文章目录 一、探针介绍二、探针类型三、探针定义方式四、探针实例五、启动探针测试六、存活探针测试七、就绪探针测试 一、探针介绍 概念 在 Kubernetes 中 Pod 是最小的计算单元,而一个 Pod 又由多个容器组成,相当于每个容器就是一个应用,应…...

【网络安全 --- MySQL数据库】网络安全MySQL数据库应该掌握的知识,还不收藏开始学习。

四,MySQL 4.1 mysql安装 #centos7默认安装的是MariaDB-5.5.68或者65, #查看版本的指令:[rootweb01 bbs]# rpm -qa| grep mariadb #安装mariadb的最新版,只是更新了软件版本,不会删除之前原有的数据。 #修改yum源的配…...

【MyBatis系列】- 什么是MyBatis

【MyBatis系列】- 什么是MyBatis 文章目录 【MyBatis系列】- 什么是MyBatis一、学习MyBatis知识必备1.1 学习环境准备1.2 学习前掌握知识二、什么是MyBatis三、持久层是什么3.1 为什么需要持久化服务3.2 持久层四、Mybatis的作用五、MyBatis的优点六、参考文档一、学习MyBatis知…...

【Linux】Ubuntu美化bash【教程】

【Linux】Ubuntu美化bash【教程】 文章目录 【Linux】Ubuntu美化bash【教程】1. 查看当前环境中是否有bash2. 安装Synth-Shell3. 配置Synth-Shell4. 取消greeterReference 1. 查看当前环境中是否有bash 查看当前使用的bash echo $SHELL如下所示 sjhsjhR9000X:~$ echo $SHELL…...

微信小程序仿苹果负一屏由弱到强的高斯模糊

进入下面小程序可以体验效果&#xff0c;然后进入更多。查看模糊效果 一、创建小程序组件 二、代码 wxml: <view class"topBar-15"></view> <view class"topBar-14"></view> <view class"topBar-13"></view&…...

js中的new方法

new方法的作用&#xff1a;创建一个实例对象&#xff0c;并继承原对象的属性和方法&#xff1b; new对象内部操作&#xff1a; 1&#xff0c;创建一个新对象&#xff0c;将新对象的proto属性指向原对象的prototype属性&#xff1b; 2&#xff0c;构造函数执行环境中的this指向…...

机器学习-无监督算法之降维

降维&#xff1a;将训练数据中的样本从高维空间转换到低维空间&#xff0c;降维是对原始数据线性变换实现的。为什么要降维&#xff1f;高维计算难&#xff0c;泛化能力差&#xff0c;防止维数灾难优点&#xff1a;减少冗余特征&#xff0c;方便数据可视化&#xff0c;减少内存…...

ubuntu20.04下Kafka安装部署及基础使用

Ubuntu安装kafka基础使用 kafka 安装环境基础安装下载kafka解压文件修改配置文件启动kafka创建主题查看主题发送消息接收消息 工具测试kafka Assistant 工具连接测试基础连接连接成功查看topic查看消息查看分区查看消费组 Idea 工具测试基础信息配置信息当前消费组发送消息消费…...

汉得欧洲x甄知科技 | 携手共拓全球化布局,助力出海中企数智化发展

HAND Europe 荣幸获得华为云颁发的 GrowCloud 合作伙伴奖项&#xff0c;进一步巩固了其在企业数字化领域的重要地位。于 2023 年 10 月 5 日&#xff0c;HAND Europe 参加了华为云荷比卢峰会&#xff0c;并因其在全球拓展方面的杰出贡献而荣获 GrowCloud 合作伙伴奖项的认可。 …...

【Javascript保姆级教程】显示类型转换和隐式类型转换

文章目录 前言一、显式类型转换1.1 字符串转换1.2 数字转换1.3 布尔值转换 二、隐式类型转换2.1 数字与字符串相加2.2 布尔值与数字相乘 总结 前言 JavaScript是一种灵活的动态类型语言&#xff0c;这意味着变量的数据类型可以在运行时自动转换&#xff0c;或者通过显式类型转…...

C++算法前缀和的应用:分割数组的最大值的原理、源码及测试用例

分割数组的最大值 相关知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例&#xff1a;付视频课程 二分 过些天整理基础知识 题目 给定一个非负整数数组 nums 和一个整数 m &#xff0c;你需要将这个数组分成 m 个非空的连续子数组。 设计一个算法…...

gitlab自编译 源码下载

网上都是怎么用 gitlab&#xff0c;但是实际开发中有需要针对 gitlab 进行二次编译自定义实现功能的想法。 搜索了网上的资料以及在官网的查找&#xff0c;查到了如下 gitlab 使用 ruby 开发。 gitlab 下载包 gitlab/gitlab-ce - Packages packages.gitlab.com gitlab/gitl…...

SBD(Schottky Barrier Diode)与JBS(Junction Barrier Schottky)

SBD和JBS二极管都是功率二极管&#xff0c;具有单向导电性&#xff0c;在电路中主要用于整流、箝位、续流等应用。两者的主要区别在于结构和性能。 结构 SBD是肖特基二极管的简称&#xff0c;其结构由一个金属和一个半导体形成的金属-半导体结构成。 JBS是结势垒肖特基二极…...

HANA:计算视图-图形化Aggregation组件-踩坑小记(注意事项)

今天遇到在做HANA视图开发的时候&#xff0c;遇到一个事&#xff0c;一直以为是个BUG&#xff0c;可把我气坏了&#xff0c;具体逻辑是这样的&#xff0c;是勇图形化处理的&#xff0c;ACDOCA innerjoin 一个时间维度表&#xff0c;就这么简单&#xff0c;完全按照ACDOCA的主键…...

【milkv】更新rndis驱动

问题 由于windows升级到了11&#xff0c;导致rndis驱动无法识别到。 解决 打开设备管理器&#xff0c;查看网络适配器&#xff0c;没有更新会显示黄色的图标。 右击选择更新驱动...

基于混沌博弈优化的BP神经网络(分类应用) - 附代码

基于混沌博弈优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于混沌博弈优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.混沌博弈优化BP神经网络3.1 BP神经网络参数设置3.2 混沌博弈算法应用 4.测试结果…...

基于人工水母优化的BP神经网络(分类应用) - 附代码

基于人工水母优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于人工水母优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.人工水母优化BP神经网络3.1 BP神经网络参数设置3.2 人工水母算法应用 4.测试结果…...

【C++】哈希学习

哈希学习 unordered系列关联式容器哈希结构除留余数法哈希冲突闭散列线性探测二次探测 负载因子开散列开散列增容 闭散列 VS 开散列字符串哈希算法 线性探测 & 二次探测实现拉链法实现 unordered系列关联式容器 unordered系列关联式容器是从C11开始&#xff0c;STL提供的。…...

Nginx的安装——window环境

1、下载Nginx 在官网下载稳定版本&#xff1a; http://nginx.org/en/download.html 以nginx/Windows-1.24.0为例&#xff0c;直接下载 nginx-1.24.0.zip。 下载后解压&#xff0c;解压后如下&#xff1a; 2、启动nginx 在window环境下启动nginx的方法有以下两种&#xff1a; …...

C语言笔记之指针

一.指针含义 1.a、*a与&a的区别 a存储指向变量的地址,*a为指针的值,&a为指针的地址 #include <stdio.h>int main(){/** 测试代码部分一 **/int a12;int *b1;b1&a1;printf(" a1 %d, &a1 %d, b1 %d, *b1 %d, &b1 %d\n\n",a1,&a1…...

【 OpenGauss源码学习 —— 列存储(CU)(二)】

列存储&#xff08;CU&#xff09;&#xff08;二&#xff09; 概述GetCUHeaderSize 函数Compress 函数CU::FillCompressBufHeader 函数CU::CompressNullBitmapIfNeed 函数CU::CompressData 函数 声明&#xff1a;本文的部分内容参考了他人的文章。在编写过程中&#xff0c;我们…...

Java并发面试题:(四)synchronized和lock区别

synchronized 关键字 synchronized关键字解决的是多个线程之间访问资源的同步性&#xff0c;synchronized关键字可以保证被它 修饰的方法或者代码块在任意时刻只能有一个线程执行。 另外&#xff0c;在 Java 早期版本中&#xff0c; synchronized属于重量级锁&#xff0c;效率…...

使用Nginx实现采集端和数据分析平台的数据加密传输

1. 需求描述 目前鸿鹄暴露出来的重要ports如下表&#xff1a; 在实际的生产环境中&#xff0c;结合我司的使用场景&#xff0c;需要在鸿鹄前端安装proxy&#xff0c;用以解决如下两个问题&#xff1a; 1.1 实现http到https的强制跳转 企业环境中&#xff0c;一般会关闭http 80端…...

appium---如何判断原生页面和H5页面

目前app中存在越来越多的H5页面了&#xff0c;对于一些做app自动化的测试来说&#xff0c;要求也越来越高&#xff0c;自动化不仅仅要支持原生页面&#xff0c;也要可以H5中进行操作自动化&#xff0c; webview是什么 webview是属于android中的一个控件&#xff0c;也相当于一…...

【WIFI】【WPS】如何从log角度判断WPS 已经连接上

在Android项目中,由于WPS在Framework 接口中已经remove了 只能通过wpa-supplicant 代码中去判断是否连接上了 这段代码log 表示 PBC模式下没有激活 09-21 22:42:16.221503 3782 3782 D wpa_supplicant: wlan0: 0: 04:cf:4b:21:a0:3e ssid=Openwrt-WPS-tp wpa_ie_len=0 rsn…...

[正式学习java①]——java项目结构,定义类和创建对象,一个标准javabean的书写

目录 一、创建第一个java文件 二、 初始类和对象 三、符合javabean规范的类 一、创建第一个java文件 要想写代码&#xff0c;你得有文件啊 以前的创建方式&#xff1a; 右键新建文本文档&#xff0c;开始写代码&#xff0c;写完改后缀名&#xff0c;保存……这样文件一旦多了…...

day36

今日内容概要 进程基础(操作系统中的概念) 进程调度算法(四种算法) 进程的并行和并发的概念 同步异步阻塞非阻塞的概念 创建进程(进程类Process) Process类的参数 Process类的方法 如何开启多进程 基于TCP协议的高并发程序 进程基础 进程它是操作系统中最重要的概念…...

五. 激光雷达建图和定位方案-开源SLAM

前面内容&#xff1a; 一. 器件选型心得&#xff08;系统设计&#xff09;--1_goldqiu的博客-CSDN博客 一. 器件选型心得&#xff08;系统设计&#xff09;--2_goldqiu的博客-CSDN博客 二. 多传感器时间同步方案&#xff08;时序闭环&#xff09;--1 三. 多传感器标定方案&a…...

SAP MM学习笔记37 - 请求书照合中的 追加请求/追加Credit 等概念/ 请求书的取消

有关请求书照合&#xff0c;之前学习了一部分&#xff0c;现在再来学其中的一些概念。 其实这些概念也许并不常用&#xff0c;但是你又不能不知道&#xff0c;因为客户会问。 有关请求书&#xff0c;贴一些以前学习的文章&#xff0c;以方便阅读。 SAP MM学习笔记33 - 请求书…...

【C#】Winform实现轮播图

复制后&#xff0c;需要修改的代码&#xff1a; 1、图片文件夹路劲&#xff1a;string folderPath "C:\\Users\\Administrator\\Desktop\\images"; 2、项目命名空间&#xff1a;namespace BuildAction 全窗口代码&#xff1a; using System; using System.Colle…...

出口外贸是做什么的/郑州官网网站优化公司

原文:mssql 怎么配置指定的表 不允许删除数据&#xff1f;http://www.maomao365.com/?p5089 <span style"color:red;font-weight:bold;">前言: 前几天收到群友提问&#xff0c;如何禁止某一张表里面的数据被删除掉&#xff1f;</span> <hr /> 当我…...

网站设计需要的元素/宁波seo营销平台

Over The Air UpdatesOver The Air Updates (OTA)OTA 流程概述OTA 数据分区APP 回滚APP OTA 状态回滚过程意外重启启动无效/中止的应用程序设置状态没有安全启动的安全 OTA 更新相关资料应用示例API ReferenceHeader File参考资料Over The Air Updates (OTA) OTA 流程概述 OT…...

做网站做本地服务器吗/seo流量工具

在学习翁恺老师的c课程中&#xff0c;有这样一个猜数游戏 #include <stdio.h> #include <stdlib.h> #include<time.h> int main() { srand(time(0)); int numberrand()%1001; int count0; int a0; printf(“我已经想到了一个1到100的数。”); do{ printf(“…...

长沙优化网站建设/域名查询注册商

题目描述 输入 n 个正整数&#xff0c;要求输出最长的连号的长度。 连号指从小到大连续自然数。 输入格式 第一行&#xff0c;一个整数 n。 第二行&#xff0c;n 个整数 &#xff0c;之间用空格隔开。 输出格式 一个数&#xff0c;最长连号的个数。 输入输出样例 输入 #1 10 3 …...

宣传工作网站建设作用/关键词的选取原则

EDA工程师在PCB设计过程中&#xff0c;往往需要与结构工程师打交道&#xff0c;结构图纸即DXF文件就是结构工程师与EDA工程师沟通的媒介。本文针对1. 据我所知&#xff0c;国内大部分结构工程师会默认给出DWG格式的文件&#xff0c;这种文件在2. 将DXF文件导入Allegro之前&…...

武汉做网站公司有哪些/全网品牌推广

↑↑↑点击上方蓝字&#xff0c;回复资料&#xff0c;10个G的惊喜向大家推荐一款非常实用的缺失值可视化工具库&#xff1a;missingno适用场景无论是打比赛还是在实际工程项目中&#xff0c;都会遇到数据缺失的情况&#xff0c;如果数据集较小&#xff0c;还能在excel或者其他可…...