当我们把服务部署到kubernetes集群上,除了基本的监控告警来锁定服务异常,通过人为干预来检查和恢复外,其实kubernetes也提供了针对服务的存活检查,那就是探针。
可以通过探针检查服务的存活状态,一旦服务不正常,超过自己设置的检查数,就会重新拉起服务,接下来我们可以配置一个服务做演示:
一、首先创建一个服务
kubectl create deploy test1 --image=nginx:latest
二、进入test的deployment中添加对应的livenessProbe探针并做相关的服务检测,然后保存退出:
参数说明:
failureThreshold: 当pod成功启动成功且检查失败三次时,重新启动pod
scheme: 选择的协议模式,如http
initialDelaySeconds: 当容器启动成功后,在启动liveness的秒数
periodSeconds: 探针执行的探测频率
timeoutSeconds: 探测的超时时间
然后describe pod看下容器和events信息如下:
查看pod的状态和访问对应的服务
对应的探针信息已经加进去了,然后进入容器内,删除对应的服务匹配路径,观察服务的状态和events的信息:
进入容器删除index.html
观察到test的events信息,监听对应服务发生404,持续检测3次,然后发生重启。