一、探针背景介绍

1、编排工具运行时,虽说pod挂掉会在控制器的调度下会重启,出现pod重启的时候,但是pod状态是running,无法真实的反应当时pod健康状态,我们可以通过Kubernetes的探针监控到pod的实时状态。

二、Kubernetes三种探针类型

启动探针(Startup Probe):判断容器内的应用是否启动完成(在启动探针判断成功前,就绪探针和存活探针将不会执行)

就绪探针(Readiness Probe):判断容器是否已经就绪,若未就绪,容器将会处于未就绪,未就绪的容器,不会进行流量的调度。

存活探针(Liveness Probe):判断容器内的应用程序是否正常,若不正常,K8s 将会重新重启容器。

三、探针的三种方式

exec:通过在容器内执行指定命令,来判断命令退出时返回的状态码,如果为 0 表示正常。

httpGet:通过对容器的 IP 地址、端口和 URL 路径来发送 GET 请求;如果响应的状态码在 200 ~ 399 间,表示正常。

tcpSocket:通过对容器的 IP 地址和指定端口,进行 TCP 检查,如果端口打开,表示正常。

四、配置项

initialDelaySeconds:等待我们定义的时间 结束后便开始探针检查;

periodSeconds:探针的 间隔时间;

timeoutSeconds:探针的 超时时间,当超过我们定义的时间后,便会被视为失败;

successThreshold:探针的 最小连续成功数量;

failureThreshold:探针的 最小连续失败数量;

下面我们分别对这三种探针使用了不同的探针方式,主要是为了方便给大家做一个简单的介绍,并不是固定写法;同时,这三种探针是可以配合使用的;像一般比较常见的便是 就绪探针和存活探针配合使用(启动探针是在 K8s 1.6 版本后增加的

五、探针使用介绍

1)启动探针

apiVersion: v1
kind: Pod
metadata:name: nginx-start-upnamespace: probe
spec:containers:- name: nginx-start-upimage: nginx:latestports:- containerPort: 80startupProbe:failureThreshold: 3  #失败三次算探针失败exec:command: ['/bin/sh','-c','echo Hello World']initialDelaySeconds: 20  #延迟20s后进行第一次探针periodSeconds: 3 #间隔3s进行一次探针successThreshold: 1 #成功一次算探针oktimeoutSeconds: 2 #超时2s算失败一次


2)就绪探针

apiVersion: v1
kind: Pod
metadata:name: nginx-readynamespace: probelabels:app: nginx-ready   #验证就绪探针的关键参数
spec:containers:- name: nginx-readyimage: nginx:latestports:- containerPort: 80readinessProbe:failureThreshold: 3tcpSocket:port: 80initialDelaySeconds: 20periodSeconds: 3successThreshold: 1timeoutSeconds: 2

端口检测正常:

写一个nodeport类型进行流量验证

apiVersion: v1
kind: Service
metadata:name: ready-nodeportlabels:name: ready-nodeportnamespace: probe
spec:type: NodePortports:- port: 88protocol: TCPtargetPort: 80nodePort: 30880selector:app: nginx-ready

模拟流量结果是ok的

现在修改下就绪探针tcpSocket检测方式的端口为81模拟下探针失败,流量会不会走到该pod

显示81端口不通,ready状态为0,但pod是running的,请求一下结果如下,流量打入失败。就绪探针失败,是不会给该pod打入流量的。

3)存活探针

apiVersion: v1
kind: Pod
metadata:name: nginx-livenamespace: probelabels:app: nginx-live
spec:containers:- name: nginx-liveimage: nginx:latestports:- containerPort: 80livenessProbe:failureThreshold: 3httpGet:path: /port: 80scheme: HTTPinitialDelaySeconds: 20periodSeconds: 3successThreshold: 1timeoutSeconds: 2


生成一个nodeport类型service

apiVersion: v1
kind: Service
metadata:name: live-nodeportlabels:name: live-nodeportnamespace: probe
spec:type: NodePortports:- port: 89protocol: TCPtargetPort: 80nodePort: 30810selector:app: nginx-live

curl进行ip端口校验

修改httpget中port参数值为81,模拟存活探针失败,探针失败,会让pod进行重启。

六、探针恢复

修改探针探测端口正确,重新加载yaml文件,流量正常。

