健康检查:又称为探针(Probe )

探针是由kubelet对容器执行的定期诊断。
探针的三种规则:

livenessProbe:判断容器是否正在运行。如果探测失败,则kubelet会杀死容器,并且容器将根据restartPolicy来设置 Pod状态。
如果容器不提供存活探针,则默认状态为success.readinessProbe:判断容器是否准备好接受请求。如果探测失败,端点控制器将从与 Pod匹配的所有 service endpoints中剔除删除该Pod的IP地址。
初始延迟之前的就绪状态默认为Failure。如果容器不提供就绪探针,则默认状态为Success。startupProbe (这个1.17版本增加的):判断容器内的应用程序是否已启动,主要针对于不能确定具体启动时间的应用。
如果配置了startupProbe 探测,在则在 startuprobe 状态为 Success 之前,其他所有探针都处于无效状态,直到它成功后其他探针才起作用。
如果 startupProbe 失败,kubelet将杀死容器,容器将根据restartPolicy 米重启。如果容器没有配置 startupProbe,则默认状态为success.#注:以上规则可以同时定义。在readinessProbe检测成功之前,Pod的running状态是不会变成ready状态的。

Probe支持三种检查方法

exec:在容器内执行指定命令。如果命令退出时返回码为0则认为诊断成功。tcpSocket:对指定端口上的容器的IP地址进行TCP检查(三次握手)。如果端口打开,则诊断被认为是成功的。httplet:对指定的端口和路径上的容器的TP地址执行HTTPGet请求。如果响应的状态码大于等于200且小于400,则诊断被认为是成功的

每次探测都将获得以下三种结果之一

●成功:容器通过了诊断。
●失败:容器未通过诊断。
●未知:诊断夫败,因此不会采取任何行动

探针可配置的参数

initialDelaySeconds容器启动后多少秒后才开始执行探测periodSeconds探测的频率,每多少秒执行一次探测
failureThreshold探测失败后,允许再试几次
timeoutSeconds探测等待超时时间

示例

apiVersion: v1
kind: Pod
metadata:labels:test: livenessname: liveness-exec
spec:containers:- name: livenessimage: k8s.gcr.io/busyboxargs:- /bin/sh- -c- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 60livenessProbe:exec:command:- cat- /tmp/healthyfailureThreshold: 1initialDelaySeconds: 5periodSeconds: 5

#initialDelaySeconds:指定 kubelet 在执行第一次探测前应该等待5秒,即第一次探测是在容器启动后的第6秒才开始执行。默认是 0 秒,最小值是 0。

#periodSeconds:指定了 kubelet 应该每 5 秒执行一次存活探测。默认是 10 秒。最小值是 1。

#failureThreshold: 当探测失败时,Kubernetes 将在放弃之前重试的次数。 存活探测情况下的放弃就意味着重新启动容器。就绪探测情况下的放弃 Pod 会被打上未就绪的标签。默认值是 3。最小值是 1。

#timeoutSeconds:探测的超时后等待多少秒。默认值是 1 秒。最小值是 1。(在 Kubernetes 1.20 版本之前,exec 探针会忽略 timeoutSeconds 探针会无限期地 持续运行,甚至可能超过所配置的限期,直到返回结果为止。)

可以看到 Pod 中只有一个容器。kubelet 在执行第一次探测前需要等待 5 秒,kubelet 会每 5 秒执行一次存活探测。kubelet 在容器内执行命令 cat /tmp/healthy 来进行探测。如果命令执行成功并且返回值为 0,kubelet 就会认为这个容器是健康存活的。 当到达第 31 秒时,这个命令返回非 0 值,kubelet 会杀死这个容器并重新启动它。

