【问题标题】:Kubeadm replace nodeKubeadm 替换节点
【发布时间】:2020-11-05 09:26:53
【问题描述】:

我有带有 3 个节点“VM”的 K8s 集群,在通过 kubespray“基于 kubeadm 的工具”安装的所有 3 个节点“未污染的主节点”上安装了 Etcd 来执行主/工作任务

现在我想将一台虚拟机替换为另一台。 是否有直接的方法可以这样做,因为唯一的解决方法是通过 kubespray scale.yml ex:node4 和节点 5 添加 2 个节点以始终拥有奇数个 ETCD,然后删除额外的节点 3 和节点 5 保留节点 4

我不喜欢这种方法。

欢迎任何想法

最好的问候

【问题讨论】:

  • 我对 kubespray 不太熟悉,所以我不敢肯定地回答,但你暂时拥有偶数个节点应该没问题。只是偶数的可用性并不比奇数高(因为法定人数> 50%),因此从可用性的角度来看,偶数有点浪费。既然你说的是暂时升到 4,然后又降到 3,应该没问题。

标签: kubernetes kubeadm kubespray


【解决方案1】:

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

The recommendation of 5 main nodes 是基于这样一个事实,即即使一个节点出现故障,对于 etcd 的状态决策?,您将始终拥有多数人才能达到法定人数。因此,如果您有 5 个节点并且其中一个出现故障,您仍然可以调度/运行工作负载。

换句话说:

  • 3 个主要节点

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

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

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

【讨论】:

  • 感谢 Rico 的回答,但更换的程序是什么
  • 一次添加在底部。使用您的 kubespray 方法。我相信仅仅另外 2 个节点太麻烦了,因为你总是可以安排一个时间,当你不向集群部署任何东西时。您通常最关心的是在集群中运行的服务的正常运行时间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-20
  • 2021-10-18
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-10
相关资源
最近更新 更多