k8s异常pod处理

自动处理:

灵活运用readinessProbe和livenessProbe探针,对于常规异常(如:服务没有响应,健康检查失败)作到自动处理,业务日志记录异常负载均衡

  • readinessProbe 主要是用来探测服务是否可用,若是不可用,从service流量负载中删除
  • livenessProbe 探测容器是否健康,若是不健康则重启服务

人工介入

探针没有关注到的异常,能够经过监控告警,及时发现问题(如cpu负载太高等),人工介入。此时能够经过下面操做,完成流量切换和保留现场日志

修改异常pod的labels(对应于service的selector配置),如:code

kubectl -n test edit pod data-message-7974fdd4db-zh692

修改:it

labels:
    cluster: data-message

test

labels:
    cluster: data-message-err

原理:k8s提供的service负载均衡是经过labels来选择同一个ns下的pod做为endpoints。手动更改异常pod label能够作到切除用户流量,并保留异常pod。同时k8s会自动起一个新的pod,补充刚刚剔除的异常pod容器