Kubernetes API 健康端點
Kubernetes API 伺服器提供了 API 端點以指示 API 伺服器的當前狀態。本頁描述了這些 API 端點並解釋瞭如何使用它們。
健康檢查 API 端點
Kubernetes API 伺服器提供了 3 個 API 端點(healthz
、livez
和 readyz
)來指示 API 伺服器的當前狀態。healthz
端點已棄用(自 Kubernetes v1.16 起),你應該改用更具體的 livez
和 readyz
端點。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>
,其中 livez
和 readyz
可以分別用於指示你是否要檢查 API 伺服器的活躍度或就緒狀態。<healthcheck-name>
路徑可以使用上述 verbose
標誌來發現,並取 [+]
和 ok
之間的路徑。這些獨立的健康檢查不應被機器使用,但對於人工操作員除錯系統可能很有幫助
curl -k https://:6443/livez/etcd