KubeSphere 迁移“平替”方案:30分钟从 Kubekey 无痛迁移到 Sealos

380 阅读5分钟

哈喽兄弟们,是我!网上刚跟大家吐槽完 KubeSphere“塌房”的事

发现很多人提到:“地基都要塌了,那我们这些住在上面的‘租户’咋办啊?搬家也太麻烦了吧!”

我懂,我懂!一想到迁移,大家脑子里是不是已经浮现出熬夜、掉头发、业务中断三件套了?特别是我们用 Kubekey 辛辛苦苦搭起来的集群,现在就像个烫手山芋,扔也不是,不扔也不是。

别担心!今天这篇,就是我加班加点给兄弟姐妹们整理出来的“无痛”搬家攻略,手把手教你,如何在喝杯奶茶的时间里,把你的宝贝业务从 KubeSphere 平滑地“搬”到 Sealos 上,彻底跟 Kubekey 和那堆复杂的集群说拜拜!

一、 为啥这次搬家能“无痛”?

在开始“打包”前,咱得先搞明白,为啥我敢说这次迁移能“无痛”。这可不是吹牛,底气都来自这几点:

  • 100% 兼容 Kubernetes 标准

    • 这是实现“无痛”迁移的基石。你的应用既然能在 KubeSphere(一个基于K8s的PaaS)上运行,那么它本质上就是标准的容器化应用。Sealos 同样基于100%开源的 Kubernetes,这意味着你的应用无需任何代码改造,就能在 Sealos 上完美运行。!
  • 咱们只搬“家具”,不重建“毛坯房”

    • 这次迁移,我们的核心思路是把最有价值的“应用”(也就是家具)搬走,而不是去重建 KubeSphere 那个复杂的“毛坯房”(集群)。Sealos 已经为我们准备好了精装修的房子,我们直接拎包入住就行!
  • 全程“可视化”操作,告别黑匣子

    • 整个过程都在 Sealos 简洁的图形化界面里完成,点点鼠标就行,再也不用对着黑乎乎的命令行和天书一样的 YAML 文件瑟瑟发抖了!

二、 迁移三步走:实战开始!

假设你在 KubeSphere 上有一个名为 my-app 的应用正在运行。现在,我们开始迁移。

第一步:应用“体检”与打包

我们需要从 KubeSphere 中,获取你应用的两样核心资产:镜像地址运行配置 (YAML)

  1. 获取镜像地址:
  2. 在 KubeSphere 的工作负载界面,找到你的 my-app 应用,点进去可以看到它正在使用的 Docker 镜像地址和版本号(Tag)。把它复制下来。例如:nginx:1.21.6。
  3. 导出YAML配置:
  4. 这是最关键的一步!我们需要把应用的部署(Deployment)和服务(Service)配置给导出来。有后台权限的家人,直接用 kubectl 命令最快:
# 导出 Deployment 配置kubectl get deployment my-app -n <你的命名空间> -o yaml > my-app-deployment.yaml # 导出 Service 配置kubectl get service my-app -n <你的命名空间> -o yaml > my-app-service.yaml
  1. 把这两个文件存好。这可是你应用的“DNA”,里面记录了它长啥样、需要多大空间、门朝哪开的所有信息!

第二步:在 Sealos 上“安家落户”

现在,我们来到 Sealos 这个新家,你会发现一切都变得无比简单。

  1. 登录 Sealos,打开 「App Launchpad」 (应用启动器)。

  1. 点击“新建应用”。

  1. 名字咱还叫 my-app
  2. 在“基础配置”里,把刚才复制的 nginx:1.21.6 填到“镜像地址”框里。(悄悄说一句:如果是私有镜像,点一下“私有”,填上用户名和密码就行,超方便!)

  1. 最神奇的操作来了:点开下面的“高级配置”,把我们刚才导出的那两个 YAML 文件的内容,直接复制粘贴进去。Sealos 会像个贴心管家一样,自动读懂你所有的配置!

  1. 点击“部署应用”。

完成了!就是这么简单。Sealos 会自动拉取镜像,并根据你的YAML配置,将应用完美地运行起来。2分钟后,你就能在应用列表看到它,并获得一个可访问的内网地址。

第三步:数据迁移与服务切换

对于迁移来说,应用本身好办,数据才是核心。

  • 如果你的应用是无状态的(比如一个纯前端网站或不存储数据的API服务):

  • 恭喜你,你的迁移工作已经基本完成了!你只需要将原来指向 KubeSphere 服务的域名,解析到 Sealos 为你提供的新地址上即可。

  • 如果你的应用是带数据库的有状态应用:

  • 这是“无痛”迁移中唯一需要你动手操作的一步,但也非常简单。

    • 备份旧数据:使用你数据库自带的备份工具(如 mysqldump),将 KubeSphere 中数据库的数据备份成一个 .sql 文件。
    • 创建新数据库:在 Sealos 的 「Database」 应用中,一键创建一个新的、高可用的同类型数据库(比如 MySQL)。
    • 恢复新数据:通过 Sealos 提供的数据库连接信息,将刚刚备份的 .sql 文件导入到新的数据库中。
    • 修改应用配置:在 my-app 的YAML配置中,将数据库连接地址修改为 Sealos 新数据库的内网地址。
    • 切换域名:将域名解析到 Sealos 的新地址,大功告成!

三、 告别 Kubekey,拥抱云计算本该有的样子

回顾整个过程,我们发现所谓的“迁移”,其实就是一次简单的“复制粘贴”。我们告别的,是 Kubekey 背后那套复杂的集群安装、维护、升级的沉重负担;我们拥抱的,是一个只需关心应用本身的、轻量高效的云操作系统。

KubeSphere 的闭源风波,或许不是一件坏事。它给了我们一个机会,去重新审视我们与基础设施的关系,去寻找一个真正能让我们“无痛”地专注于创造的平台。

迁移不是终点,而是你解放生产力的开始。