Skip to content

Kubernetes Probes

Kubernetes Probes

本篇介紹 K8s 的 Probe 機制,包括 Readiness Probe、Liveness Probe 以及 1.16 版新增的 Startup Probe。

Pod 中 Container 的 Status 會透過 Probe 的機制進行確認,所有的 Container 的 Status 統整後會代表 Pod 的 Status。Probe 的診斷機制是由 Kubelet 呼叫 Container 上的 Endpoint,或是執行 Container 上的程式,若取得正常回應或正常執行則通過診斷。

Readiness Probe

當 Readiness Probe 失敗時 Pod 無法被 Service 取用,不會影響 Pod 的狀態

使用情境:

  1. Container 需要一段啟動時間來載入檔案或檢查一些設定

Readiness Probe 不應用於檢查服務的相依內容,如相依的 DB 服務等。當去檢查相依時,相依的服務們會開始逐個被判定錯誤,最終導致整個系統崩潰。面對這種相依服務發生問題時,比較的理想做法是將服務降級,受影響的 endpoint 回覆 503,再通知人員排除問題。

Liveness Probe

當 Liveness Probe 失敗時 Pod 會被重啟

使用情境:

  1. Container 發生錯誤時不會自己 crash
  2. 服務運行在 framework 中,無法控制整個 Container 的執行狀態,如在 servlet container 中

Reference:

  1. [Kubernetes] Pod 的設計 & 相關運作機制

Comments