将 Rancher 迁移到新集群

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

先决条件

  • 这些说明假设你已经创建了一个备份,并且已经安装了将在其中部署 Rancher 的新 Kubernetes 集群。

  • 要求使用与第一个集群中设置的服务器 URL 相同的 hostname。

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

  • Rancher 可以安装在任何 Kubernetes 集群上,包括托管的 Kubernetes 集群,如 Amazon EKS 集群。

1. 安装 rancher-backup Helm chart

安装 rancher-backup chart 的 1.x.x 版本

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 --version $CHART_VERSION
helm install rancher-backup rancher-charts/rancher-backup -n cattle-resources-system --version $CHART_VERSION

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

如果你使用 S3 存储作为备份源,并且需要使用你的 S3 凭证进行还原,请使用你的 S3 凭证在这个集群中创建一个 Secret。Secret 数据必须有两个 key,accessKey和secretKey,包含 s3 凭证,像这样:

apiVersion: v1
kind: Secret
metadata:
  name: s3-creds
type: Opaque
stringData:
  accessKey: <Enter your base64-encoded access key>
  secretKey: <Enter your base64-encoded secret key>

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

在 Restore 自定义资源中,prune必须设置为 false。

创建一个像下面例子一样的 Restore 自定义资源:

# migrationResource.yaml
apiVersion: resources.cattle.io/v1
kind: Restore
metadata:
  name: restore-migration
spec:
  backupFilename: backup-b0450532-cee1-4aa1-a881-f5f48a007b1c-2020-09-15T07-27-09Z.tar.gz
  prune: false
  encryptionConfigSecretName: encryptionconfig
  storageLocation:
    s3:
      credentialSecretName: s3-creds
      credentialSecretNamespace: default
      bucketName: backup-test
      folder: ecm1
      region: us-west-2
      endpoint: s3.us-west-2.amazonaws.com

重要:只有在创建备份时启用了加密功能时,才必须设置 encryptionConfigSecretName 字段。提供包含加密配置文件的 Secret 名称。如果您只有加密配置文件,但在此集群中没有用它创建的 Secret,请使用以下步骤创建 secret:

加密配置文件必须命名为encryption-provider-config.yaml,并且必须使用--from-file标志来创建这个 secret。因此,将你的EncryptionConfiguration保存在一个名为encryption-provider-config.yaml的文件中,然后运行这个命令:

kubectl create secret generic encryptionconfig \
  --from-file=./encryption-provider-config.yaml \
  -n cattle-resources-system

然后应用资源:

kubectl apply -f migrationResource.yaml

3. 安装 cert-manager

按照文档中关于在 Kubernetes 上安装 cert-manager 的步骤安装 cert-manager( https://docs.rancher.cn/docs/rancher2.5/installation/install-rancher-on-k8s/_index#5-install-cert-manager )。

4. 使用 helm 安装 rancher

使用与第一个集群上使用的相同版本的 Helm 来安装 Rancher。

helm install rancher rancher-latest/rancher \
  --namespace cattle-system \
  --set hostname=<same hostname as the server URL from the first Rancher server> \
posted @ 2022-03-13 14:43  Varden  阅读(372)  评论(0编辑  收藏  举报