Kubernetes API 健康端點

Kubernetes API 伺服器提供了 API 端點以指示 API 伺服器的當前狀態。本頁描述了這些 API 端點並解釋瞭如何使用它們。

健康檢查 API 端點

Kubernetes API 伺服器提供了 3 個 API 端點(healthzlivezreadyz)來指示 API 伺服器的當前狀態。healthz 端點已棄用(自 Kubernetes v1.16 起),你應該改用更具體的 livezreadyz 端點。livez 端點可以與 --livez-grace-period 標誌一起使用,以指定啟動持續時間。對於平滑關機,你可以使用 /readyz 端點指定 --shutdown-delay-duration 標誌。檢查 API 伺服器 healthz/livez/readyz 的機器應依賴 HTTP 狀態碼。狀態碼 200 表示 API 伺服器是 healthy/live/ready,具體取決於呼叫的端點。下面顯示了更詳細的選項,旨在供人工操作員用於除錯其叢集或瞭解 API 伺服器的狀態。

以下示例將展示如何與健康檢查 API 端點進行互動。

對於所有端點,你可以使用 verbose 引數列印檢查及其狀態。這對於人工操作員除錯 API 伺服器的當前狀態很有用,不適用於機器

curl -k https://:6443/livez?verbose

或從需要認證的遠端主機

kubectl get --raw='/readyz?verbose'

輸出將如下所示

[+]ping ok
[+]log ok
[+]etcd ok
[+]poststarthook/start-kube-apiserver-admission-initializer ok
[+]poststarthook/generic-apiserver-start-informers ok
[+]poststarthook/start-apiextensions-informers ok
[+]poststarthook/start-apiextensions-controllers ok
[+]poststarthook/crd-informer-synced ok
[+]poststarthook/bootstrap-controller ok
[+]poststarthook/rbac/bootstrap-roles ok
[+]poststarthook/scheduling/bootstrap-system-priority-classes ok
[+]poststarthook/start-cluster-authentication-info-controller ok
[+]poststarthook/start-kube-aggregator-informers ok
[+]poststarthook/apiservice-registration-controller ok
[+]poststarthook/apiservice-status-available-controller ok
[+]poststarthook/kube-apiserver-autoregistration ok
[+]autoregister-completion ok
[+]poststarthook/apiservice-openapi-controller ok
healthz check passed

Kubernetes API 伺服器還支援排除特定檢查。查詢引數也可以像這個例子一樣組合使用

curl -k 'https://:6443/readyz?verbose&exclude=etcd'

輸出顯示 etcd 檢查被排除

[+]ping ok
[+]log ok
[+]etcd excluded: ok
[+]poststarthook/start-kube-apiserver-admission-initializer ok
[+]poststarthook/generic-apiserver-start-informers ok
[+]poststarthook/start-apiextensions-informers ok
[+]poststarthook/start-apiextensions-controllers ok
[+]poststarthook/crd-informer-synced ok
[+]poststarthook/bootstrap-controller ok
[+]poststarthook/rbac/bootstrap-roles ok
[+]poststarthook/scheduling/bootstrap-system-priority-classes ok
[+]poststarthook/start-cluster-authentication-info-controller ok
[+]poststarthook/start-kube-aggregator-informers ok
[+]poststarthook/apiservice-registration-controller ok
[+]poststarthook/apiservice-status-available-controller ok
[+]poststarthook/kube-apiserver-autoregistration ok
[+]autoregister-completion ok
[+]poststarthook/apiservice-openapi-controller ok
[+]shutdown ok
healthz check passed

單獨的健康檢查

功能狀態: Kubernetes v1.34 [alpha]

每個獨立的健康檢查都暴露一個 HTTP 端點,並且可以單獨檢查。獨立健康檢查的 schema 是 /livez/<healthcheck-name>/readyz/<healthcheck-name>,其中 livezreadyz 可以分別用於指示你是否要檢查 API 伺服器的活躍度或就緒狀態。<healthcheck-name> 路徑可以使用上述 verbose 標誌來發現,並取 [+]ok 之間的路徑。這些獨立的健康檢查不應被機器使用,但對於人工操作員除錯系統可能很有幫助

curl -k https://:6443/livez/etcd
上次修改時間:2023 年 12 月 21 日下午 4:58 PST:[en] 修復健康檢查文件的 schema 註釋 (73ede84c98)