K8s中存在两种类型的探针:liveness probe和readiness probe。

liveness probe(存活探针)

用于判断容器是否存活,即Pod是否为running状态,如果LivenessProbe探针探测到容器不健康,则kubelet将kill掉容器,并根据容器的重启策略是否重启。如果一个容器不包含LivenessProbe探针,则Kubelet认为容器的LivenessProbe探针的返回值永远成功。

有时应用程序可能因为某些原因(后端服务故障等)导致暂时无法对外提供服务,但应用软件没有终止,导致K8S无法隔离有故障的pod,调用者可能会访问到有故障的pod,导致业务不稳定。K8S提供livenessProbe来检测应用程序是否正常运行,并且对相应状况进行相应的补救措施。

注意,liveness探测失败并一定不会重启pod,pod是否会重启由你的restart policy 控制。

readiness probe(就绪探针)

用于判断容器是否启动完成,即容器的Ready是否为True,可以接收请求,如果ReadinessProbe探测失败,则容器的Ready将为False,控制器将此Pod的Endpoint从对应的service的Endpoint列表中移除,从此不再将任何请求调度此Pod上,直到下次探测成功。通过使用Readiness探针,Kubernetes能够等待应用程序完全启动,然后才允许服务将流量发送到新副本。

比如使用tomcat的应用程序来说,并不是简单地说tomcat启动成功就可以对外提供服务的,还需要等待spring容器初始化,数据库连接没连上等等。对于spring boot应用,默认的actuator带有/health接口,可以用来进行启动成功的判断。

每类探针都支持三种探测方法:

exec:通过执行命令来检查服务是否正常,针对复杂检测或无HTTP接口的服务,命令返回值为0则表示容器健康。

httpGet:通过发送http请求检查服务是否正常,返回200-399状态码则表明容器健康。

tcpSocket:通过容器的IP和Port执行TCP检查,如果能够建立TCP连接,则表明容器健康。

探针探测的结果有以下三者之一:

Success:Container通过了检查。

Failure:Container未通过检查。

Unknown:未能执行检查,因此不采取任何措施。

Pod重启策略:

Always: 总是重启

OnFailure: 如果失败就重启

Never: 永远不重启

例子

apiVersion: v1

kind: Pod

metadata:

name: goproxy

labels:

app: goproxy

spec:

containers:

- name: goproxy

image: k8s.gcr.io/goproxy:0.1

ports:

- containerPort: 8080

readinessProbe:

tcpSocket:

port: 8080

initialDelaySeconds: 5

periodSeconds: 10

livenessProbe:

tcpSocket:

port: 8080

initialDelaySeconds: 15

periodSeconds: 20

探针(Probe)有许多可选字段,可以用来更加精确的控制Liveness和Readiness两种探针的行为。这些参数包括:

initialDelaySeconds:容器启动后第一次执行探测是需要等待多少秒。

periodSeconds:执行探测的频率。默认是10秒,最小1秒。

timeoutSeconds:探测超时时间。默认1秒,最小1秒。

successThreshold:探测失败后,最少连续探测成功多少次才被认定为成功。默认是1。对于liveness必须是1。最小值是1。

failureThreshold:探测成功后,最少连续探测失败多少次才被认定为失败。默认是3。最小值是1。

参考文章

