kubernetes监控检查(探针)
健康检查:又称为探针(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监控检查(探针)相关推荐
- k8s、容器监控检查及恢复机制、http get方式探针,超细详解
文章目录 容器监控检查及恢复机制 http get方式探针 POD 的恢复策略 容器监控检查及恢复机制 在 k8s 中,可以为 Pod 里的容器定义一个健康检查"探针"(Probe ...
- kubernetes之容器探针(liveness and readiness probe)
1.为什么需要容器探针 只要将pod调度到某个节点,Kubelet将运行pod的容器,如果该pod的容器有一个或所有的都终止运行(容器的主进程崩溃),Kubelet将重新启动容器,那么即使应用程序本身 ...
- 系统架构面临的三大挑战,看 Kubernetes 监控如何解决?
作者|炎寻 审核&校对:白玙 编辑&排版:雯燕 大家好,我是阿里云云原生应用平台的炎寻,很高兴能与大家继续分享 Kubernetes 监控系列公开课.前两期公开课我们讲到了 Vol.1 ...
- Kubernetes 健康检查之 Readiness 就绪检查
Kubernetes三种探针 k8s支持存活livenessProbe和就绪readinessProbe两种探针,两种探针都支持以下三种方式 一.exec 通过执行shell命令的方式,判断退出状态码 ...
- Kubernetes监控:部署Heapster、InfluxDB和Grafana
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 Kubernetes 监控方案 可选的方案: Heapster + InfluxDB + Grafana Prometheus + Grafana C ...
- 通过Kubernetes监控探索应用架构,发现预期外的流量
大家好,我是阿里云云原生应用平台的炎寻,很高兴能和大家一起在 Kubernetes 监控系列公开课上进行交流.本次公开课期望能够给大家在 Kubernetes 容器化环境中快速发现和定位问题带来新的解 ...
- Kubernetes监控之Heapster源码分析
源码版本 heapster version: release-1.2 简介 Heapster是Kubernetes下的一个监控项目,用于进行容器集群的监控和性能分析. 基本的功能及概念介绍可以回顾我之 ...
- 简单、有效、全面的Kubernetes监控方案
简介:近年来,Kubernetes作为众多公司云原生改造的首选容器化编排平台,越来越多的开发和运维工作都围绕Kubernetes展开,保证Kubernetes的稳定性和可用性是最基础的需求,而这其中最 ...
- 云原生应用 Kubernetes 监控与弹性实践
前言 云原生应用的设计理念已经被越来越多的开发者接受与认可,而Kubernetes做为云原生的标准接口实现,已经成为了整个stack的中心,云服务的能力可以通过Cloud Provider.CRD C ...
最新文章
- 网页爬虫python代码_《用python写网络爬虫》完整版+源码
- python 如何中断程序、停止程序、退出程序?sys.exit()、os._exit()、os.kill()
- django的sqlite3的使用_2_第一个模型
- EMNLP 2020 《MUTANT: A Training Paradigm for Out-of-Distribution Generalization in VQA》论文笔记
- 《那些年啊,那些事——一个程序员的奋斗史》——79
- python程序怎么修改_详解Python文件修改的两种方式
- C#IList与List区别
- linux mv复制命令,linux中删除复制移动文件rm,mv,cp命令详解linux操作系统 -电脑资料...
- 圣诞节就这么过了.........
- Python入门-函数
- 开发平台(Platform Builder 和 Embedded Visual C++)简介
- 181223每日一句
- 【MongoDB】索引属性 之 唯一索引
- CentOS安装onlyoffice
- Laravel自定义错误提示语语言包
- 圣地亚哥大学 学计算机 咋样,美国加州大学圣地亚哥分校的计算机专业怎么样?...
- 2021-CVPR-图像修复论文导读《Image Inpainting Guided by Coherence Priors of Semantics and Textures》
- linux软件的下载
- 【Trie图】Hiho4_Hihocoder
- 腾讯免费企业邮箱服务器,如何免费申请腾讯企业邮箱?