k8s 常用的探针(Probe)
livenessProbe:
健康状态检查,周期性检查服务是否存活,检查结果失败,将"重启"容器(删除源容器并重新创建新容器)。
如果容器没有提供健康状态检查,则默认状态为Success。
readinessProbe:
可用性检查,周期性检查服务是否可用,从而判断容器是否就绪。
若检测Pod服务不可用,则会将Pod从svc的ep列表中移除。
若检测Pod服务可用,则会将Pod重新添加到svc的ep列表中。
如果容器没有提供可用性检查,则默认状态为Success。
startupProbe: (1.16+之后的版本才支持)
如果提供了启动探针,则所有其他探针都会被禁用,直到此探针成功为止。
如果启动探测失败,kubelet将杀死容器,而容器依其重启策略进行重启。
如果容器没有提供启动探测,则默认状态为 Success
探针(Probe)检测Pod服务方法:
(1)exec:
执行一段命令,根据返回值判断执行结果。返回值为0或非0,有点类似于"echo $?"。
(2)httpGet:
发起HTTP请求,根据返回的状态码来判断服务是否正常。
200: 返回状态码成功
301: 永久跳转
302: 临时跳转
401: 验证失败
403: 权限被拒绝
404: 文件找不到
413: 文件上传过大
500: 服务器内部错误
502: 无效的请求
504: 后端应用网关响应超时
...
(3)tcpSocket:
测试某个TCP端口是否能够链接,类似于telnet,nc等测试工具。
参考链接:
https://kubernetes.io/zh/docs/concepts/workloads/pods/pod-lifecycle/#types-of-probe
相关案例:
livenessProbe 健康检查之exec案例 : 连接
livenessProbe 健康检查之httpGet案例: : 连接
readinessProbe 之 exec 案例: 连接
livenessProbe-readinessProbe-httGet案例 : 连接
livenessProbe-readinessProbe-tcpSocket 案例:连接
startupProbe-livenessProbe-readinessProbe-httpGet 案例: 连接
常用的探针
livenessProbe
- exec: 执行命令。
- httGet: 发起http请求。
- tcpSocket: 对端口进行检查。
readinessProbe
- exec: 执行命令。
- httGet: 发起http请求。
- tcpSocket: 对端口进行检查。
startupProbe
- exec: 执行命令。
- httGet: 发起http请求。
- tcpSocket: 对端口进行检查。
k8s 常用的探针(livenessProbe)(readinessProbe)(startupProbe)
Grpc- 1.19开始的
欢迎来撩 : 汇总all