pod进阶

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

  • 探针是由kubelet对容器执行的定期诊断。
    在这里插入图片描述

1、探针的三种规则:

livenessProbe :

  • 判断容器是否正在运行。如果探测失败,则kubelet会杀死容器,并且容器将根据restartPolicy 来设置Pod状态。如果容器不提供存活探针,则默认状态为Success。

readinessProbe :

  • 判断容器是否准备好接受请求。如果探测失败,端点控制器将从与Pod 匹配的所有service endpoints中剔除删除该Pod的IP地址。初始延迟之前的就绪状态默认为Failure。如果容器不提供就绪探针,则默讣状态为Success。

startupProbe (这个1.17版本增加的):

  • 判断容器内的应用程序是否已启动,主要针对于不能确定具体启动时间的应用。如果配置了startupProbe探测,在则在startupProbe 状态为Success 之前,其他所有探针都处于无效状态,直到它成功后其他探针才起作用。
  • 如果startupProbe 失败,kubelet 将杀死容器,容器将根据restartPolicy 来重启。
  • 如果容器没有配置startupProbe,则默认状态为Success。

#注:以上规则可以同时定义。在readinessProbe 检测成功之前,Pod的running状态 是不会变成ready状态的。

2、Probe支持三种检查方法:

exec:

  • 在容器内执行指定命令。如果命令退出时返回码为0则认为诊断成功。

tcpSocket:

  • 对指定端口上的容器的IP地址进行TCP检查(三次握手)。如果端口打开,则诊断被认为是成功的。

httpGet:

  • 对指定的端口和路径.上.的容器的IP地址执行HTTPGet请求。如果响应的状态码大于等于200且小于400,则诊断被认为是成功的

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

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

二、示例

官网示例:https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/

//示例1: exec方式
apiVersion: v1
kind: Pod
metadata:
	labels:
		test: liveness
	name: liveness-exec
spec:
	containers:
	- name: liveness
		image: k8s.gcr.io/busybox
		args:
		- /bin/sh 
		- -c
		- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 60
		livenessProbe:
			exec:
				command:
				- cat
				- /tmp/healthy
			failureThreshold: 1
			initialDe laySeconds: 5
			per iodSeconds: 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会杀死这个容器并重新启动它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值