首页 > 解决方案 > k8s 集群中主节点和 etcd 故障的影响

问题描述

我想了解只有一个具有内部 etcd 存储的主节点的 k8s 集群中主节点故障可能产生的影响。

据我了解,在工作节点上运行的各种已部署的工作负载容器(包括具有持久卷声明的无状态和有状态集)将继续运行,直到需要重新创建任何容器,因为它们对主节点没有直接的功能依赖node 和 etcd 存储它们的核心功能。而且,主节点不可用只会影响集群的控制平面操作。

我的理解正确吗?如果不是,您能否解释一下主节点故障对我在该集群上运行的工作负载的影响?

我知道为 k8s 集群实现 HA 的最佳方法是建立一个多主集群,并可能将 etcd 存储外部化以将它们解耦。这个问题是为了了解在配置多主集群之前主节点失败的确切影响。

标签: kubernetes

解决方案


仲裁系统上的 Etcd 操作员,只要集群达到多数,它就会继续运行。如果失败的节点是当前的领导者,其他节点将在心跳超时后触发选举。

对于 kube-apiserver,它是一个水平服务,所以丢失一个节点并不有趣,就像任何其他 webapp 一样。一些(大多数)控制器是单例的,但它们在每个控制平面节点上运行并使用 kube-apiserver 进行领导者选举,因此与 Etcd 一样,如果领导者死亡,那么几秒钟后另一个副本将获得领导者锁定并接管。


推荐阅读