在带有多个主节点和etcd集群的kubernetes 1.7中,主节点默认如何连接etcd集群



我想知道当主节点想要连接etcd集群时,会选择哪个etcd节点?主节点是否总是连接同一个etcd节点,直到它变得不可用?主集群中的每个节点都会连接etcd集群中的同一节点吗?

调度程序和控制器管理器与同一节点上的API服务器进行对话。在HA设置中,一次只能运行其中一个(基于租约),并且当前活动的用户将与本地API服务器对话。如果由于某种原因无法连接到本地API服务器,则不会续订租约,并将选出另一位领导者。

如上所述,在任何给定的时刻,只有一个API服务器将是领导者,因此这是唯一需要担心到达etcd集群的地方。至于etcd集群本身,当您配置kubernetes API服务器时,您会向其传递etcd-servers标志,这是一个etcd节点列表,如:

--etcd-servers=https://10.240.0.10:2379,https://10.240.0.11:2379,https://10.240.0.12:2379

然后将其传递给Go etcd/客户端库,查看其自述状态:

etcd/client在其他可用端点上进行循环轮换,如果首选端点不能正常工作。例如,如果etcd/client连接的成员被硬终止,那么etcd/client将在与被终止成员的第一次尝试中失败,而在与另一个成员的第二次尝试中成功。如果它未能与所有可用的端点通信,它将返回所有发生的错误。

这意味着它将尝试每个可用节点,直到成功连接到一个节点。

最新更新