自動處理:
靈活運用readinessProbe和livenessProbe探針,對於常規異常(如:服務沒有響應,健康檢查失敗)做到自動處理,業務日誌記錄異常
- readinessProbe 主要是用來探測服務是否可用,如果不可用,從service流量負載中刪除
- livenessProbe 探測容器是否健康,如果不健康則重啓服務
人工介入
探針沒有關注到的異常,可以通過監控告警,及時發現問題(如cpu負載過高等),人工介入。此時可以通過下面操作,完成流量切換和保留現場
修改異常pod的labels,如:
kubectl -n test edit pod data-message-7974fdd4db-zh692
修改:
labels:
cluster: data-message
爲
labels:
cluster: data-message-err
原理:k8s提供的service負載均衡是通過labels來選擇同一個ns下的pod作爲endpoints。手動更改異常pod label可以做到切除用戶流量,並保留異常pod。同時k8s會自動起一個新的pod,補充剛剛剔除的異常pod