千家信息网

如何将Rancher2.5.x 迁移至任意K8S发行版

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章为大家展示了如何将Rancher2.5.x 迁移至任意K8S发行版,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Rancher v2.5 之前的版本是
千家信息网最后更新 2026年11月01日如何将Rancher2.5.x 迁移至任意K8S发行版

本篇文章为大家展示了如何将Rancher2.5.x 迁移至任意K8S发行版,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Rancher v2.5 之前的版本是不支持将 Rancher 迁移到其他集群的,但可以利用一些"黑科技"实现将 Rancher 迁移到新的集群。

从 Rancher v2.5 开始,可以使用 rancher-backup operator 来备份和恢复 Rancher,rancher-backup 工作时不需要暴露 etcd,因为 operator 通过调用 kube-apiserver 来收集资源。我们可以利用此特性将 Rancher 迁移到任何标准 Kubernetes 发行版的集群中。

迁移过程概要:

  1. 创建 Rancher 备份,并将备份上传到备份存储位置

  2. 创建 Rancher local 集群

  3. 使用 Restore 自定义资源从备份中还原到 local 集群

  4. 使用 Helm 安装 Rancher

迁移先决条件:

  • Rancher 版本必须是 v2.5.0 及以上。

  • 如果你要将 Rancher 迁移到一个新的 Kubernetes 集群,你不需要先在新集群上安装 Rancher。如果将 Rancher 还原到一个已经安装了 Rancher 的新集群上,可能会引起问题。

  • 要求使用与第一个集群中设置的服务器 URL 相同的 hostname,本例为:rancher.kingsd.top。

备份存储位置:

Rancher v2.5 备份支持将备份文件推送到兼容 S3 的对象存储(比如:MinIO 或阿里云 OSS),也可以存储在一个 Persistent Volumes 中。考虑到一些用户是离线环境,而且跨集群使用 Persistent Volumes 的方式比较麻烦,所以本文采用将备份推送到 MinIO 的方式。

