k8s-重启策略和健康检查
健康检查 + pod重启策略
·
K8S 重启策略和健康检查
重启策略:
- Always: 当容器终止退出后,总是重启容器,默认策略
- Onfailure:当容器异常退出(退出状态码非0)时,才重启容器
- Never:当容器终止退出,从不重启容器
健康检查:
- livenessProbe(存活检查):如果检查失败,将杀死容器,根据Pod的restartPolicy来操作
- readinessProbe(就绪检查):如果检查失败,Kubernetes会把Pod从service endpoints中剔除
- startupprobe(启动检查):检查成功才由存活检查接手,用于保护慢启动容器
支持以下三种检查方法
- httpGet发送HTTP请求,返回200-400范围状态码为成功
- exec:执行Shell命令返回状态码是0为成功
- tcpSocket:发起TCP Socket建立成功
常见架构
- 假如正常的服务挂了,会中断不给他流量一段时间,让他冷却后再尝试恢复。日常运维是通过写shell脚本来实现监控服务重启的
- 在pod中服务挂了(进程挂了),pod根据restartPolicy进行重启,重启后再根据探针决定是否恢复服务。
- 数据处理类有些不宜重启,部分定时任务直接设置为不重启
模拟HTTP请求
apiVersion: v1
kind: Pod
metadata:
name: probe-demo
spec:
containers:
- name: web
image: nginx
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5 # 启动容器后多少秒健康检查
periodSeconds: 10 # 以后每间隔多少秒检查一次
readinessProbe: # 就绪检查,从Service中剔除容器
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 10
更多推荐
已为社区贡献4条内容
所有评论(0)