Kubeadm替换节点

时间:2020-07-15 19:21:56

标签: kubernetes kubeadm kubespray

我有K3s集群,其中有3个节点“ VM”,同时通过通过kubespray“基于kubeadm的工具”安装的3个节点“ untainted master”都安装了Etcd来做主服务器/工作服务器。

现在,我想将一个VM替换为另一个。 是否有直接的方法,因为唯一的解决方法是通过kubespray scale.yml ex:node4和node 5然后添加2个节点以使ETCD总是奇数。 >

我不喜欢这种方法。

欢迎任何想法

最好的问候

1 个答案:

答案 0 :(得分:2)

如果您有3个主控制平面节点(请避免使用master,?),则一次可以替换1个。唯一的事情是您的群集将无法做出任何决定/计划任何新的工作负载,但是现有的工作负载将运行良好。

The recommendation of 5 main nodes是基于这样的事实,即使一个节点发生故障,您也将始终拥有多数以达到etcd的状态决策。因此,如果您有5个节点,其中一个发生故障,您仍然可以计划/运行工作负载。

换句话说:

  • 3个主要节点

    • 可以容忍一个节点的故障。
    • 将无法做出决定
  • 5个主要节点

    • 可以容忍一个节点的故障。
    • 由于仍有4个节点可用,因此仍可以做出决定。
    • 如果发生2次失败,则可以容忍,但没有仲裁。

总而言之,Raft etc是etcd的共识协议,最多可承受(N-1)/ 2个失败,并且需要多数或法定人数为(N / 2)+1。推荐的过程是一次更新一个节点:先关闭一个节点,然后再启动另一个节点,然后等待它加入集群(所有控制平面组件)