【Kubernetes】k8s的健康性检查详细说明【livenss probe、readiness probe】

healthy

[root@master probe]#

[root@master probe]# kubectl get pods

NAME READY STATUS RESTARTS AGE

liveness-exec 1/1 Running 0 27s

[root@master probe]# kubectl get pods

NAME READY STATUS RESTARTS AGE

liveness-exec 1/1 Running 0 31s

[root@master probe]# kubectl exec -it liveness-exec – ls /tmp

[root@master probe]#

测试上面的意义就是,文件没了就没了,下面定义prebe以后,文件没了,可以自动重新给我们生成罢了【重新生成也就是重启pod,回到pod的初始状态】

kubectl describe pod pod_name可以查看重启过程哦

liveness probe


通过重启来解决问题—重启大法–所谓的重启,就是删除这个pod创建同名的pod【和手动的区别就是,这个创建时间不会重头开始,会累计,只能看到restarts的数量在增多】

command

在容器生命的前30秒,有一个/tmp/healthy档案。所以在前30秒,命令cat /tmp/healthy返回成功代码。30秒后,cat /tmp/healthy返回失败代码【5秒左右检测】,所以35+30删除等待,大概75秒左右容器会重启。

所以流程就是,/tmp文件在30秒左右存在,30秒以后文件就没了,75秒以后,容器重启,文件又存在

[root@master probe]# cat pod2.yaml

apiVersion: v1

kind: Pod

metadata:

labels:

test: liveness

name: podliveness2

spec:

#terminationGracePeriodSeconds: 0

containers:

  • name: liveness

image: busybox

imagePullPolicy: IfNotPresent

args:

  • /bin/sh

  • -c

  • touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600

livenessProbe:

exec:

command:

  • cat

  • /tmp/healthy

initialDelaySeconds: 5 # 容器启动的5s内不检测

periodSeconds: 5 # 每5s检测一次

[root@master probe]#

开始测试,注意看下面注释说明

创建并观察容器时间和tmp文件,均正常

[root@master probe]# kubectl apply -f pod2.yaml

pod/podliveness2 created

[root@master probe]# kubectl get pods

NAME READY STATUS RESTARTS AGE

podliveness2 1/1 Running 0 2s

[root@master probe]# kubectl exec -it podliveness2 – ls /tmp

healthy

[root@master probe]# kubectl get pods

NAME READY STATUS RESTARTS AGE

podliveness2 1/1 Running 0 17s

[root@master probe]# kubectl exec -it podliveness2 – ls /tmp

healthy

[root@master probe]# kubectl get pods

NAME READY STATUS RESTARTS AGE

podliveness2 1/1 Running 0 26s

[root@master probe]# kubectl exec -it podliveness2 – ls /tmp

healthy

[root@master probe]#

30秒以后,tmp文件小时,等待75秒以后,容器重启

[root@master probe]# kubectl get pods

NAME READY STATUS RESTARTS AGE

podliveness2 1/1 Running 0 33s

[root@master probe]# kubectl exec -it podliveness2 – ls /tmp

[root@master probe]#

[root@master probe]# kubectl get pods

NAME READY STATUS RESTARTS AGE

podliveness2 1/1 Running 0 42s

[root@master probe]# kubectl get pods

NAME READY STATUS RESTARTS AGE

podliveness2 1/1 Running 0 54s

[root@master probe]# kubectl get pods

NAME READY STATUS RESTARTS AGE

podliveness2 1/1 Running 0 65s

[root@master probe]# kubectl exec -it p

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值