我们使用KOPS在AWS中部署了一个小型集群。
出于组织目的,我们会将一个k8s集群迁移到另一个AWS账户。
我尝试使用etcd备份/还原进行迁移,但是还原后,不再使用kubectl get nodes
列出节点,并且所有pod都处于挂起状态。
我执行的步骤:
- 使用
kops get cluster $clusterName --state $state -o yaml
提取的k8s群集清单 - 使用
kops create -f $manifestFile --state $state
创建了k8s集群 - 以terraform为目标运行
kops update cluster
,然后应用生成的terraform文件。 - 按照this修复八卦DNS和terraform问题。
- 将最新的main / eventsetcd备份文件复制到新的s3状态存储中。
- 在新群集中同时还原了主备份和事件备份。 here 中所述的步骤
- 在主服务器中重新启动etcd容器
结果:
- 窗格显示为待处理,不再找到节点。
集群最初是1.12.8版本,但已作为测试修复程序升级到1.12.10 - 除DNS外,kube系统中的大多数pod正在运行。
-
kubectl get cs
结果:
尝试以下方法解决此问题:
-
kops update cluster
然后kops rolling-update cluster
-
kops upgrade cluster
- 删除节点的自动缩放组,然后运行
kops update cluster
有什么想法吗?
是否有另一种方法可以将k8s集群从一个AWS账户迁移到另一个账户?
谢谢!