目前我的 k8s 集群已开启v1.16.x
,我想将其升级到v1.17.x
ETCD 必须升级到 3.4(当前为 3.3)。我的设置有点复杂,因为我在主节点之外运行 ETCD,它是一个3 节点 etcd 集群,作为容器在 3 个单独的 EC2 中运行。
我知道有关于将 ETCD 从 3.3 升级到 3.4 的简洁文档,但它没有描述当它在容器内运行时如何完成。花了相当多的时间在谷歌上搜索它,但没有运气。Kubeadm 没有太大帮助,因为 kubeadm 计划没有显示 ETCD 的主要版本升级。
我认为进行备份然后更改清单中的图像版本会有所帮助,但不太确定。
请问有人可以指导我吗?
你自己的建议其实就是答案,停止容器,把镜像改成3.4再启动。等待节点连接,您就完成了。只有当集群中的所有 etcd 节点都运行 3.4 时,它才会真正“升级”到 3.4。
注意:我自己实际上并没有进行过这种特定的升级,但我以前也做过这样的升级,甚至从 2.x 升级到 3.x,所以我认为这里不会出现问题。如果您不确定,只需使用 docker 在您的桌面本地重建 3.3 集群并尝试一下!这就是运行容器的美妙之处,它们可以在任何地方运行。
很久之后,我得到的解决方案是通过升级 kubeadm 和 kubelet 来
v1.17.x
发布kubeadm upgrade plan
显示 etcd 更新的帖子,3.4.3
我将采用这种方法。