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 服务器是健康/存活/就绪,具体取决于调用的端点。 下面显示的更详细的选项旨在供人工操作员使用,以调试其集群或了解 API 服务器的状态。

以下示例将展示如何与健康 API 端点交互。

对于所有端点,您可以使用 verbose 参数打印出检查及其状态。 这对于人工操作员调试 API 服务器的当前状态非常有用,它不打算由机器使用

curl -k https://127.0.0.1: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://127.0.0.1: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.32 [alpha]

每个单独的健康检查都公开一个 HTTP 端点,并且可以单独检查。 单个健康检查的架构是 /livez/<健康检查名称>/readyz/<健康检查名称>,其中 livezreadyz 可用于指示您是否要分别检查 API 服务器的活动性或就绪性。 可以使用上面的 verbose 标志发现 <健康检查名称> 路径,并获取 [+]ok 之间的路径。 这些单独的健康检查不应由机器使用,但对于人工操作员调试系统可能很有帮助

curl -k https://127.0.0.1:6443/livez/etcd
上次修改时间:2023 年 12 月 21 日下午 4:58 PST:[en] 修复健康检查文档的架构注释 (73ede84c98)