This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.6.5. 配置复制存储库
您必须将对象存储配置为用作复制存储库。MTC 将数据从源集群复制到复制存储库,然后从复制存储库复制到目标集群。
MTC 支持将数据从源集群迁移到目标集群的文件系统和快照数据复制方法。您可以选择适合于您的环境并受您的存储供应商支持的方法。
支持以下存储供应商:
- 多云对象网关 (MCG)
- Amazon Web Services (AWS) S3
- Google Cloud Platform (GCP)
- Microsoft Azure Blob
- 通用 S3 对象存储,例如 Minio 或 Ceph S3
6.5.1. 先决条件 复制链接链接已复制到粘贴板!
- 所有集群都必须具有对复制存储库的不间断网络访问权限。
- 如果您将代理服务器与内部托管的复制存储库搭配使用,您必须确保代理允许访问复制存储库。
6.5.2. 配置多云对象网关 复制链接链接已复制到粘贴板!
您可以安装 OpenShift Container Storage Operator,并将一个 Multi-Cloud Object Gateway(MCG)存储桶配置为 Migration Toolkit for Containers(MTC)的复制仓库。
6.5.2.1. 安装 OpenShift Container Storage Operator 复制链接链接已复制到粘贴板!
您可以从 OperatorHub 安装 OpenShift Container Storage Operator。
流程
-
在 OpenShift Container Platform Web 控制台中,点击 Operators
OperatorHub。 - 使用 Filter by keyword (本例中为 OCS)来查找 OpenShift Container Storage Operator。
- 选择 OpenShift Container Storage Operator 并点 Install。
- 选择一个 Update Channel、Installation Mode 和 Approval Strategy。
点击 Install。
在 Installed Operators 页面中,OpenShift Container Storage Operator 会出现在 openshift-storage 项目中,状态为 Succeeded。
6.5.2.2. 创建 Multi-Cloud Object Gateway 存储桶 复制链接链接已复制到粘贴板!
您可以创建 Multi-Cloud Object Gateway(MCG)存储桶的自定义资源(CR)。
流程
登录到 OpenShift Container Platform 集群:
oc login -u <username>
$ oc login -u <username>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下内容创建
NooBaa
CR 配置文件,noobaa.yml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
NooBaa
对象:oc create -f noobaa.yml
$ oc create -f noobaa.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下内容创建
BackingStore
CR 配置文件,bs.yml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
BackingStore
对象:oc create -f bs.yml
$ oc create -f bs.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下内容创建
BucketClass
CR 配置文件,bc.yml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
BucketClass
对象:oc create -f bc.yml
$ oc create -f bc.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下内容创建
ObjectBucketClaim
CR 配置文件,obc.yml
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 记录在 MTC web 控制台中添加复制存储库的存储桶名称。
创建
ObjectBucketClaim
对象:oc create -f obc.yml
$ oc create -f obc.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 监控资源创建过程以验证
ObjectBucketClaim
的状态变为Bound
:watch -n 30 'oc get -n openshift-storage objectbucketclaim migstorage -o yaml'
$ watch -n 30 'oc get -n openshift-storage objectbucketclaim migstorage -o yaml'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个过程可能需要五到十分钟。
获取并记录以下值,当您将复制存储库添加到 MTC web 控制台时需要这些值:
S3 端点:
oc get route -n openshift-storage s3
$ oc get route -n openshift-storage s3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3 provider access key:
oc get secret -n openshift-storage migstorage \ -o go-template='{{ .data.AWS_ACCESS_KEY_ID }}' | base64 --decode
$ oc get secret -n openshift-storage migstorage \ -o go-template='{{ .data.AWS_ACCESS_KEY_ID }}' | base64 --decode
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3 provider secret access key:
oc get secret -n openshift-storage migstorage \ -o go-template='{{ .data.AWS_SECRET_ACCESS_KEY }}' | base64 --decode
$ oc get secret -n openshift-storage migstorage \ -o go-template='{{ .data.AWS_SECRET_ACCESS_KEY }}' | base64 --decode
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.3. 配置 Amazon Web Services S3 复制链接链接已复制到粘贴板!
您可以将 Amazon Web Services(AWS)S3 存储桶配置为 Migration Toolkit for Containers(MTC)的复制仓库。
先决条件
- AWS S3 存储桶必须可以被源和目标集群访问。
- 您必须安装了 AWS CLI。
如果您使用快照复制方法:
- 您必须有权访问 EC2 Elastic Block Storage (EBS)。
- 源和目标集群必须位于同一区域。
- 源和目标集群必须具有相同的存储类。
- 存储类必须与快照兼容。
流程
创建 AWS S3 存储桶:
aws s3api create-bucket \ --bucket <bucket> \ --region <bucket_region>
$ aws s3api create-bucket \ --bucket <bucket> \
1 --region <bucket_region>
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 IAM 用户
velero
:aws iam create-user --user-name velero
$ aws iam create-user --user-name velero
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 EC2 EBS 快照策略:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为一个或所有 S3 存储桶创建 AWS S3 访问策略:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
"Resource": [ "arn:aws:s3:::*"
"Resource": [ "arn:aws:s3:::*"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 EC2 EBS 策略附加到
velero
:aws iam put-user-policy \ --user-name velero \ --policy-name velero-ebs \ --policy-document file://velero-ec2-snapshot-policy.json
$ aws iam put-user-policy \ --user-name velero \ --policy-name velero-ebs \ --policy-document file://velero-ec2-snapshot-policy.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 AWS S3 策略附加到
velero
:aws iam put-user-policy \ --user-name velero \ --policy-name velero-s3 \ --policy-document file://velero-s3-policy.json
$ aws iam put-user-policy \ --user-name velero \ --policy-name velero-s3 \ --policy-document file://velero-s3-policy.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
velero
创建访问密钥:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 记录
AWS_SECRET_ACCESS_KEY
和AWS_ACCESS_KEY_ID
。您可以使用凭证将 AWS 添加为复制存储库。
6.5.4. 配置 Google Cloud Platform 复制链接链接已复制到粘贴板!
您可以将 Google Cloud Platform (GCP) 存储桶配置为 Migration Toolkit for Containers (MTC) 的复制仓库。
先决条件
- AWS S3 存储桶必须可以被源和目标集群访问。
-
您必须安装了
gsutil
。 如果您使用快照复制方法:
- 源和目标集群必须位于同一区域。
- 源和目标集群必须具有相同的存储类。
- 存储类必须与快照兼容。
流程
登录到
gsutil
:gsutil init
$ gsutil init
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Welcome! This command will take you through the configuration of gcloud. Your current configuration has been set to: [default] To continue, you must login. Would you like to login (Y/n)?
Welcome! This command will take you through the configuration of gcloud. Your current configuration has been set to: [default] To continue, you must login. Would you like to login (Y/n)?
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
BUCKET
变量:BUCKET=<bucket>
$ BUCKET=<bucket>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建存储桶:
gsutil mb gs://$BUCKET/
$ gsutil mb gs://$BUCKET/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
PROJECT_ID
变量设置为您的活跃项目:PROJECT_ID=`gcloud config get-value project`
$ PROJECT_ID=`gcloud config get-value project`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
velero
IAM 服务帐户:gcloud iam service-accounts create velero \ --display-name "Velero Storage"
$ gcloud iam service-accounts create velero \ --display-name "Velero Storage"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
SERVICE_ACCOUNT_EMAIL
变量:SERVICE_ACCOUNT_EMAIL=`gcloud iam service-accounts list \ --filter="displayName:Velero Storage" \ --format 'value(email)'`
$ SERVICE_ACCOUNT_EMAIL=`gcloud iam service-accounts list \ --filter="displayName:Velero Storage" \ --format 'value(email)'`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
ROLE_PERMISSIONS
变量:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
velero.server
自定义角色:gcloud iam roles create velero.server \ --project $PROJECT_ID \ --title "Velero Server" \ --permissions "$(IFS=","; echo "${ROLE_PERMISSIONS[*]}")"
$ gcloud iam roles create velero.server \ --project $PROJECT_ID \ --title "Velero Server" \ --permissions "$(IFS=","; echo "${ROLE_PERMISSIONS[*]}")"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为项目添加 IAM 策略绑定:
gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT_EMAIL \ --role projects/$PROJECT_ID/roles/velero.server
$ gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT_EMAIL \ --role projects/$PROJECT_ID/roles/velero.server
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新 IAM 服务帐户:
gsutil iam ch serviceAccount:$SERVICE_ACCOUNT_EMAIL:objectAdmin gs://${BUCKET}
$ gsutil iam ch serviceAccount:$SERVICE_ACCOUNT_EMAIL:objectAdmin gs://${BUCKET}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 IAM 服务帐户的密钥保存到当前目录中的
credentials-velero
文件中:gcloud iam service-accounts keys create credentials-velero \ --iam-account $SERVICE_ACCOUNT_EMAIL
$ gcloud iam service-accounts keys create credentials-velero \ --iam-account $SERVICE_ACCOUNT_EMAIL
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用
credentials-velero
文件将 GCP 添加为复制存储库。
6.5.5. 配置 Microsoft Azure Blob 复制链接链接已复制到粘贴板!
您可以将 Microsoft Azure Blob 存储容器配置为 Migration Toolkit for Containers(MTC)的复制仓库。
先决条件
- 您必须具有 Azure 存储帐户。
- 您必须安装了 Azure CLI。
- Azure Blob 存储容器必须可以被源和目标集群访问。
如果您使用快照复制方法:
- 源和目标集群必须位于同一区域。
- 源和目标集群必须具有相同的存储类。
- 存储类必须与快照兼容。
流程
设置
AZURE_RESOURCE_GROUP
变量:AZURE_RESOURCE_GROUP=Velero_Backups
$ AZURE_RESOURCE_GROUP=Velero_Backups
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 Azure 资源组:
az group create -n $AZURE_RESOURCE_GROUP --location <CentralUS>
$ az group create -n $AZURE_RESOURCE_GROUP --location <CentralUS>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 指定位置。
设置
AZURE_STORAGE_ACCOUNT_ID
变量:AZURE_STORAGE_ACCOUNT_ID=velerobackups
$ AZURE_STORAGE_ACCOUNT_ID=velerobackups
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 Azure 存储帐户:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
BLOB_CONTAINER
变量:BLOB_CONTAINER=velero
$ BLOB_CONTAINER=velero
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 Azure Blob 存储容器:
az storage container create \ -n $BLOB_CONTAINER \ --public-access off \ --account-name $AZURE_STORAGE_ACCOUNT_ID
$ az storage container create \ -n $BLOB_CONTAINER \ --public-access off \ --account-name $AZURE_STORAGE_ACCOUNT_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
velero
创建服务主体和凭证:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
credentials-velero
文件中保存服务主体的凭证:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以使用
credentials-velero
文件将 Azure 添加为复制存储库。