我有K3s集群,其中有3个节点“ VM”,同时通过通过kubespray“基于kubeadm的工具”安装的3个节点“ untainted master”都安装了Etcd来做主服务器/工作服务器。
现在,我想将一个VM替换为另一个。 是否有直接的方法,因为唯一的解决方法是通过kubespray scale.yml ex:node4和node 5然后添加2个节点以使ETCD总是奇数。 >
我不喜欢这种方法。
欢迎任何想法
最好的问候
答案 0 :(得分:2)
如果您有3个主控制平面节点(请避免使用master,?),则一次可以替换1个。唯一的事情是您的群集将无法做出任何决定/计划任何新的工作负载,但是现有的工作负载将运行良好。
The recommendation of 5 main nodes是基于这样的事实,即使一个节点发生故障,您也将始终拥有多数以达到etcd的状态决策。因此,如果您有5个节点,其中一个发生故障,您仍然可以计划/运行工作负载。
换句话说:
3个主要节点
5个主要节点
总而言之,Raft etc是etcd的共识协议,最多可承受(N-1)/ 2个失败,并且需要多数或法定人数为(N / 2)+1。推荐的过程是一次更新一个节点:先关闭一个节点,然后再启动另一个节点,然后等待它加入集群(所有控制平面组件)