5、pod的健康检查(探针probe)

探针的作用:定期对pod内的容器进行诊断,是否满足预制的条件。

探针类型

1、启动探针 startupProbe

  • 探测pod内容器应用是否启动成功,启动探针的优先级是最高,只有当启动探针成功之后,其他的探针才可以激活。否则都处于禁用状态。
  • 启动探针启动之后就不会再检测。

2、存活探针 livenessProbe

  • 探测pod内的容器是否正常运行,如果探测失败,容器会被杀死并重启,pod也会重启(基于控制器创建的pod)。
  • 存活探针会伴随整个pod的生命周期,只要pod存在就会一直探测。

3、就绪探针 readinessProbe

  • 探测pod是否有资格进入ready状态,pod是否能够接受请求,如果pod进过探测之后不是ready状态,service中会剔除该pod,在endpoint当中也会被剔除,流量请求不会再发送到这个pod。
  • 存活探针会伴随整个pod的生命周期,只要pod存在就会一直探测。

探针的检查方法

1、exec

  • 进入容器内部执行指定的命令,如果命令返回码是0,表示成功,非0表示失败。
  • 适用于需要在容器内执行自定义命令来检查健康状态的情况。

2、tcpSocket

  • 对指定容器内的端口和IP地址进行tcp检查(三次握手),如果端口正常,则任务成功。
  • 适用于需要对容器端口进行检查的场景。

3、httpGet

  • 对指定端口和路径上的容器的IP地址进行http的get方式的请求,响应码返回的值≥200且<400的情况下,才算成功,否则失败。
  • 适用于需要对外提供web访问的pod。

启动探针

运行脚本后,pod创建成功,并创建live文件

这时候我们删除了live文件会发现pod不会重启;修改启动探针时的command,改成检测/tmp/lives不存在的文件,那么会显示启动是吧。综上表示:

  • 启动探针启动成功一次就不会重启;但是如果一开始就启动失败,会杀掉容器不断重启。

存活探针

exec方式

httpGet方式

tcpSocket方式

  • 只有当启动探针成功之后,其他的探针才可以激活。否则都处于禁用状态。
  • 自愈的原因:如果存活探针探测失败,容器会被杀死并重启整个pod。

就绪探针

  • 就绪探针不是就绪状态是不能转发流量,恢复之后会重新加入到流量转发集群。
  • 就绪探针不是就绪状态也不会重启

因为就绪探针没有自愈手段,工作中通常存活探针+就绪探针一起使用

启动钩子

lifecycle:pod声明周期的一部分。启动钩子可以自定义为容器内添加配置,或者初始化容器内的环境;退出钩子可以把冗余的信息删除,节约磁盘空间。

  • 启动钩子:postStart,启动的时候需要执行的命令。
  • 退出钩子:preStop,退出的时候执行的命令。

作业

定义一个pod,使用deployment控制器,副本数3

包含启动探针exec,包含就绪探针httpGet,包含存活探针tcpsocket,包含启动钩子和退出钩子。

运行之后,我们会发现在两个node宿主机上,创建了/opt/zw1的挂载卷,并有123.txt文件;关闭pod之后,会出现456.txt文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值