ComponentStatus 已弃用 - 那么该使用什么

Chr*_* G. 10 kubernetes

您使用什么代替 og kubectl get ComponentStatus?

kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
Run Code Online (Sandbox Code Playgroud)

Adi*_*iii 11

是的,这个 API 已被弃用,因为它提供了etcd, kube-scheduler, and kube-controller-manager组件的状态,我们可以通过 kubectl 或使用/livez端点来获取这些状态。

所以你可以尝试

kubectl get --raw='/readyz?verbose'
#local cluster
curl -k https://localhost:6443/livez?verbose
Run Code Online (Sandbox Code Playgroud)

输出

[+]ping ok
[+]log ok
[+]etcd ok
[+]informer-sync ok
[+]poststarthook/start-kube-apiserver-admission-initializer ok
[+]poststarthook/generic-apiserver-start-informers ok
[+]poststarthook/priority-and-fairness-config-consumer ok
[+]poststarthook/priority-and-fairness-filter 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/priority-and-fairness-config-producer ok
[+]poststarthook/start-cluster-authentication-info-controller ok
[+]poststarthook/aggregator-reload-proxy-client-cert 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
readyz check passed
Run Code Online (Sandbox Code Playgroud)

此 API 的当前状态存在问题,需要反转实际数据流(它需要 API 服务器调用其客户端),并且无法跨部署拓扑运行。

应将其明确标记为已弃用。

将组件状态标记为已弃用

Kubernetes API服务器提供3个API端点(healthz、livez和readyz)来指示API服务器的当前状态。healthz 端点已弃用(自 Kubernetes v1.16 起),您应该使用更具体的 livez 和 readz 端点。

使用 api 健康检查