Kubernetes 三大探针及探针方式相关推荐

  1. kubernetes监控检查(探针)

    健康检查:又称为探针(Probe ) 探针是由kubelet对容器执行的定期诊断. 探针的三种规则: livenessProbe:判断容器是否正在运行.如果探测失败,则kubelet会杀死容器,并且容 ...

  2. 深入了解Kubernetes REST API的工作方式

    关于Kubernetes REST API的工作方式: 在哪里以及如何定义从REST路径到处理REST调用的函数的映射? 与etcd的交互发生在哪里? 从客户端发出请求到保存在etcd中对象的端到端路 ...

  3. Kubernetes的Service外部访问方式:NodePort和LoadBalancer

    Kubernetes的Service外部访问方式:NodePort和LoadBalancer 关注公众号 风色年代(itfantasycc) 300G微服务资料等你拿! Kubernetes的Pod的 ...

  4. Wi-Fi 探针 - 智能探针 - 探针盒子 -> 危害用户信息安全

    Wi-Fi 探针 - 智能探针 - 探针盒子 -> 危害用户信息安全 Wi-Fi 探针 - 智能探针 - 探针盒子自动收集消费者信息,危害用户信息安全.一定要注意关闭手机 Wi-Fi,不要轻易信 ...

  5. kubernetes以单个文件的方式挂载 configMap及挂载注意事项

    kubernetes 以单个文件的方式挂载 configMap 及挂载注意事项 问题现象 默认挂载 configMap 时,kubernetes 会覆盖掉挂载的整个目录,哪怕使用 items 也会导致 ...

  6. kubernetes学习笔记-就绪探针20220405

    1.介绍就绪探针 就绪探测器会定期调用,并确定特定的pod是否接收客户端请求.当容器的准备就绪探测返回成功时,表示容器已经准备好接收请求 就绪探针类型3种: 1)Exec探针,执行进程的地方,容器的状 ...

  7. 多达4000种应用签名识别的移动网络探针|DPI探针

    文章目录 定义 简介 主要功能/优点 产品内部功能 典型应用 了解更多网络可视化知识 定义 探针是一种被动设备,它接收来自TAP和网络包代理的网络流量,并提取元数据. 简介 虹科提供了新一代大数据智能 ...

  8. java 类似 黑针探针_java探针技术I——如何写一个 java agent

    开发工具 Intellij Idea 2019 maven 3 开始吧 java 探针不依赖于任何框架,所以首先我们创建一个 maven 项目即可. 创建启动类 新增一个 SartUp 的启动类 pu ...

  9. 【Kubernetes】Kubernetes的Service外部访问方式:NodePort和LoadBalancer

    Kubernetes的Pod的寿命是有限的,它们不会复活,因此尽管每个Pod都有自己的IP地址,但是这些IP地址是不可靠的,会随着Pod的消亡而消失. 这就带来一个问题,如果一些Pod的集合(称之为b ...

最新文章

  1. 原来 Kubernetes 部署如此简单,看完全明白了
  2. iOS逆向(8)-Monkey、Logos
  3. python中的 set 中的元素
  4. 百度seo指南_什么是SEO?网站怎么做SEO优化(问答篇)
  5. 远离盛行道德绑架的团队
  6. Python Demo 04-蒙特卡罗猜测与计时
  7. Android中软键盘(输入法)收起的方法
  8. HDU5833 异或方程组的初步学习
  9. css的三个特性 背景透明设置
  10. HTML+CSS+JS实现 ❤️彩色3D线条动画特效❤️
  11. MySQL实验7存储过程_mysql的总结7--存储过程-阿里云开发者社区
  12. Linux FTP服务搭建(完整步骤)
  13. 四川大学计算机徐教授,我院举行“BIM实验室开放+徐教授专题讲座”活动
  14. 四川农大2020计算机专业录取分数线,四川农业大学2020年美术类本科专业录取分数线...
  15. 基于 Spark 的文本情感分析
  16. 名帖196 米芾 行书《诉衷情》
  17. 华为手机怎么使用读卡器_手机nfc功能怎么打开(华为手机nfc功能使用步骤)
  18. 2的零次方加到2的n次方c语言,计算2的N次方........有什么错吗?
  19. Symmetric 配置数据库同步
  20. 企业工商信息查询API开发文档

热门文章

  1. msdn i tell you网址及下载系统详细步骤
  2. 解决cumcm17问题的代码记录(待改正)
  3. 解除智慧树网页各种限制(选中,复制,粘贴等)
  4. 随机变量的期望和方差
  5. 科研写作之Origin使用心得
  6. 数据结构与算法课程设计
  7. 这3款免费的Word转PDF转换器软件,建议收藏使用
  8. python里面的pip是什么意思_python中的pip是什么意思
  9. 电路基础_模拟电路_问答_2023
  10. iPhone打开个人热点的时候提示“请联系carrier”的解决方法