kubernetes监控检查(探针)相关推荐

  1. k8s、容器监控检查及恢复机制、http get方式探针,超细详解

    文章目录 容器监控检查及恢复机制 http get方式探针 POD 的恢复策略 容器监控检查及恢复机制 在 k8s 中,可以为 Pod 里的容器定义一个健康检查"探针"(Probe ...

  2. kubernetes之容器探针(liveness and readiness probe)

    1.为什么需要容器探针 只要将pod调度到某个节点,Kubelet将运行pod的容器,如果该pod的容器有一个或所有的都终止运行(容器的主进程崩溃),Kubelet将重新启动容器,那么即使应用程序本身 ...

  3. 系统架构面临的三大挑战,看 Kubernetes 监控如何解决?

    作者|炎寻 审核&校对:白玙 编辑&排版:雯燕 大家好,我是阿里云云原生应用平台的炎寻,很高兴能与大家继续分享 Kubernetes 监控系列公开课.前两期公开课我们讲到了 Vol.1 ...

  4. Kubernetes 健康检查之 Readiness 就绪检查

    Kubernetes三种探针 k8s支持存活livenessProbe和就绪readinessProbe两种探针,两种探针都支持以下三种方式 一.exec 通过执行shell命令的方式,判断退出状态码 ...

  5. Kubernetes监控:部署Heapster、InfluxDB和Grafana

    全栈工程师开发手册 (作者:栾鹏) 架构系列文章 Kubernetes 监控方案 可选的方案: Heapster + InfluxDB + Grafana Prometheus + Grafana C ...

  6. 通过Kubernetes监控探索应用架构,发现预期外的流量

    大家好,我是阿里云云原生应用平台的炎寻,很高兴能和大家一起在 Kubernetes 监控系列公开课上进行交流.本次公开课期望能够给大家在 Kubernetes 容器化环境中快速发现和定位问题带来新的解 ...

  7. Kubernetes监控之Heapster源码分析

    源码版本 heapster version: release-1.2 简介 Heapster是Kubernetes下的一个监控项目,用于进行容器集群的监控和性能分析. 基本的功能及概念介绍可以回顾我之 ...

  8. 简单、有效、全面的Kubernetes监控方案

    简介:近年来,Kubernetes作为众多公司云原生改造的首选容器化编排平台,越来越多的开发和运维工作都围绕Kubernetes展开,保证Kubernetes的稳定性和可用性是最基础的需求,而这其中最 ...

  9. 云原生应用 Kubernetes 监控与弹性实践

    前言 云原生应用的设计理念已经被越来越多的开发者接受与认可,而Kubernetes做为云原生的标准接口实现,已经成为了整个stack的中心,云服务的能力可以通过Cloud Provider.CRD C ...

最新文章

  1. 网页爬虫python代码_《用python写网络爬虫》完整版+源码
  2. python 如何中断程序、停止程序、退出程序?sys.exit()、os._exit()、os.kill()
  3. django的sqlite3的使用_2_第一个模型
  4. EMNLP 2020 《MUTANT: A Training Paradigm for Out-of-Distribution Generalization in VQA》论文笔记
  5. 《那些年啊,那些事——一个程序员的奋斗史》——79
  6. python程序怎么修改_详解Python文件修改的两种方式
  7. C#IList与List区别
  8. linux mv复制命令,linux中删除复制移动文件rm,mv,cp命令详解linux操作系统 -电脑资料...
  9. 圣诞节就这么过了.........
  10. Python入门-函数
  11. 开发平台(Platform Builder 和 Embedded Visual C++)简介
  12. 181223每日一句
  13. 【MongoDB】索引属性 之 唯一索引
  14. CentOS安装onlyoffice
  15. Laravel自定义错误提示语语言包
  16. 圣地亚哥大学 学计算机 咋样,美国加州大学圣地亚哥分校的计算机专业怎么样?...
  17. 2021-CVPR-图像修复论文导读《Image Inpainting Guided by Coherence Priors of Semantics and Textures》
  18. linux软件的下载
  19. 【Trie图】Hiho4_Hihocoder
  20. 腾讯免费企业邮箱服务器,如何免费申请腾讯企业邮箱?

热门文章

  1. [SRv6]《SRv6网络编程》SRv6网络在电信云中的应用
  2. python培训上岗
  3. 极佳mysql修复数据库修复_极佳SQL数据库修复工具下载
  4. 洛谷 P2357 守墓人(树状数组)
  5. 软件测试工程师职业发展漫谈
  6. win10无法连接这个网络的解决方案【亲测有效】
  7. 需求定律的4个准则——《可以量化的…
  8. Visio用UML2.5模板包下载地址
  9. 实习日志_2022/3/11
  10. Java面试--Java内存模型