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.1.5. レプリケーションリポジトリーの設定
オブジェクトストレージをレプリケーションリポジトリーとして使用するように設定する必要があります。Cluster Application Migration ツールは、データをソースクラスターからレプリケーションリポジトリーにコピーしてから、レプリケーションリポジトリーからターゲットクラスターにコピーします。
CAM ツールは、ソースクラスターからターゲットクラスターにデータを移行するためにファイルシステムおよびスナップショットによるデータのコピー方法をサポートします。ご使用の環境に適した方法で、ストレージプロバイダーでサポートされる方法を選択できます。
以下のストレージプロバイダーがサポートされています。
- Multi-Cloud Object Gateway (MCG)
- Amazon Web Services (AWS) S3
- Google Cloud Provider (GCP)
- Microsoft Azure
- 汎用 S3 オブジェクトストレージ(例: Minio または Ceph S3)
ソースおよびターゲットクラスターには、移行時にレプリケーションリポジトリーへのネットワークアクセスがなければなりません。
制限された環境では、内部でホストされるレプリケーションリポジトリーを作成できます。プロキシーサーバーを使用する場合は、レプリケーションリポジトリーがホワイトリスト化されていることを確認する必要があります。
1.5.1. Multi-Cloud Object Gateway ストレージバケットをレプリケーションリポジトリーとして設定する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Storage Operator をインストールし、Multi-Cloud Object Gateway (MCG) ストレージバケットをレプリケーションリポジトリーとして設定できます。
1.5.1.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 を選択します。
Subscribe をクリックします。
Installed Operators ページで、OpenShift Container Storage Operator は、Succeeded のステータスと共に openshift-storage プロジェクトに表示されます。
1.5.1.2. Multi-Cloud Object Gateway ストレージバケットの作成 リンクのコピーリンクがクリップボードにコピーされました!
Multi-Cloud Object Gateway (MCG) ストレージバケットのカスタムリソース (CR) を作成できます。
手順
OpenShift Container Platform クラスターにログインします。
oc login
$ oc login
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
- レプリケーションリポジトリーを CAM 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 このプロセスには、5 分から 10 分の時間がかかる場合があります。
以下の値を取得して記録します。この値は、レプリケーションリポジトリーを CAM 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 プロバイダーアクセスキー:
oc get secret -n openshift-storage migstorage -o go-template='{{ .data.AWS_ACCESS_KEY_ID }}' | base64 -d
$ oc get secret -n openshift-storage migstorage -o go-template='{{ .data.AWS_ACCESS_KEY_ID }}' | base64 -d
Copy 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 -d
$ oc get secret -n openshift-storage migstorage -o go-template='{{ .data.AWS_SECRET_ACCESS_KEY }}' | base64 -d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.2. AWS S3 ストレージバケットをレプリケーションリポジトリーとして設定する リンクのコピーリンクがクリップボードにコピーされました!
AWS S3 ストレージバケットをレプリケーションリポジトリーとして設定できます。
前提条件
- AWS S3 ストレージバケットは、ソースクラスターおよびターゲットクラスターからアクセスできる必要があります。
- AWS CLI がインストールされていること。
スナップショットのコピー方法を使用する場合は、以下の条件を満たす必要があります。
- EC2 Elastic Block Storage (EBS) にアクセスできる必要があります。
- ソースおよびターゲットクラスターが同じリージョンにある必要があります。
- ソースおよびターゲットクラスターには、同じストレージクラスがある必要があります。
- ストレージクラスはスナップショットと互換性がある必要があります。
手順
AWS S3 バケットを作成します。
aws s3api create-bucket \ --bucket <bucket_name> \ --region <bucket_region>
$ aws s3api create-bucket \ --bucket <bucket_name> \
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 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.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
1.5.3. Google Cloud Provider ストレージバケットをレプリケーションリポジトリーとして設定する リンクのコピーリンクがクリップボードにコピーされました!
Google Cloud Provider (GCP) ストレージバケットをレプリケーションリポジトリーとして設定できます。
前提条件
- GCP ストレージバケットは、ソースクラスターおよびターゲットクラスターからアクセスできる必要があります。
-
gsutil
がインストールされていること。 スナップショットのコピー方法を使用する場合は、以下の条件を満たす必要があります。
- ソースおよびターゲットクラスターが同じリージョンにある必要があります。
- ソースおよびターゲットクラスターには、同じストレージクラスがある必要があります。
- ストレージクラスはスナップショットと互換性がある必要があります。
手順
gsutil init
を実行してログインします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow BUCKET
変数を設定します。BUCKET=<bucket_name>
$ BUCKET=<bucket_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- バケット名を指定します。
ストレージバケットを作成します。
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
サービスアカウントを作成します。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 パーミッションをサービスアカウントに付与します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスアカウントのキーを現在のディレクトリーにある
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
1.5.4. Microsoft Azure Blob ストレージコンテナーをレプリケーションリポジトリーとして設定 リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Azure Blob ストレージコンテナーをレプリケーションリポジトリーとして設定できます。
前提条件
- 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
のサービスプリンシパルおよび認証情報を作成します。AZURE_SUBSCRIPTION_ID=`az account list --query '[?isDefault].id' -o tsv` AZURE_TENANT_ID=`az account list --query '[?isDefault].tenantId' -o tsv` AZURE_CLIENT_SECRET=`az ad sp create-for-rbac --name "velero" --role "Contributor" --query 'password' -o tsv` AZURE_CLIENT_ID=`az ad sp list --display-name "velero" --query '[0].appId' -o tsv`
$ AZURE_SUBSCRIPTION_ID=`az account list --query '[?isDefault].id' -o tsv` $ AZURE_TENANT_ID=`az account list --query '[?isDefault].tenantId' -o tsv` $ AZURE_CLIENT_SECRET=`az ad sp create-for-rbac --name "velero" --role "Contributor" --query 'password' -o tsv` $ AZURE_CLIENT_ID=`az ad sp list --display-name "velero" --query '[0].appId' -o tsv`
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サービスプリンシパルの認証情報を
credentials-velero
ファイルに保存します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow