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 (Migration Toolkit for Containers) は、データをソースクラスターからレプリケーションリポジトリーにコピーしてから、レプリケーションリポジトリーからターゲットクラスターにコピーします。
MTC は、ソースクラスターからターゲットクラスターにデータを移行するために、ファイルシステムおよびスナップショットによるデータのコピー方法 をサポートします。ご使用の環境に適した方法で、ストレージプロバイダーでサポートされる方法を選択できます。
以下のストレージプロバイダーがサポートされています。
- Multi-Cloud Object Gateway (MCG)
- Amazon Web Services (AWS) S3
- Google Cloud Platform (GCP)
- Microsoft Azure Blob
- 汎用 S3 オブジェクトストレージ (例: Minio または Ceph S3)
6.5.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- すべてのクラスターには、レプリケーションリポジトリーへの中断されないネットワークアクセスが必要です。
- 内部でホストされるレプリケーションリポジトリーでプロキシーサーバーを使用する場合は、プロキシーがレプリケーションリポジトリーへのアクセスを許可することを確認する必要があります。
6.5.2. Multi-Cloud Object Gateway の設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Storage Operator をインストールし、Multi-Cloud Object Gateway (MCG) ストレージバケットを MTC (Migration Toolkit for Containers) のレプリケーションリポジトリーとして設定できます。
6.5.2.1. OpenShift Container Storage Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Storage Operator は、OperatorHub からインストールできます。
手順
-
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 は、Succeeded のステータスと共に openshift-storage プロジェクトに表示されます。
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 NooBaaCR 設定ファイルnoobaa.ymlを以下の内容で作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow NooBaaオブジェクトを作成します。oc create -f noobaa.yml
$ oc create -f noobaa.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容で、
BackingStoreCR 設定ファイルbs.ymlを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow BackingStoreオブジェクトを作成します。oc create -f bs.yml
$ oc create -f bs.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容で
BucketClassCR 設定ファイルbc.ymlを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow BucketClassオブジェクトを作成します。oc create -f bc.yml
$ oc create -f bc.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の内容で
ObjectBucketClaimCR 設定ファイルobc.ymlを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- レプリケーションリポジトリーを MTC の Web コンソールに追加するために使用するバケット名を記録します。
ObjectBucketClaimオブジェクトを作成します。oc create -f obc.yml
$ oc create -f obc.ymlCopy 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 このプロセスには、5 分から 10 分の時間がかかる場合があります。
以下の値を取得して記録します。この値は、レプリケーションリポジトリーを MTC の Web コンソールに追加する際に必要になります。
S3 エンドポイント:
oc get route -n openshift-storage s3
$ oc get route -n openshift-storage s3Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3 プロバイダーアクセスキー:
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 --decodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow S3 プロバイダーシークレットアクセスキー:
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 --decodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5.3. Amazon Web Services S3 の設定 リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services (AWS) S3 ストレージバケットを MTC (Migration Toolkit for Containers) のレプリケーションリポジトリーとして設定できます。
前提条件
- 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 veleroCopy to Clipboard Copied! Toggle word wrap Toggle overflow EC2 EBS スナップショットポリシーを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 1 つまたはすべての 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.jsonCopy 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.jsonCopy 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 Provider の設定 リンクのコピーリンクがクリップボードにコピーされました!
Google Cloud Provider (GCP) ストレージバケットを MTC (Migration Toolkit for Containers) のレプリケーションリポジトリーとして設定できます。
前提条件
- GCP ストレージバケットは、ソースクラスターおよびターゲットクラスターからアクセスできる必要があります。
-
gsutilがインストールされていること。 スナップショットのコピー方法を使用する場合は、以下の条件を満たす必要があります。
- ソースおよびターゲットクラスターが同じリージョンにある必要があります。
- ソースおよびターゲットクラスターには、同じストレージクラスがある必要があります。
- ストレージクラスはスナップショットと互換性がある必要があります。
手順
gsutilにログインします。gsutil init
$ gsutil initCopy 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 veleroIAM サービスアカウントを作成します。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.serverCopy 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_EMAILCopy to Clipboard Copied! Toggle word wrap Toggle overflow credentials-veleroファイルを使用して、GCP をレプリケーションリポジトリーとして追加します。
6.5.5. Microsoft Azure Blob の設定 リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Azure Blob ストレージコンテナーを MTC (Migration Toolkit for Containers) のレプリケーションリポジトリーとして設定できます。
前提条件
- Azure ストレージアカウント があること。
- Azure CLI がインストールされていること。
- Azure Blob ストレージコンテナーがソースクラスターおよびターゲットクラスターからアクセスできること。
スナップショットのコピー方法を使用する場合は、以下の条件を満たす必要があります。
- ソースおよびターゲットクラスターが同じリージョンにある必要があります。
- ソースおよびターゲットクラスターには、同じストレージクラスがある必要があります。
- ストレージクラスはスナップショットと互換性がある必要があります。
手順
AZURE_RESOURCE_GROUP変数を設定します。AZURE_RESOURCE_GROUP=Velero_Backups
$ AZURE_RESOURCE_GROUP=Velero_BackupsCopy 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=velerobackupsCopy 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=veleroCopy 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_IDCopy 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 をレプリケーションリポジトリーとして追加します。