10-k8s中pod的探针

news/2024/11/29 20:36:59/

一、探针的概念

        一般时候,探针的设置,都是为了优化业务时,需要做的事情;属于后期工作;

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


http://www.ppmy.cn/news/1353587.html

相关文章

异质结太阳能电池中氢化本征非晶硅的设计

在硅异质结太阳能电池(SHJ)中,pn结由两种不同形貌的硅形成,即一种是n型晶体硅(c-Si),另一种是p掺杂(III族)元素掺杂)非晶硅(a-Si)。许…

Java的集合框架和泛型

文章目录 集合框架什么是集合框架类和接口总览 集合框架的重要性背后所涉及的数据结构以及算法什么是数据结构容器背后对应的数据结构什么是算法 包装类基本数据类型和对应的包装类装箱和拆箱自动装箱和自动拆箱 泛型什么是泛型引出泛型语法泛型类泛型的上界(没有下界)泛型方法…

Nginx中常用监控模块讲解

Nginx中常用监控模块讲解 Nginx是一个高性能的HTTP和反向代理服务器,它支持多种监控模块,可以帮助我们更好地了解和优化服务器的性能。本文将介绍Nginx中的一些常用监控模块,并提供相应的代码示例。 访问日志模块 访问日志模块用于记录客户…

Linux platform tree下的单总线驱动程序设计(DHT11)

目录 概述 1 认识DHT11 1.1 DHT11特性 1.2 DHT11数据格式 1.3 DHT11与MCU通信 1.4 DHT11信号解析 1.4.1 起始信号 1.4.2 解析信号0 1.4.3 解析信号1 2 驱动开发 2.1 硬件接口 2.2 更新设备树 2.2.1 添加驱动节点 2.2.2 编译.dts 2.2.3 更新板卡中的.dtb 2.3 驱…

第七篇【传奇开心果系列】Python微项目技术点案例示例:数据可视化界面图形化经典案例

传奇开心果微博系列 系列微博目录Python微项目技术点案例示例系列 微博目录一、微项目开发背景和项目目标:二、雏形示例代码三、扩展思路介绍四、数据输入示例代码五、数据分析示例代码六、排名统计示例代码七、数据导入导出示例代码八、主题定制示例代码九、数据过…

cloudflare更换第三方证书

由于我的网站一直放在腾讯云上,域名和证书也是在腾讯云上解析的,后来将DNS迁移到了cloudflare,最近SSL证书到期了遇到一些麻烦记录一下。 由于服务器上原来是装的腾讯云发的免费证书,所以这次我也是按部就班的先去申请腾讯云的证…

蓝桥杯电子类单片机提升三——NE555

目录 单片机资源数据包_2023 一、NE555和定时器工作模式 1.NE555的介绍 2.定时器的计数模式 二、NE555频率读取代码的实现 1.定时器0初始化 2.通过读取TH0和TL0来读取频率 3.通过中断读取频率 三、完整代码演示 通过读取TH0和TL0来读取频率 main.c 通过中断读取频…

DSA 经典数据结构与算法 学习心得和知识总结(三) |有向无环图及其应用

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《算法导论》第三版 就是这本被封神的杰作,就是它🤦 2、参考书籍:《数据结构》严奶奶版 3、参考书…