问题描述
在使用 Rancher 时遇到了一个问题,他有4个 Rancher 服务器,分别对应不同的环境:dev、sandbox、staging 和 prod。其中,有3个服务器的版本是较旧的 Rancher 1.4 版本(sandbox、staging、prod),并且托管在 OVH 托管上,而剩下的一个服务器(dev)是最新的 1.6.14 版本,并且托管在 AWS 上。他现在需要将这3个服务器从 OVH 迁移到 AWS,并将它们连接到已经存在的一个 AWS Rancher 服务器上,这个 Rancher 服务器已经有一个 dev 主机。
他尝试了两种方法:
1. 停止 OVH Rancher 主机上的 rancher-agent,并将其重新配置以连接到 AWS,然后在 AWS 控制台中它出现了,但是关于 stacks 等配置都丢失了,因为它们可能存储在原始 Rancher 服务器的 MySQL 数据库中。
2. 从每个 OVH Rancher 服务器部署一个主机到 AWS,然后在切换新主机的代理到唯一的 AWS Rancher 服务器后,stacks 等配置也会丢失。
他希望得到一个策略,能够将所有环境合并到一个 AWS Rancher 服务器上,每个环境都有一个主机,同时避免手动在 AWS 上重新创建所有 3 个环境,以减少停机时间和大量的手动工作。
解决方案
请注意以下操作可能会涉及版本差异,做好备份工作。
步骤1:支持高可用模式(HA)
要将 Rancher 主机从 OVH 迁移到 AWS,并且确保配置信息不丢失,你需要首先启用 Rancher 的高可用模式。以下是实现的步骤:
准备好外部 MySQL 数据库:你需要一个外部的 MySQL 数据库,比如 AWS RDS Aurora,用于存储 Rancher 的配置信息和数据。
准备外部负载均衡器:你需要一个外部的负载均衡器,比如 AWS ELB,用于在 Rancher 服务器节点之间进行负载均衡。
准备2个额外的 Rancher 服务器节点:为了支持 3 节点的共识,你需要额外准备2个 Rancher 服务器节点。
步骤2:迁移 Rancher 数据库和服务器
完成高可用模式的准备工作后,你需要将 Rancher 数据库和服务器迁移到 AWS。
备份并恢复数据库:使用 Rancher 提供的备份和恢复方法,将现有的 Rancher 数据库备份并恢复到 AWS RDS(或其他高可用数据库服务)中。
重新部署 Rancher 服务器:使用之前备份数据库的配置信息,重新部署 Rancher 服务器。在部署过程中,你需要提供额外的参数来连接到外部数据库。
启动额外的 Rancher 服务器节点:根据之前的准备,启动额外的 Rancher 服务器节点,可以使用 AWS ELB 进行负载均衡。
步骤3:迁移 Rancher 主机
在完成上述步骤后,你可以迁移 Rancher 主机。
在 AWS 的 Rancher 控制台中,使用“主机”选项卡,将新的 Rancher 主机添加到 AWS 中。
切换 OVH 主机:在所有主机都准备就绪后,切换现有的 OVH 主机代理到 AWS Rancher 服务器。这一过程会将配置信息从原始 Rancher 服务器迁移到 AWS Rancher 服务器。
注意事项
- 在迁移过程中,确保备份和恢复所有数据库或数据敏感的实例。
- 更多有关高可用模式的要求等详细信息可以在 Rancher 文档中找到 链接。
总结
通过支持高可用模式,备份和恢复数据库,并重新部署 Rancher 服务器,你可以成功地将 Rancher 主机从 OVH 迁移到 AWS,并确保配置信息不丢失。记得在执行操作前做好备份,以免数据丢失。