一、liveness(存活探针)方式
- HTTP GET:对指定的端口和路径执行http get请求,返回非错误代码即代表正常
- TCP socket:对指定端口建立TCP链接,链接通过则代表正常
- Exec:用户自定义命令,执行的状态返回0则代表正常
- 异常后处理方式:重启容器或重建pod
二、readiness(就绪探针)
- HTTP GET:对指定的端口和路径执行http get请求,返回非错误代码即代表正常
- TCP socket:对指定端口建立TCP链接,链接通过则代表正常
- Exec:用户自定义命令,执行的状态返回0则代表正常
- 探测默认每10秒检查一次
- 异常处理方式:从service中删除该pod,直到pod再次就绪变为可访问状态,再次将pod加入到service中
三、对比使用场景
- liveness保证服务的高可用性,服务异常时使服务恢复
- 保证业务的准确性,异常的pod不对外提供服务
- 生产环境务必添加readiness,避免服务未启动完成就开始接受请求
- 废话补充:
1)在实际应用场景中,删除pod应该通过使用删除操作或修改pod标签操作,而不是直接修改探针来从服务中移除pod
2)在实际场景中,从某个service中删除或添加pod,可以在pod的标签中加入enabled=true,在service的标签选择器中也加入enabled=true,在想删除pod时,直接删除标签即可