k8s探针检测php,K8s探针相关推荐

  1. k8s探针检测php,K8S教程(7)使用探针对容器进行健康检查

    应用在运行过程不可避免会出现各种问题导致服务不可用的情况发生,K8S的Health Check健康检查机制可以对这些异常服务进行重启.剔除等操作,保障高可用. 一.K8S的健康检查探针 K8S的探针主 ...

  2. k8s探针检测php,k8s实践11:kubernetes监测探针简单测试

    探针实践 1.两种探针 readiness probe(就绪探针) 监测容器是否就绪?只有pod里的容器就绪,kubelet才会认为pod处于就绪状态. 就绪探针的作用是控制哪些pod可以作为svc的 ...

  3. k8s探针检测php,k8s探针实现grpc健康检查

    这篇文章教大家如何利用k8s实现grpc健康检查 一. 配置Liveness和Readiness探针 kubelet 使用 liveness probe(存活探针)来确定何时重启容器.例如,当应用程序 ...

  4. k8s 查看pod流量_Kubernetes K8S之Pod生命周期与探针检测

    K8S中Pod的生命周期与ExecAction.TCPSocketAction和HTTPGetAction探针检测 主机配置规划 Pod容器生命周期 Pause容器说明 每个Pod里运行着一个特殊的被 ...

  5. K8S使用就绪和存活探针配置健康检查

    本文转自:K8S使用就绪和存活探针配置健康检查 | 王柏元的博客,评论请前往原网站 一. 健康检查 健康检查(Health Check)可用于服务运行的状态监控,比如腾讯旗下的DNSPOD的D监控,要 ...

  6. linux探针,存活探针(Liveness)、就绪探针(Readiness)、启动探针(Startup)、容器钩子

    一.探针 1.1.探针类型 LivenessProbe 用于判断容器是否存活(running状态),如果LivenessProbe探针探测到容器不健康,则kubelet杀掉该容器,并根据容器的重启策略 ...

  7. 自建k8s平台-高可用k8s集群

    自建k8s平台-高可用k8s集群 一.前置概念与操作 1.内核升级 3.10内核在大规模集群具有不稳定性 内核升级到4.19+ # 查看内核版本 uname -sr # 0.升级软件包,不升级内核 y ...

  8. fluentd收集K8S日志并以K8S的container_name作为索引名存入Elasticsearch中

    fluentd收集K8S日志并以K8S的container_name作为索引名存入Elasticsearch中 参考地址 https://faun.pub/how-to-create-custom-i ...

  9. 【云原生之k8s】kubeadm搭建k8s集群

    [云原生之k8s]kubeadm搭建k8s集群 前言 一.集群介绍 (1)集群搭建方法 (2)集群架构 二.集群部署 (1)环境部署 ①所有节点,关闭防火墙规则,关闭selinux,关闭swap交换 ...

最新文章

  1. chrome打不开12306
  2. JAVA实现二维数组中的查找(《剑指offer》)
  3. 读秦小波《设计模式之禅》 -- 单例模式
  4. 浏览器加载本地html页面,在浏览器字段中加载本地HTML文件时是否显示白屏?
  5. 网站推广专员浅析关键词筛选决定网站推广的排名与流量
  6. 启动MySQL报错:ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)
  7. jquery部分方法
  8. C++:cin.getline
  9. 根据目标选择减肥方法 少做无用功
  10. centos7安装php5.2yum源操作_Centos7.6使用yum安装PHP7.2
  11. 可用子网数要不要减2_子网数、主机数与子网掩码的关系
  12. Silverlight 2.0学习笔记——RIAs的缺点
  13. android6.0如何锁定程序,如何在Android中制作应用程序锁定应用程序?
  14. elementui 遮罩
  15. ptpd 源码解析_IEEE 1588 ptp 代码实现
  16. 微软官方地址下载sql 2000简体中文企业版(含SP3 SP4 下载地址)
  17. python中shift函数_Python numpy.left_shift函数方法的使用
  18. 计算机网络月考题职专一年级,职高一年级计算机专业WORD试题
  19. 质子之死:粒子衰变如何推出万有理论
  20. 【学习python语法】

热门文章

  1. Mac上一键PNG转JPG,图片转jpg并保存到桌面,右键服务转换
  2. 一文读懂C++虚函数的内存模型
  3. CLEARCO Silicone Fluids Grease Compounds
  4. Abp mysql guid_使用ABP框架踩过的坑系列5
  5. 关于Mongodb的全面总结
  6. 记一次线上报错{“exception“:“Illegal pattern component: XXX}
  7. T6客户档案-供应商-存货名称不能录入空格--sql 怎么去掉最后一个字符
  8. 第十七章 OAuth2集成——《跟我学Shiro》
  9. 多域单点登录SSO系统的实现
  10. 风声,雨声,读书声-------候捷和孟岩的谈话