kubernetes健康检查liveness和readiness

liveness probe–存活探针

例如:
一个nginx的pod

探针会检查:
         nginx是否存活---是---继续----nginx是否有返回(是否可用)---是---继续----循环
                     |                                   |
                     |__否---重启-------------------------|___否---重启

还有一个很重要的点
liveness的初始值是可用的,换句话说
一个配置了liveness的pod,一开始就先默认它是没有问题的,不需要重启的.
这样的状态会一直持续到探针检测到pod不正常了,这个值才会改变

readiness probe–就绪状态探针

例如:
一个tomcat的pod,配置了replicas=3

探针会检查:

标记,概念理解待补全

2020.7.29更新
readiness这个探针,我在之前把单词拼写错了,这间接导致了我对探针概念的理解
readnes会被理解成可读性探测
readiness正确的理解,应该是就绪状态探测

实验

下面开始记录实验过程

测试liveness需要准备:

新建MySQL用户test001
新建POD:order-replicas
新建svc :order-replicas-svc
新建 secret:mysql-test-secret


将新建的svc、secert与order-replicas相关联,
使得order-replicas能正常连接数据,正常运行
在这里插入图片描述
一、观察没有探针的情况,pod无法工作时的情况
此时还没有为order-replicas添加livness探针
我们通过停止数据库容器来模拟order-replicas连接不上数据库的情况

# docker stop alfred-uat-mysql

Order-replicas开始因为连不上数据库,报错
在这里插入图片描述
同时我们看一下建卡检查的api
在这里插入图片描述
返回了DOWN
在这样的情况下,order-replicas已经无法正常工作了,
但是由于没有添加探针
它仍然是存活状态
在这里插入图片描述
二、添加探针后,观察现象,对比(一)
修改order-replicas的yaml文件,为该pod添加liveness探针
在这里插入图片描述
用同样的方法,模拟order-replicas连接不上数据库

# docker stop alfred-uat-mysql

在这里插入图片描述
持续一段时间后,观察pod状态
发现pod下的容器restart次数增加
说明探针发现了容器的异常,并通过重启的方式,尝试自我修复
在这里插入图片描述

测试readness需要准备:

新建MySQL用户test001
新建POD:order-replicas
新建 secret:mysql-test-secret


首先将order和order-replicas都做成order-svc的endpoint
在这里插入图片描述
但是order与order-replicas使用不同的账号连接数据库
在这里插入图片描述
观察两个pod都会被svc分发请求
在这里插入图片描述
通过修改order-replicas连接数据库的账号密码(也可以在数据库修改test001的密码),
在这里插入图片描述
加上

# docker restart mysql

重启数据库,迫使所有模块重新连接数据库
模拟出order正常,但是order-replicas无法连接数据库的情况
左图是order-replicas;右图是order
在这里插入图片描述
使用kubectl get pods 查看pod的状态

在这里插入图片描述
观察order-svc详情,发现order-replicas已经被从endpoint中摘除
在这里插入图片描述
说明order-replicas此时已经不会被分配请求。

练习

联合liveness与readiness测试

预期效果:
1、当pod无法响应,readiness探针检测到异常将pod标记为notready;
2、同时liveness探针也检测到异常,将故障容器杀死并重建。
3、要求重建容器后故障恢复。

通过修改yaml文件,(或者进入容器手动修改)
1、设定容器在运行后sleep30秒,然后修改环境变量MYSQL_PASS
2、然后手动重启数据库,迫使容器使用新的MYSQL_PASS重新连接数据库,
这时容器因为连不上数据库报异常,让两个探针都检测到
并且观察到现象
1、readiness摘除故障容器;
2、liveness杀死并重建容器
3、容器重启后故障恢复

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值