k8s-重启策略和健康检查

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
经验分享 程序员 微信小程序 职场和发展