MinIO 安装参考 MinIO 官网(https://docs.min.io/)即可。本文已安装的 MinIO 地址为:https://rancher.kingsd.top。

安装单节点 Rancher

为了更好的展现迁移效果,本文将演示 "单节点" 迁移到 "高可用" 的场景,当然,也支持 "高可用" 迁移到 "高可用" 的场景,步骤基本相同。

由于在上面 "迁移先决条件" 中提到的 "要求使用与第一个集群中设置的服务器 URL 相同的 hostname",所以原集群不能是"使用 Rancher 默认的自签名证书"的方式安装,因为该方式将自动为 Rancher 签发证书。本文采用"使用已有的可信证书"方式安装 Rancher:

Rancher 单节点安装指南:

https://docs.rancher.cn/docs/rancher2/installation_new/other-installation-methods/single-node-docker/_index

sudo docker run -d --privileged --restart=unless-stopped \
-p 80:80 -p 443:443 \
-v /opt/rancher.kingsd.top.pem:/etc/rancher/ssl/cert.pem \
-v /opt/rancher.kingsd.top.key:/etc/rancher/ssl/key.pem \
rancher/rancher:v2.5.5 \
--no-cacerts

然后在 DNS 服务器上将域名 rancher.kingsd.top 映射到你的 Rancher 服务器的 IP,随后你就可以通过 https://rancher.kingsd.top 访问到你的单节点 Rancher UI 了。为了测试迁移之后依然可以管理下游业务集群,我们需要创建一个自定义集群,并创建几个测试 workload,以便迁移之后做验证。

备份 Rancher

创建 MinIO Secret

将备份上传到 MinIO 需要设置 MinIO 的用户名和密码,在 Rancher 中是以 Secret 的形式存储的,所以需要在 local 集群中提前创建:

安装 rancher-backup operator

  1. 在 Rancher UI 的 Cluster Manager 中,选择名为 local 的集群

  2. 在右上角单击 Cluster Explorer

  3. 单击 Apps

  4. 单击 Rancher Backup operator

  5. 所有选项默认即可,直接点击 Install 创建 Rancher Backup operator

    rancher-backup 和 rancher-backup-crd 状态为 Deployed,代表 rancher-backup operator 成功部署。

创建备份

  1. 在 Cluster Explorer 中,进入左上角的下拉菜单,单击 Rancher Backups

  2. 选择 Backups,然后点击右侧 Create

  3. 输入 Backups 的配置参数:

  4. 备份创建成功后,备份状态为 Completed,备份文件名称为 rancher-backup-1-8f21c185-3caf-4a82-ab8c-8ba425a6667b-2021-01-19T07-12-30Z.tar.gz

  5. MinIO 页面也会显示对应的备份文件:

    至此,Rancher 的备份已经创建成功,并且将备份文件推送到了 MinIO。

迁移 Rancher

迁移 Rancher,其实就是利用在 MinIO 上的备份,将 Rancher 恢复到新的 Kubernetes 集群上,所以我们需要先创建一个 Kubernetes 集群做为 Rancher 的 local 集群,本例使用 K3s 作为 local 集群。

创建 K3s 集群作为 Local 集群

由于在撰写文章使用的 Rancher 版本为 v2.5.5,此版本不支持 >=v1.20 版本的 Kubernetes 集群作为 local 集群,所以需要指定 K3s 版本为 v1.19.7+k3s1:

curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn INSTALL_K3S_VERSION="v1.19.7+k3s1" sh -

安装 rancher-backup Helm chart

helm repo add rancher-charts https://charts.rancher.io
helm repo update
helm install rancher-backup-crd rancher-charts/rancher-backup-crd -n cattle-resources-system --create-namespace
helm install rancher-backup rancher-charts/rancher-backup -n cattle-resources-system

使用 Restore 自定义资源从备份中还原

本例使用兼容 S3 的对象存储 MinIO 作为备份源,并且需要使用你的 MinIO 凭证进行还原,所以需要在这个集群中创建一个 MinIO Secret。Secret 数据必须有两个 key,accessKey 和 secretKey,包含 MinIO 凭证,像这样:

apiVersion: v1
kind: Secret
metadata:
name: minio-creds
type: Opaque
data:
accessKey:
secretKey:

这个 secret 可以在任何命名空间中创建,上面的例子中,它将在 default 的命名空间中创建。

在 Restore 自定义资源中,prune 必须设置为 false。创建一个像下面例子一样的 Restore 自定义资源:

# migrationResource.yaml
apiVersion: resources.cattle.io/v1
kind: Restore
metadata:
name: restore-migration
spec:
backupFilename: rancher-backup-1-8f21c185-3caf-4a82-ab8c-8ba425a6667b-2021-01-19T07-12-30Z.tar.gz
prune: false
# encryptionConfigSecretName: encryptionconfig
storageLocation:
s3:
credentialSecretName: minio-creds
credentialSecretNamespace: default
bucketName: rancher-backup
# folder: ecm1
# region: us-west-2
endpoint: minio.kingsd.top

查看 Restore 结果:

kubectl get restore
NAME BACKUP-SOURCE BACKUP-FILE AGE STATUS
restore-migration S3 rancher-backup-1-8f21c185-3caf-4a82-ab8c-8ba425a6667b-2021-01-19T07-12-30Z.tar.gz 52s Completed

如果 Restore 有异常,可以通过 cattle-resources-system 命名空间下的 rancher-backup-xxx 查看日志。

使用 Helm 安装 Rancher

从 ResourceSets(https://github.com/rancher/backup-restore-operator/blob/master/crds/resourceset.yaml) 中可以看到在备份和恢复过程中,并没有将 Rancher 的 Pod 备份和恢复,所以需要使用 Helm 安装与第一个集群相同版本的 Rancher。

# 如果是从 HA 迁移到 HA,不需要重新创建此 secret
kubectl -n cattle-system create secret tls tls-rancher-ingress \
--cert=/opt/rancher.kingsd.top.pem \
--key=/opt/rancher.kingsd.top.key

helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
helm install rancher rancher-latest/rancher \
--namespace cattle-system \
--set hostname=rancher.kingsd.top \
--set ingress.tls.source=secret \
--set rancherImageTag=v2.5.5

此时,你需要在 DNS 服务器上将域名 rancher.kingsd.top 映射到新的 Rancher 服务器的 IP,本例为 K3s master 所在的服务器 IP,你也可以映射到 LB 的 IP。等待 DNS 配置生效,再次使用 https://rancher.kingsd.top 访问 Rancher,可以看到 local 集群已经替成刚才安装的 v1.19.7+k3s1 版本的 K3s,并且创建的测试 workload 正常工作,迁移成功。

上述内容就是如何将Rancher2.5.x 迁移至任意K8S发行版,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

集群 备份 版本 服务器 服务 存储 方式 资源 相同 成功 文件 节点 支持 发行 空间 证书 中创 测试 上将 位置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 博彦科技互联网金融 河南真二互联网科技有限公司 互联网科技的 互联网科技视频 南京欣网互联网科技 深圳期待互联网科技 海南购全球互联网科技 互联网公司会议桌创意科技软装饰 新华互联网科技2019 荆州市昕露互联网络科技有限公司 深圳市优智互联网科技有限公司 长沙茂晟互联网科技有限公司 互联网金融科技名词解释 山东子淼互联网科技有限公司 沐思想互联网科技有限公司 抖集互联网科技技术咨询 互联网金融运营模式中的金融科技 互联网领先科技活动 互联网科技创新创业项目 互联网科技有限公司 美国互联网科技巨头监管 科技互联网技术 深圳互联网科技公司 善班互联网科技 奇酷互联网络科技公司 朱啸虎曾投资哪些互联网科技企业 江苏苏星互联网科技有限公司 下一代互联网重大应用科技园 互联网科技对化妆品行业
0