Kubernetes 组件状态报告 etcd 不健康

Kubernetes 组件状态报告 etcd 不健康

我有一个 3 节点 kube 控制网络设置,其中、etcd和正在运行。当我检查组件的状态时,它显示 etcd 不健康,但 etcd 报告说它是健康的kube-apiserverkube-control-managerkube-scheduler

> kubectl get componentstatus --kubeconfig .kube/admin.kubeconfig

Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS      MESSAGE                                  ERROR
etcd-0               Unhealthy   HTTP probe failed with statuscode: 404
etcd-2               Unhealthy   HTTP probe failed with statuscode: 404
etcd-1               Unhealthy   HTTP probe failed with statuscode: 404
scheduler            Healthy     ok
controller-manager   Healthy     ok

当我检查 etcd 的状态时,我得到了以下结果

> etcdctl endpoint health --write-out=table
+------------------------+--------+------------+-------+
|        ENDPOINT        | HEALTH |    TOOK    | ERROR |
+------------------------+--------+------------+-------+
| http://10.0.1.164:2379 |   true | 2.867446ms |       |
|  http://10.0.1.62:2379 |   true | 3.305321ms |       |
| http://10.0.1.176:2379 |   true | 6.970254ms |       |
+------------------------+--------+------------+-------+

我还能够从 etcd 中放入和检索项目,提供给 kube-apiserver 的端点也是正确的。我该如何调试这样的问题?

答案1

etcd 的状态是健康的,并且工作正常,但是当您检查其组件状态时,它显示 etcd 不健康,这是因为 kubectl get componentstatus API 对象不再受支持,并且计划弃用它。这是一个已知问题,不幸的是,由于该功能是计划弃用。另请参阅来源因为某种原因。

组件状态 API 仍处于增强模式,请参阅此Git 链接 并等待官方确认删除。

由于您能够从 etcd 中检索项目,因此提供给 kube-apiserver 的端点也是正确的,然后忽略此错误并继续进行。

相关内容