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 服务器根据调用的端点是 健康
/活动
/准备
。下面显示的更详细的选项旨在由人工操作员使用,以便调试其集群或了解 API 服务器的状态。
以下示例将展示如何与健康 API 端点交互。
对于所有端点,可以使用 verbose
参数打印出检查及其状态。这对人工操作员调试 API 服务器的当前状态很有用,它不打算被机器使用
curl -k https://localhost: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://localhost: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.31 [alpha]
每个单独的健康检查都公开一个 HTTP 端点,并且可以单独检查。单独健康检查的模式为 /livez/<healthcheck-name>
或 /readyz/<healthcheck-name>
,其中 livez
和 readyz
可用于分别指示您是否要检查 API 服务器的活动状态还是就绪状态。<healthcheck-name>
路径可以使用上面的 verbose
标志发现,并使用 [+]
和 ok
之间的路径。这些单独的健康检查不应被机器使用,但对人工操作员调试系统很有用
curl -k https://localhost:6443/livez/etcd