安全地更换所有控制平面节点 - 最佳实践

安全地更换所有控制平面节点 - 最佳实践

我有一个 3 控制平面节点 HA kubeadm 集群,需要完全替换。我已经替换了工作节点。如何在不停机的情况下完全替换控制平面?

我在 api 端点前面使用了 LB。这是一个生产环境,所以我想确保我做对了。失败不是一种选择。

我最初的攻击计划是这样的:

  1. 在原控制平面节点 1 上使用以下命令添加 3 个新节点sudo kubeadm token create --print-join-command --certificate-key $(kubeadm certs certificate-key)。获取输出并将其应用于所有 3 个新主机。
  2. 等到每个人都稳定并且所有 6 个 cp 节点都准备就绪。
  3. 耗尽第一个旧节点
  4. kubectl 删除节点
  5. ssh 进入同一节点的主机,运行 kubeadm reset。
  6. 等到一切稳定并且所有 5 个节点都准备就绪。
  7. 对剩余的旧节点再冲洗并重复2次。

这就是我害怕的地方,我知道如果你不小心使用 etcd,你的集群可能会崩溃。在原始安装期间,我们在第一个 cp 节点 (cp1) 上使用 kubeadm init。然后我们对其余节点使用加入令牌。这是否使 cp1 成为一个特殊的 cp 节点,甚至可以替换它?我四处寻找答案,但没有找到任何真正令人信服或权威的东西。

感谢您的关注。一旦我弄好,我将向 kubernetes.io 小组提交文档。

环境:kubectl、kubeadm、kubelet:1.26.0 cilium cni:1.12.5 ubuntu 20.04 containerd:1.6.17

相关内容