升级在 docker 容器内运行的多 etcd 集群

升级在 docker 容器内运行的多 etcd 集群

目前我的 k8s 集群已启动v1.16.x,我想将其升级v1.17.x到 3.4(目前为 3.3)。我的设置有点复杂,因为我在主节点之外运行 ETCD,而且它是3 节点 etcd 集群作为容器在 3 个独立的 EC2 中运行

我知道有关于将 ETCD 从 3.3 升级到 3.4 的简洁文档,但它没有描述如何在容器内运行时进行升级。花了大量时间在谷歌上搜索,但没有找到。Kubeadm 没有太大帮助,因为 kubeadm 计划没有显示 ETCD 的主要版本升级。

我认为进行备份然后更改清单中的图像版本会有所帮助,但我对此不太确定。

请问有人可以指导我吗?

答案1

你自己的建议其实就是答案,停止容器,将镜像更改为 3.4 并重新启动。等待节点连接,你就大功告成了。只有当集群中的所有 etcd 节点都运行 3.4 时,它才会真正“升级”到 3.4。

注意:我本人实际上没有进行过这种特定的升级,但我以前进行过类似的升级,甚至从 2.x 升级到 3.x,因此我认为这里不会出现问题。如果您不确定,只需使用 docker 在桌面本地重建 3.3 集群并尝试一下!这就是运行容器的美妙之处,它们可以在任何地方运行。

答案2

经过多方努力,我得到的解决方案是通过将 kubeadm 和 kubelet 升级到v1.17.xpost,kubeadm upgrade plan显示 etcd 更新为3.4.3,我将采用这种方法。

相关内容