4.2. OADP のインストールおよび設定
4.2.1. OADP のインストールについて
クラスター管理者は、OADP Operator をインストールして、OpenShift API for Data Protection (OADP) をインストールします。OADP オペレーターは Velero 1.7 をインストールします。
Kubernetes リソースと内部イメージをバックアップするには、次のいずれかのストレージタイプなど、バックアップ場所としてオブジェクトストレージが必要です。
- Amazon Web Services
- Microsoft Azure
- Google Cloud Platform
- Multicloud Object Gateway
- Noobaa や Minio などの S3 互換のオブジェクトストレージ
S3 ストレージ用の CloudStorage
API は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
スナップショットまたは Restic を使用して、永続ボリューム (PV) をバックアップできます。
スナップショットを使用して PV をバックアップするには、ネイティブスナップショット API または Container Storage Interface (CSI) スナップショットのいずれかをサポートするクラウドプロバイダー (次のいずれかのクラウドプロバイダーなど) が必要です。
- Amazon Web Services
- Microsoft Azure
- Google Cloud Platform
- OpenShift Container Storage などの CSI スナップショット対応のクラウドプロバイダー
クラウドプロバイダーがスナップショットをサポートしていない場合、またはストレージが NFS の場合は、Restic を使用してアプリケーションをバックアップできます。
ストレージプロバイダー認証情報用の Secret
オブジェクトを作成してから、Data Protection Application をインストールします。
関連情報
- Velero ドキュメント のバックアップ場所およびスナップショット場所の概要。
4.2.2. Amazon Web Services を使用した OpenShift API for Data Protection のインストールおよび設定
OpenShift API for Data Protection (OADP) を Amazon Web Services (AWS) とともにインストールするには、OADP Operator をインストールし、AWS for Velero を設定してから、Data Protection Application をインストールします。
S3 ストレージ用の CloudStorage
API は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
制限されたネットワーク環境に OADP Operator をインストールするには、最初にデフォルトの Operator Hub ソースを無効にして、Operator カタログをミラーリングする必要があります。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。
4.2.2.1. OADP Operator のインストール
Operator Lifecycle Manager (OLM) を使用して、OpenShift Container Platform 4.8 に OpenShift API for Data Protection (OADP) オペレーターをインストールします。
OADP オペレーターは Velero 1.7 をインストールします。
前提条件
-
cluster-admin
権限を持つユーザーとしてログインしている。
手順
-
OpenShift Container Platform Web コンソールで、Operators
OperatorHub をクリックします。 - Filter by keyword フィールドを使用して、OADP Operator を検索します。
- OADP Operator を選択し、Install をクリックします。
-
Install をクリックして、
openshift-adp
プロジェクトに Operator をインストールします。 -
Operators
Installed Operators をクリックして、インストールを確認します。
4.2.2.2. 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> \ 1 --region <bucket_region> 2
IAM ユーザー
velero
を作成します。$ aws iam create-user --user-name velero
EC2 EBS スナップショットポリシーを作成します。
$ cat > velero-ec2-snapshot-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes", "ec2:DescribeSnapshots", "ec2:CreateTags", "ec2:CreateVolume", "ec2:CreateSnapshot", "ec2:DeleteSnapshot" ], "Resource": "*" } ] } EOF
1 つまたはすべての S3 バケットの AWS S3 アクセスポリシーを作成します。
$ cat > velero-s3-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:DeleteObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::<bucket>/*" 1 ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation", "s3:ListBucketMultipartUploads" ], "Resource": [ "arn:aws:s3:::<bucket>" 2 ] } ] } EOF
出力例
"Resource": [ "arn:aws:s3:::*"
EC2 EBS ポリシーを
velero
に割り当てます。$ aws iam put-user-policy \ --user-name velero \ --policy-name velero-ebs \ --policy-document file://velero-ec2-snapshot-policy.json
AWS S3 ポリシーを
velero
に割り当てます。$ aws iam put-user-policy \ --user-name velero \ --policy-name velero-s3 \ --policy-document file://velero-s3-policy.json
velero
のアクセスキーを作成します。$ aws iam create-access-key --user-name velero { "AccessKey": { "UserName": "velero", "Status": "Active", "CreateDate": "2017-07-31T22:24:41.576Z", "SecretAccessKey": <AWS_SECRET_ACCESS_KEY>, 1 "AccessKeyId": <AWS_ACCESS_KEY_ID> 2 } }
credentials-velero
ファイルを作成します。$ cat << EOF > ./credentials-velero [default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY> EOF
Data Protection Application をインストールする前に、
credentials-velero
ファイルを使用して AWS のSecret
オブジェクトを作成します。
4.2.2.3. バックアップとスナップショットの場所のシークレットの作成
同じ認証情報を使用する場合は、バックアップとスナップショットの場所に Secret
オブジェクトを作成します。
Secret
のデフォルト名は cloud-credentials
です。
前提条件
- オブジェクトストレージとクラウドストレージは同じ認証情報を使用する必要があります。
- Velero のオブジェクトストレージを設定する必要があります。
オブジェクトストレージ用の
credentials-velero
ファイルを適切な形式で作成する必要があります。注記DataProtectionApplication
カスタムリソース (CR) をインストールするには、Secret
が必要です。spec.backupLocations.credential.name
値が指定されていない場合は、デフォルトの名前が使用されます。バックアップの場所またはスナップショットの場所を指定しない場合は、空の
credentials-velero
ファイルを使用して、デフォルト名でSecret
を作成する必要があります。
手順
デフォルト名で
Secret
を作成します。$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
Secret
は、Data Protection Application をインストールするときに、DataProtectionApplication
CR の spec.backupLocations.credential
ブロックで参照されます。
4.2.2.3.1. さまざまなバックアップおよびスナップショットの場所の認証情報のシークレットを設定
バックアップとスナップショットの場所で異なる認証情報を使用する場合は、credentials-velero
ファイルに個別のプロファイルを作成します。
次に、Secret
オブジェクトを作成し、DataProtectionApplication
カスタムリソース (CR) でプロファイルを指定します。
手順
次の例のように、バックアップとスナップショットの場所に別々のプロファイルを持つ
credentials-velero
ファイルを作成します。[backupStorage] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY> [volumeSnapshot] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
credentials-velero
ファイルを使用してSecret
オブジェクトを作成します。$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero 1
次の例のように、プロファイルを
DataProtectionApplication
CR に追加します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket_name> prefix: <prefix> config: region: us-east-1 profile: "backupStorage" credential: key: cloud name: cloud-credentials snapshotLocations: - name: default velero: provider: aws config: region: us-west-2 profile: "volumeSnapshot"
4.2.2.4. Data Protection Application の設定
Velero リソース割り当てを設定し、自己署名 CA 証明書を有効にすることができます。
4.2.2.4.1. Velero の CPU とメモリーのリソース割り当てを設定
DataProtectionApplication
カスタムリソース (CR) マニフェストを編集して、Velero
Pod の CPU およびメモリーリソースの割り当てを設定します。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
次の例のように、
DataProtectionApplication
CR マニフェストのspec.configuration.velero.podConfig.ResourceAllocations
ブロックの値を編集します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... configuration: velero: podConfig: resourceAllocations: limits: cpu: "1" 1 memory: 512Mi 2 requests: cpu: 500m 3 memory: 256Mi 4
4.2.2.4.2. 自己署名 CA 証明書の有効化
certificate signed by unknown authority
エラーを防ぐために、DataProtectionApplication
カスタムリソース (CR) マニフェストを編集して、オブジェクトストレージの自己署名 CA 証明書を有効にする必要があります。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
DataProtectionApplication
CR マニフェストのspec.backupLocations.velero.objectStorage.caCert
パラメーターとspec.backupLocations.velero.config
パラメーターを編集します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket> prefix: <prefix> caCert: <base64_encoded_cert_string> 1 config: insecureSkipTLSVerify: "false" 2 ...
4.2.2.5. Data Protection Application のインストール
DataProtectionApplication
API のインスタンスを作成して、Data Protection Application (DPA) をインストールします。
前提条件
- OADP Operator をインストールする必要があります。
- オブジェクトストレージをバックアップ場所として設定する必要があります。
- スナップショットを使用して PV をバックアップする場合、クラウドプロバイダーはネイティブスナップショット API または Container Storage Interface (CSI) スナップショットのいずれかをサポートする必要があります。
-
バックアップとスナップショットの場所で同じ認証情報を使用する場合は、デフォルトの名前である
cloud-credentials
を使用してSecret
を作成する必要があります。 バックアップとスナップショットの場所で異なる認証情報を使用する場合は、デフォルト名である
cloud-credentials
を使用してSecret
を作成する必要があります。これには、バックアップとスナップショットの場所の認証情報用の個別のプロファイルが含まれます。注記インストール中にバックアップまたはスナップショットの場所を指定したくない場合は、空の
credentials-velero
ファイルを使用してデフォルトのSecret
を作成できます。デフォルトのSecret
がない場合、インストールは失敗します。
手順
-
Operators
Installed Operators をクリックして、OADP Operator を選択します。 - Provided APIs で、DataProtectionApplication ボックスの Create instance をクリックします。
YAML View をクリックして、
DataProtectionApplication
マニフェストのパラメーターを更新します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: configuration: velero: defaultPlugins: - openshift 1 - aws restic: enable: true 2 backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket_name> 3 prefix: <prefix> 4 config: region: <region> profile: "default" credential: key: cloud name: cloud-credentials 5 snapshotLocations: 6 - name: default velero: provider: aws config: region: <region> 7 profile: "default"
- 1
- OpenShift Container Platform クラスターでネームスペースをバックアップおよび復元するには、
openshift
プラグインが必須です。 - 2
- Restic のインストールを無効にする場合は、
false
に設定します。Restic はデーモンセットをデプロイします。これは、各ワーカーノードでRestic
Pod が実行されていることを意味します。バックアップ用に Restic を設定するには、Backup
CR にspec.defaultVolumesToRestic: true
を追加します。 - 3
- バックアップの保存場所としてバケットを指定します。バケットが Velero バックアップ専用のバケットでない場合は、接頭辞を指定する必要があります。
- 4
- バケットが複数の目的で使用される場合は、Velero バックアップの接頭辞を指定します (例:
velero
)。 - 5
- 作成した
Secret
オブジェクトの名前を指定します。この値を指定しない場合は、デフォルト名のcloud-credentials
が使用されます。カスタム名を指定すると、バックアップの場所にカスタム名が使用されます。 - 6
- CSI スナップショットまたは Restic を使用して PV をバックアップする場合は、スナップショットの場所を指定する必要はありません。
- 7
- スナップショットの場所は、PV と同じリージョンにある必要があります。
- Create をクリックします。
OADP リソースを表示して、インストールを確認します。
$ oc get all -n openshift-adp
出力例
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/oadp-velero-sample-1-aws-registry-5d6968cbdd-d5w9k 1/1 Running 0 95s pod/restic-9cq4q 1/1 Running 0 94s pod/restic-m4lts 1/1 Running 0 94s pod/restic-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/oadp-velero-sample-1-aws-registry-svc ClusterIP 172.30.130.230 <none> 5000/TCP 95s NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/restic 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/oadp-velero-sample-1-aws-registry 1/1 1 1 96s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/oadp-velero-sample-1-aws-registry-5d6968cbdd 1 1 1 96s replicaset.apps/velero-588db7f655 1 1 1 96s
4.2.2.5.1. DataProtectionApplication CR で CSI を有効にする
CSI スナップショットを使用して永続ボリュームをバックアップするには、DataProtectionApplication
カスタムリソース (CR) で Container Storage Interface (CSI) を有効にします。
前提条件
- クラウドプロバイダーは、CSI スナップショットをサポートする必要があります。
4.2.3. Microsoft Azure を使用した OpenShift API for Data Protection のインストールおよび設定
OpenShift API for Data Protection (OADP) を Microsoft Azure にインストールするには、OADP Operator をインストールし、Azure for Velero を設定してから、Data Protection Application をインストールします。
S3 ストレージ用の CloudStorage
API は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
制限されたネットワーク環境に OADP Operator をインストールするには、最初にデフォルトの Operator Hub ソースを無効にして、Operator カタログをミラーリングする必要があります。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。
4.2.3.1. OADP Operator のインストール
Operator Lifecycle Manager (OLM) を使用して、OpenShift Container Platform 4.8 に OpenShift API for Data Protection (OADP) オペレーターをインストールします。
OADP オペレーターは Velero 1.7 をインストールします。
前提条件
-
cluster-admin
権限を持つユーザーとしてログインしている。
手順
-
OpenShift Container Platform Web コンソールで、Operators
OperatorHub をクリックします。 - Filter by keyword フィールドを使用して、OADP Operator を検索します。
- OADP Operator を選択し、Install をクリックします。
-
Install をクリックして、
openshift-adp
プロジェクトに Operator をインストールします。 -
Operators
Installed Operators をクリックして、インストールを確認します。
4.2.3.2. 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 リソースグループを作成します。
$ az group create -n $AZURE_RESOURCE_GROUP --location <CentralUS> 1
- 1
- 場所を指定します。
AZURE_STORAGE_ACCOUNT_ID
変数を設定します。$ AZURE_STORAGE_ACCOUNT_ID=velerobackups
Azure ストレージアカウントを作成します。
$ az storage account create \ --name $AZURE_STORAGE_ACCOUNT_ID \ --resource-group $AZURE_RESOURCE_GROUP \ --sku Standard_GRS \ --encryption-services blob \ --https-only true \ --kind BlobStorage \ --access-tier Hot
BLOB_CONTAINER
変数を設定します。$ BLOB_CONTAINER=velero
Azure Blob ストレージコンテナーを作成します。
$ az storage container create \ -n $BLOB_CONTAINER \ --public-access off \ --account-name $AZURE_STORAGE_ACCOUNT_ID
ストレージアカウントのアクセスキーを取得します。
$ AZURE_STORAGE_ACCOUNT_ACCESS_KEY=`az storage account keys list \ --account-name $AZURE_STORAGE_ACCOUNT_ID \ --query "[?keyName == 'key1'].value" -o tsv`
credentials-velero
ファイルを作成します。$ cat << EOF > ./credentials-velero AZURE_SUBSCRIPTION_ID=${AZURE_SUBSCRIPTION_ID} AZURE_TENANT_ID=${AZURE_TENANT_ID} AZURE_CLIENT_ID=${AZURE_CLIENT_ID} AZURE_CLIENT_SECRET=${AZURE_CLIENT_SECRET} AZURE_RESOURCE_GROUP=${AZURE_RESOURCE_GROUP} AZURE_STORAGE_ACCOUNT_ACCESS_KEY=${AZURE_STORAGE_ACCOUNT_ACCESS_KEY} 1 AZURE_CLOUD_NAME=AzurePublicCloud EOF
- 1
- 必須。
credentials-velero
ファイルにサービスプリンシパル認証情報のみが含まれている場合は、内部イメージをバックアップすることはできません。
Data Protection Application をインストールする前に、
credentials-velero
ファイルを使用して Azure のSecret
オブジェクトを作成します。
4.2.3.3. バックアップとスナップショットの場所のシークレットの作成
同じ認証情報を使用する場合は、バックアップとスナップショットの場所に Secret
オブジェクトを作成します。
Secret
のデフォルト名は cloud-credentials-azure
です。
前提条件
- オブジェクトストレージとクラウドストレージは同じ認証情報を使用する必要があります。
- Velero のオブジェクトストレージを設定する必要があります。
オブジェクトストレージ用の
credentials-velero
ファイルを適切な形式で作成する必要があります。注記DataProtectionApplication
カスタムリソース (CR) をインストールするには、Secret
が必要です。spec.backupLocations.credential.name
値が指定されていない場合は、デフォルトの名前が使用されます。バックアップの場所またはスナップショットの場所を指定しない場合は、空の
credentials-velero
ファイルを使用して、デフォルト名でSecret
を作成する必要があります。
手順
デフォルト名で
Secret
を作成します。$ oc create secret generic cloud-credentials-azure -n openshift-adp --from-file cloud=credentials-velero
Secret
は、Data Protection Application をインストールするときに、DataProtectionApplication
CR の spec.backupLocations.credential
ブロックで参照されます。
4.2.3.3.1. さまざまなバックアップおよびスナップショットの場所の認証情報のシークレットを設定
バックアップとスナップショットの場所で異なる認証情報を使用する場合は、次の 2 つの Secret
オブジェクトを作成します。
-
カスタム名のバックアップ場所
Secret
。カスタム名は、DataProtectionApplication
カスタムリソース (CR) のspec.backupLocations
ブロックで指定されます。 -
スナップショットの場所
Secret
(デフォルト名はcloud-credentials-azure
)。このSecret
は、DataProtectionApplication
で指定されていません。
手順
-
スナップショットの場所の
credentials-velero
ファイルをクラウドプロバイダーに適した形式で作成します。 デフォルト名でスナップショットの場所の
Secret
を作成します。$ oc create secret generic cloud-credentials-azure -n openshift-adp --from-file cloud=credentials-velero
-
オブジェクトストレージに適した形式で、バックアップ場所の
credentials-velero
ファイルを作成します。 カスタム名を使用してバックアップ場所の
Secret
を作成します。$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
次の例のように、カスタム名の
Secret
をDataProtectionApplication
に追加します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - velero: config: resourceGroup: <azure_resource_group> storageAccount: <azure_storage_account_id> subscriptionId: <azure_subscription_id> storageAccountKeyEnvVar: AZURE_STORAGE_ACCOUNT_ACCESS_KEY credential: key: cloud name: <custom_secret> 1 provider: azure default: true objectStorage: bucket: <bucket_name> prefix: <prefix> snapshotLocations: - velero: config: resourceGroup: <azure_resource_group> subscriptionId: <azure_subscription_id> incremental: "true" name: default provider: azure
- 1
- カスタム名を持つバックアップ場所の
Secret
。
4.2.3.4. Data Protection Application の設定
Velero リソース割り当てを設定し、自己署名 CA 証明書を有効にすることができます。
4.2.3.4.1. Velero の CPU とメモリーのリソース割り当てを設定
DataProtectionApplication
カスタムリソース (CR) マニフェストを編集して、Velero
Pod の CPU およびメモリーリソースの割り当てを設定します。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
次の例のように、
DataProtectionApplication
CR マニフェストのspec.configuration.velero.podConfig.ResourceAllocations
ブロックの値を編集します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... configuration: velero: podConfig: resourceAllocations: limits: cpu: "1" 1 memory: 512Mi 2 requests: cpu: 500m 3 memory: 256Mi 4
4.2.3.4.2. 自己署名 CA 証明書の有効化
certificate signed by unknown authority
エラーを防ぐために、DataProtectionApplication
カスタムリソース (CR) マニフェストを編集して、オブジェクトストレージの自己署名 CA 証明書を有効にする必要があります。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
DataProtectionApplication
CR マニフェストのspec.backupLocations.velero.objectStorage.caCert
パラメーターとspec.backupLocations.velero.config
パラメーターを編集します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket> prefix: <prefix> caCert: <base64_encoded_cert_string> 1 config: insecureSkipTLSVerify: "false" 2 ...
4.2.3.5. Data Protection Application のインストール
DataProtectionApplication
API のインスタンスを作成して、Data Protection Application (DPA) をインストールします。
前提条件
- OADP Operator をインストールする必要があります。
- オブジェクトストレージをバックアップ場所として設定する必要があります。
- スナップショットを使用して PV をバックアップする場合、クラウドプロバイダーはネイティブスナップショット API または Container Storage Interface (CSI) スナップショットのいずれかをサポートする必要があります。
-
バックアップとスナップショットの場所で同じ認証情報を使用する場合は、デフォルトの名前である
cloud-credentials-azure
を使用してSecret
を作成する必要があります。 バックアップとスナップショットの場所で異なる認証情報を使用する場合は、2 つの
Secrets
を作成する必要があります。-
バックアップ場所のカスタム名を持つ
Secret
。このSecret
をDataProtectionApplication
CR に追加します。 スナップショットの場所のデフォルト名
cloud-credentials-azure
のSecret
。このSecret
は、DataProtectionApplication
CR では参照されません。注記インストール中にバックアップまたはスナップショットの場所を指定したくない場合は、空の
credentials-velero
ファイルを使用してデフォルトのSecret
を作成できます。デフォルトのSecret
がない場合、インストールは失敗します。
-
バックアップ場所のカスタム名を持つ
手順
-
Operators
Installed Operators をクリックして、OADP Operator を選択します。 - Provided APIs で、DataProtectionApplication ボックスの Create instance をクリックします。
YAML View をクリックして、
DataProtectionApplication
マニフェストのパラメーターを更新します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: configuration: velero: defaultPlugins: - azure - openshift 1 restic: enable: true 2 backupLocations: - velero: config: resourceGroup: <azure_resource_group> 3 storageAccount: <azure_storage_account_id> 4 subscriptionId: <azure_subscription_id> 5 storageAccountKeyEnvVar: AZURE_STORAGE_ACCOUNT_ACCESS_KEY credential: key: cloud name: cloud-credentials-azure 6 provider: azure default: true objectStorage: bucket: <bucket_name> 7 prefix: <prefix> 8 snapshotLocations: 9 - velero: config: resourceGroup: <azure_resource_group> subscriptionId: <azure_subscription_id> incremental: "true" name: default provider: azure
- 1
- OpenShift Container Platform クラスターでネームスペースをバックアップおよび復元するには、
openshift
プラグインが必須です。 - 2
- Restic のインストールを無効にする場合は、
false
に設定します。Restic はデーモンセットをデプロイします。これは、各ワーカーノードでRestic
Pod が実行されていることを意味します。バックアップ用に Restic を設定するには、Backup
CR にspec.defaultVolumesToRestic: true
を追加します。 - 3
- Azure リソースグループを指定します。
- 4
- Azure ストレージアカウント ID を指定します。
- 5
- Azure サブスクリプション ID を指定します。
- 6
- この値を指定しない場合は、デフォルト名の
cloud-credentials-azure
が使用されます。カスタム名を指定すると、バックアップの場所にカスタム名が使用されます。 - 7
- バックアップの保存場所としてバケットを指定します。バケットが Velero バックアップ専用のバケットでない場合は、接頭辞を指定する必要があります。
- 8
- バケットが複数の目的で使用される場合は、Velero バックアップの接頭辞を指定します (例:
velero
)。 - 9
- CSI スナップショットまたは Restic を使用して PV をバックアップする場合は、スナップショットの場所を指定する必要はありません。
- Create をクリックします。
OADP リソースを表示して、インストールを確認します。
$ oc get all -n openshift-adp
出力例
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/oadp-velero-sample-1-aws-registry-5d6968cbdd-d5w9k 1/1 Running 0 95s pod/restic-9cq4q 1/1 Running 0 94s pod/restic-m4lts 1/1 Running 0 94s pod/restic-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/oadp-velero-sample-1-aws-registry-svc ClusterIP 172.30.130.230 <none> 5000/TCP 95s NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/restic 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/oadp-velero-sample-1-aws-registry 1/1 1 1 96s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/oadp-velero-sample-1-aws-registry-5d6968cbdd 1 1 1 96s replicaset.apps/velero-588db7f655 1 1 1 96s
4.2.3.5.1. DataProtectionApplication CR で CSI を有効にする
CSI スナップショットを使用して永続ボリュームをバックアップするには、DataProtectionApplication
カスタムリソース (CR) で Container Storage Interface (CSI) を有効にします。
前提条件
- クラウドプロバイダーは、CSI スナップショットをサポートする必要があります。
4.2.4. Google Cloud Platform を使用した OpenShift API for Data Protection のインストールおよび設定
OpenShift API for Data Protection (OADP) を Google Cloud Platform (GCP) とともにインストールするには、OADP Operator をインストールし、Velero 用に GCP を設定してから、Data Protection Application をインストールします。
S3 ストレージ用の CloudStorage
API は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
制限されたネットワーク環境に OADP Operator をインストールするには、最初にデフォルトの Operator Hub ソースを無効にして、Operator カタログをミラーリングする必要があります。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。
4.2.4.1. OADP Operator のインストール
Operator Lifecycle Manager (OLM) を使用して、OpenShift Container Platform 4.8 に OpenShift API for Data Protection (OADP) オペレーターをインストールします。
OADP オペレーターは Velero 1.7 をインストールします。
前提条件
-
cluster-admin
権限を持つユーザーとしてログインしている。
手順
-
OpenShift Container Platform Web コンソールで、Operators
OperatorHub をクリックします。 - Filter by keyword フィールドを使用して、OADP Operator を検索します。
- OADP Operator を選択し、Install をクリックします。
-
Install をクリックして、
openshift-adp
プロジェクトに Operator をインストールします。 -
Operators
Installed Operators をクリックして、インストールを確認します。
4.2.4.2. Google Cloud Provider の設定
Google Cloud Provider (GCP) ストレージバケットを MTC (Migration Toolkit for Containers) のレプリケーションリポジトリーとして設定できます。
前提条件
- GCP ストレージバケットは、ソースクラスターおよびターゲットクラスターからアクセスできる必要があります。
-
gsutil
がインストールされていること。 スナップショットのコピー方法を使用する場合は、以下の条件を満たす必要があります。
- ソースおよびターゲットクラスターが同じリージョンにある必要があります。
- ソースおよびターゲットクラスターには、同じストレージクラスがある必要があります。
- ストレージクラスはスナップショットと互換性がある必要があります。
手順
gsutil
にログインします。$ gsutil init
出力例
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)?
BUCKET
変数を設定します。$ BUCKET=<bucket> 1
- 1
- バケット名を指定します。
ストレージバケットを作成します。
$ gsutil mb gs://$BUCKET/
PROJECT_ID
変数をアクティブなプロジェクトに設定します。$ PROJECT_ID=`gcloud config get-value project`
velero
IAM サービスアカウントを作成します。$ gcloud iam service-accounts create velero \ --display-name "Velero Storage"
SERVICE_ACCOUNT_EMAIL
変数を作成します。$ SERVICE_ACCOUNT_EMAIL=`gcloud iam service-accounts list \ --filter="displayName:Velero Storage" \ --format 'value(email)'`
ROLE_PERMISSIONS
変数を作成します。$ ROLE_PERMISSIONS=( compute.disks.get compute.disks.create compute.disks.createSnapshot compute.snapshots.get compute.snapshots.create compute.snapshots.useReadOnly compute.snapshots.delete compute.zones.get )
velero.server
カスタムロールを作成します。$ gcloud iam roles create velero.server \ --project $PROJECT_ID \ --title "Velero Server" \ --permissions "$(IFS=","; echo "${ROLE_PERMISSIONS[*]}")"
IAM ポリシーバインディングをプロジェクトに追加します。
$ gcloud projects add-iam-policy-binding $PROJECT_ID \ --member serviceAccount:$SERVICE_ACCOUNT_EMAIL \ --role projects/$PROJECT_ID/roles/velero.server
IAM サービスアカウントを更新します。
$ gsutil iam ch serviceAccount:$SERVICE_ACCOUNT_EMAIL:objectAdmin gs://${BUCKET}
IAM サービスアカウントのキーを現在のディレクトリーにある
credentials-velero
ファイルに保存します。$ gcloud iam service-accounts keys create credentials-velero \ --iam-account $SERVICE_ACCOUNT_EMAIL
Data Protection Application をインストールする前に、
credentials-velero
ファイルを使用して GCP のSecret
オブジェクトを作成します。
4.2.4.3. バックアップとスナップショットの場所のシークレットの作成
同じ認証情報を使用する場合は、バックアップとスナップショットの場所に Secret
オブジェクトを作成します。
Secret
のデフォルト名は cloud-credentials-gcp
です。
前提条件
- オブジェクトストレージとクラウドストレージは同じ認証情報を使用する必要があります。
- Velero のオブジェクトストレージを設定する必要があります。
-
オブジェクトストレージ用の
credentials-velero
ファイルを適切な形式で作成する必要があります。
手順
デフォルト名で
Secret
を作成します。$ oc create secret generic cloud-credentials-gcp -n openshift-adp --from-file cloud=credentials-velero
Secret
は、Data Protection Application をインストールするときに、DataProtectionApplication
CR の spec.backupLocations.credential
ブロックで参照されます。
4.2.4.3.1. さまざまなバックアップおよびスナップショットの場所の認証情報のシークレットを設定
バックアップとスナップショットの場所で異なる認証情報を使用する場合は、次の 2 つの Secret
オブジェクトを作成します。
-
カスタム名のバックアップ場所
Secret
。カスタム名は、DataProtectionApplication
カスタムリソース (CR) のspec.backupLocations
ブロックで指定されます。 -
スナップショットの場所
Secret
(デフォルト名はcloud-credentials-gcp
)。このSecret
は、DataProtectionApplication
で指定されていません。
手順
-
スナップショットの場所の
credentials-velero
ファイルをクラウドプロバイダーに適した形式で作成します。 デフォルト名でスナップショットの場所の
Secret
を作成します。$ oc create secret generic cloud-credentials-gcp -n openshift-adp --from-file cloud=credentials-velero
-
オブジェクトストレージに適した形式で、バックアップ場所の
credentials-velero
ファイルを作成します。 カスタム名を使用してバックアップ場所の
Secret
を作成します。$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
次の例のように、カスタム名の
Secret
をDataProtectionApplication
に追加します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - velero: provider: gcp default: true credential: key: cloud name: <custom_secret> 1 objectStorage: bucket: <bucket_name> prefix: <prefix> snapshotLocations: - velero: provider: gcp default: true config: project: <project> snapshotLocation: us-west1
- 1
- カスタム名を持つバックアップ場所の
Secret
。
4.2.4.4. Data Protection Application の設定
Velero リソース割り当てを設定し、自己署名 CA 証明書を有効にすることができます。
4.2.4.4.1. Velero の CPU とメモリーのリソース割り当てを設定
DataProtectionApplication
カスタムリソース (CR) マニフェストを編集して、Velero
Pod の CPU およびメモリーリソースの割り当てを設定します。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
次の例のように、
DataProtectionApplication
CR マニフェストのspec.configuration.velero.podConfig.ResourceAllocations
ブロックの値を編集します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... configuration: velero: podConfig: resourceAllocations: limits: cpu: "1" 1 memory: 512Mi 2 requests: cpu: 500m 3 memory: 256Mi 4
4.2.4.4.2. 自己署名 CA 証明書の有効化
certificate signed by unknown authority
エラーを防ぐために、DataProtectionApplication
カスタムリソース (CR) マニフェストを編集して、オブジェクトストレージの自己署名 CA 証明書を有効にする必要があります。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
DataProtectionApplication
CR マニフェストのspec.backupLocations.velero.objectStorage.caCert
パラメーターとspec.backupLocations.velero.config
パラメーターを編集します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket> prefix: <prefix> caCert: <base64_encoded_cert_string> 1 config: insecureSkipTLSVerify: "false" 2 ...
4.2.4.5. Data Protection Application のインストール
DataProtectionApplication
API のインスタンスを作成して、Data Protection Application (DPA) をインストールします。
前提条件
- OADP Operator をインストールする必要があります。
- オブジェクトストレージをバックアップ場所として設定する必要があります。
- スナップショットを使用して PV をバックアップする場合、クラウドプロバイダーはネイティブスナップショット API または Container Storage Interface (CSI) スナップショットのいずれかをサポートする必要があります。
-
バックアップとスナップショットの場所で同じ認証情報を使用する場合は、デフォルトの名前である
cloud-credentials-gcp
を使用してSecret
を作成する必要があります。 バックアップとスナップショットの場所で異なる認証情報を使用する場合は、2 つの
Secrets
を作成する必要があります。-
バックアップ場所のカスタム名を持つ
Secret
。このSecret
をDataProtectionApplication
CR に追加します。 スナップショットの場所として、デフォルト名
cloud-credentials-gcp
のSecret
。このSecret
は、DataProtectionApplication
CR では参照されません。注記インストール中にバックアップまたはスナップショットの場所を指定したくない場合は、空の
credentials-velero
ファイルを使用してデフォルトのSecret
を作成できます。デフォルトのSecret
がない場合、インストールは失敗します。
-
バックアップ場所のカスタム名を持つ
手順
-
Operators
Installed Operators をクリックして、OADP Operator を選択します。 - Provided APIs で、DataProtectionApplication ボックスの Create instance をクリックします。
YAML View をクリックして、
DataProtectionApplication
マニフェストのパラメーターを更新します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: configuration: velero: defaultPlugins: - gcp - openshift 1 restic: enable: true 2 backupLocations: - velero: provider: gcp default: true credential: key: cloud name: cloud-credentials-gcp 3 objectStorage: bucket: <bucket_name> 4 prefix: <prefix> 5 snapshotLocations: 6 - velero: provider: gcp default: true config: project: <project> snapshotLocation: us-west1 7
- 1
- OpenShift Container Platform クラスターでネームスペースをバックアップおよび復元するには、
openshift
プラグインが必須です。 - 2
- Restic のインストールを無効にする場合は、
false
に設定します。Restic はデーモンセットをデプロイします。これは、各ワーカーノードでRestic
Pod が実行されていることを意味します。バックアップ用に Restic を設定するには、Backup
CR にspec.defaultVolumesToRestic: true
を追加します。 - 3
- この値を指定しない場合は、デフォルトの名前である
cloud-credentials-gcp
が使用されます。カスタム名を指定すると、バックアップの場所にカスタム名が使用されます。 - 4
- バックアップの保存場所としてバケットを指定します。バケットが Velero バックアップ専用のバケットでない場合は、接頭辞を指定する必要があります。
- 5
- バケットが複数の目的で使用される場合は、Velero バックアップの接頭辞を指定します (例:
velero
)。 - 6
- CSI スナップショットまたは Restic を使用して PV をバックアップする場合は、スナップショットの場所を指定する必要はありません。
- 7
- スナップショットの場所は、PV と同じリージョンにある必要があります。
- Create をクリックします。
OADP リソースを表示して、インストールを確認します。
$ oc get all -n openshift-adp
出力例
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/oadp-velero-sample-1-aws-registry-5d6968cbdd-d5w9k 1/1 Running 0 95s pod/restic-9cq4q 1/1 Running 0 94s pod/restic-m4lts 1/1 Running 0 94s pod/restic-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/oadp-velero-sample-1-aws-registry-svc ClusterIP 172.30.130.230 <none> 5000/TCP 95s NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/restic 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/oadp-velero-sample-1-aws-registry 1/1 1 1 96s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/oadp-velero-sample-1-aws-registry-5d6968cbdd 1 1 1 96s replicaset.apps/velero-588db7f655 1 1 1 96s
4.2.4.5.1. DataProtectionApplication CR で CSI を有効にする
CSI スナップショットを使用して永続ボリュームをバックアップするには、DataProtectionApplication
カスタムリソース (CR) で Container Storage Interface (CSI) を有効にします。
前提条件
- クラウドプロバイダーは、CSI スナップショットをサポートする必要があります。
4.2.5. Multicloud Object Gateway を使用した OpenShift API for Data Protection のインストールおよび設定
OpenShift API for Data Protection (OADP) を Multicloud Object Gateway (MCG) とともにインストールするには、OADP Operator をインストールし、Secret
オブジェクトを作成してから、Data Protection Application をインストールします。
MCG は OpenShift Container Storage (OCS) のコンポーネントです。MCG は、DataProtectionApplication
カスタムリソース (CR) のバックアップ場所として設定します。
S3 ストレージ用の CloudStorage
API は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
クラウドプロバイダーにネイティブスナップショット API がある場合は、スナップショットの場所を設定します。クラウドプロバイダーがスナップショットをサポートしていない場合、またはストレージが NFS の場合は、Restic を使用してバックアップを作成できます。
Restic または Container Storage Interface (CSI) スナップショットの DataProtectionApplication
CR でスナップショットの場所を指定する必要はありません。
制限されたネットワーク環境に OADP Operator をインストールするには、最初にデフォルトの Operator Hub ソースを無効にして、Operator カタログをミラーリングする必要があります。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。
4.2.5.1. OADP Operator のインストール
Operator Lifecycle Manager (OLM) を使用して、OpenShift Container Platform 4.8 に OpenShift API for Data Protection (OADP) オペレーターをインストールします。
OADP オペレーターは Velero 1.7 をインストールします。
前提条件
-
cluster-admin
権限を持つユーザーとしてログインしている。
手順
-
OpenShift Container Platform Web コンソールで、Operators
OperatorHub をクリックします。 - Filter by keyword フィールドを使用して、OADP Operator を検索します。
- OADP Operator を選択し、Install をクリックします。
-
Install をクリックして、
openshift-adp
プロジェクトに Operator をインストールします。 -
Operators
Installed Operators をクリックして、インストールを確認します。
4.2.5.2. Multi-Cloud Object Gateway の設定
OpenShift Container Storage Operator をインストールし、Multi-Cloud Object Gateway (MCG) ストレージバケットを MTC (Migration Toolkit for Containers) のレプリケーションリポジトリーとして設定できます。
4.2.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 プロジェクトに表示されます。
4.2.5.2.2. Multi-Cloud Object Gateway ストレージバケットの作成
Multi-Cloud Object Gateway (MCG) ストレージバケットのカスタムリソース (CR) を作成できます。
手順
OpenShift Container Platform クラスターにログインします。
$ oc login -u <username>
NooBaa
CR 設定ファイルnoobaa.yml
を以下の内容で作成します。apiVersion: noobaa.io/v1alpha1 kind: NooBaa metadata: name: <noobaa> namespace: openshift-storage spec: dbResources: requests: cpu: 0.5 1 memory: 1Gi coreResources: requests: cpu: 0.5 2 memory: 1Gi
NooBaa
オブジェクトを作成します。$ oc create -f noobaa.yml
以下の内容で、
BackingStore
CR 設定ファイルbs.yml
を作成します。apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: <mcg_backing_store> namespace: openshift-storage spec: pvPool: numVolumes: 3 1 resources: requests: storage: <volume_size> 2 storageClass: <storage_class> 3 type: pv-pool
BackingStore
オブジェクトを作成します。$ oc create -f bs.yml
以下の内容で
BucketClass
CR 設定ファイルbc.yml
を作成します。apiVersion: noobaa.io/v1alpha1 kind: BucketClass metadata: labels: app: noobaa name: <mcg_bucket_class> namespace: openshift-storage spec: placementPolicy: tiers: - backingStores: - <mcg_backing_store> placement: Spread
BucketClass
オブジェクトを作成します。$ oc create -f bc.yml
以下の内容で
ObjectBucketClaim
CR 設定ファイルobc.yml
を作成します。apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: <bucket> namespace: openshift-storage spec: bucketName: <bucket> 1 storageClassName: <storage_class> additionalConfig: bucketclass: <mcg_bucket_class>
- 1
- レプリケーションリポジトリーを MTC の Web コンソールに追加するために使用するバケット名を記録します。
ObjectBucketClaim
オブジェクトを作成します。$ oc create -f obc.yml
リソース作成プロセスを監視し、
ObjectBucketClaim
ステータスがBound
であることを確認します。$ watch -n 30 'oc get -n openshift-storage objectbucketclaim migstorage -o yaml'
このプロセスには、5 分から 10 分の時間がかかる場合があります。
以下の値を取得して記録します。この値は、レプリケーションリポジトリーを MTC の Web コンソールに追加する際に必要になります。
S3 エンドポイント:
$ oc get route -n openshift-storage s3
S3 プロバイダーアクセスキー:
$ oc get secret -n openshift-storage migstorage \ -o go-template='{{ .data.AWS_ACCESS_KEY_ID }}' | base64 --decode
S3 プロバイダーシークレットアクセスキー:
$ oc get secret -n openshift-storage migstorage \ -o go-template='{{ .data.AWS_SECRET_ACCESS_KEY }}' | base64 --decode
4.2.5.3. バックアップとスナップショットの場所のシークレットの作成
同じ認証情報を使用する場合は、バックアップとスナップショットの場所に Secret
オブジェクトを作成します。
Secret
のデフォルト名は cloud-credentials
です。
前提条件
- オブジェクトストレージとクラウドストレージは同じ認証情報を使用する必要があります。
- Velero のオブジェクトストレージを設定する必要があります。
-
オブジェクトストレージ用の
credentials-velero
ファイルを適切な形式で作成する必要があります。
手順
デフォルト名で
Secret
を作成します。$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
Secret
は、Data Protection Application をインストールするときに、DataProtectionApplication
CR の spec.backupLocations.credential
ブロックで参照されます。
4.2.5.3.1. さまざまなバックアップおよびスナップショットの場所の認証情報のシークレットを設定
バックアップとスナップショットの場所で異なる認証情報を使用する場合は、次の 2 つの Secret
オブジェクトを作成します。
-
カスタム名のバックアップ場所
Secret
。カスタム名は、DataProtectionApplication
カスタムリソース (CR) のspec.backupLocations
ブロックで指定されます。 -
スナップショットの場所
Secret
(デフォルト名はcloud-credentials
)。このSecret
は、DataProtectionApplication
で指定されていません。
手順
-
スナップショットの場所の
credentials-velero
ファイルをクラウドプロバイダーに適した形式で作成します。 デフォルト名でスナップショットの場所の
Secret
を作成します。$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
-
オブジェクトストレージに適した形式で、バックアップ場所の
credentials-velero
ファイルを作成します。 カスタム名を使用してバックアップ場所の
Secret
を作成します。$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
次の例のように、カスタム名の
Secret
をDataProtectionApplication
に追加します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: configuration: velero: defaultPlugins: - aws - openshift restic: enable: true backupLocations: - velero: config: profile: "default" region: minio s3Url: <url> insecureSkipTLSVerify: "true" s3ForcePathStyle: "true" provider: aws default: true credential: key: cloud name: <custom_secret> 1 objectStorage: bucket: <bucket_name> prefix: <prefix>
- 1
- カスタム名を持つバックアップ場所の
Secret
。
4.2.5.4. Data Protection Application の設定
Velero リソース割り当てを設定し、自己署名 CA 証明書を有効にすることができます。
4.2.5.4.1. Velero の CPU とメモリーのリソース割り当てを設定
DataProtectionApplication
カスタムリソース (CR) マニフェストを編集して、Velero
Pod の CPU およびメモリーリソースの割り当てを設定します。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
次の例のように、
DataProtectionApplication
CR マニフェストのspec.configuration.velero.podConfig.ResourceAllocations
ブロックの値を編集します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... configuration: velero: podConfig: resourceAllocations: limits: cpu: "1" 1 memory: 512Mi 2 requests: cpu: 500m 3 memory: 256Mi 4
4.2.5.4.2. 自己署名 CA 証明書の有効化
certificate signed by unknown authority
エラーを防ぐために、DataProtectionApplication
カスタムリソース (CR) マニフェストを編集して、オブジェクトストレージの自己署名 CA 証明書を有効にする必要があります。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
DataProtectionApplication
CR マニフェストのspec.backupLocations.velero.objectStorage.caCert
パラメーターとspec.backupLocations.velero.config
パラメーターを編集します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket> prefix: <prefix> caCert: <base64_encoded_cert_string> 1 config: insecureSkipTLSVerify: "false" 2 ...
4.2.5.5. Data Protection Application のインストール
DataProtectionApplication
API のインスタンスを作成して、Data Protection Application (DPA) をインストールします。
前提条件
- OADP Operator をインストールする必要があります。
- オブジェクトストレージをバックアップ場所として設定する必要があります。
- スナップショットを使用して PV をバックアップする場合、クラウドプロバイダーはネイティブスナップショット API または Container Storage Interface (CSI) スナップショットのいずれかをサポートする必要があります。
-
バックアップとスナップショットの場所で同じ認証情報を使用する場合は、デフォルトの名前である
cloud-credentials
を使用してSecret
を作成する必要があります。 バックアップとスナップショットの場所で異なる認証情報を使用する場合は、2 つの
Secrets
を作成する必要があります。-
バックアップ場所のカスタム名を持つ
Secret
。このSecret
をDataProtectionApplication
CR に追加します。 スナップショットの場所のデフォルト名である
cloud-credentials
のSecret
。このSecret
は、DataProtectionApplication
CR では参照されません。注記インストール中にバックアップまたはスナップショットの場所を指定したくない場合は、空の
credentials-velero
ファイルを使用してデフォルトのSecret
を作成できます。デフォルトのSecret
がない場合、インストールは失敗します。
-
バックアップ場所のカスタム名を持つ
手順
-
Operators
Installed Operators をクリックして、OADP Operator を選択します。 - Provided APIs で、DataProtectionApplication ボックスの Create instance をクリックします。
YAML View をクリックして、
DataProtectionApplication
マニフェストのパラメーターを更新します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: configuration: velero: defaultPlugins: - aws - openshift 1 restic: enable: true 2 backupLocations: - velero: config: profile: "default" region: minio s3Url: <url> 3 insecureSkipTLSVerify: "true" s3ForcePathStyle: "true" provider: aws default: true credential: key: cloud name: cloud-credentials 4 objectStorage: bucket: <bucket_name> 5 prefix: <prefix> 6
- 1
- OpenShift Container Platform クラスターでネームスペースをバックアップおよび復元するには、
openshift
プラグインが必須です。 - 2
- Restic のインストールを無効にする場合は、
false
に設定します。Restic はデーモンセットをデプロイします。これは、各ワーカーノードでRestic
Pod が実行されていることを意味します。バックアップ用に Restic を設定するには、Backup
CR にspec.defaultVolumesToRestic: true
を追加します。 - 3
- S3 エンドポイントの URL を指定します。
- 4
- この値を指定しない場合は、デフォルト名の
cloud-credentials
が使用されます。カスタム名を指定すると、バックアップの場所にカスタム名が使用されます。 - 5
- バックアップの保存場所としてバケットを指定します。バケットが Velero バックアップ専用のバケットでない場合は、接頭辞を指定する必要があります。
- 6
- バケットが複数の目的で使用される場合は、Velero バックアップの接頭辞を指定します (例:
velero
)。
- Create をクリックします。
OADP リソースを表示して、インストールを確認します。
$ oc get all -n openshift-adp
出力例
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/oadp-velero-sample-1-aws-registry-5d6968cbdd-d5w9k 1/1 Running 0 95s pod/restic-9cq4q 1/1 Running 0 94s pod/restic-m4lts 1/1 Running 0 94s pod/restic-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/oadp-velero-sample-1-aws-registry-svc ClusterIP 172.30.130.230 <none> 5000/TCP 95s NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/restic 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/oadp-velero-sample-1-aws-registry 1/1 1 1 96s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/oadp-velero-sample-1-aws-registry-5d6968cbdd 1 1 1 96s replicaset.apps/velero-588db7f655 1 1 1 96s
4.2.5.5.1. DataProtectionApplication CR で CSI を有効にする
CSI スナップショットを使用して永続ボリュームをバックアップするには、DataProtectionApplication
カスタムリソース (CR) で Container Storage Interface (CSI) を有効にします。
前提条件
- クラウドプロバイダーは、CSI スナップショットをサポートする必要があります。
4.2.6. OpenShift Container Storage を使用した OpenShift API for Data Protection のインストールおよび設定
OpenShift Container Storage (OCS) を使用して Openshift API for Data Protection (OADP) をインストールするには、OADP Operator をインストールし、バックアップの場所とスナップショットロケーションを設定します。次に、Data Protection Application をインストールします。
Multicloud Object Gateway または S3 互換のオブジェクトストレージを、DataProtectionApplication
カスタムリソース (CR) のバックアップの場所として設定できます。
S3 ストレージ用の CloudStorage
API は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
クラウドプロバイダーにネイティブスナップショット API がある場合は、DataProtectionApplication
CR でスナップショットの場所としてクラウドストレージを設定できます。Restic または Container Storage Interface (CSI) スナップショットで、スナップショットの場所を指定する必要はありません。
制限されたネットワーク環境に OADP Operator をインストールするには、最初にデフォルトの Operator Hub ソースを無効にして、Operator カタログをミラーリングする必要があります。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。
4.2.6.1. OADP Operator のインストール
Operator Lifecycle Manager (OLM) を使用して、OpenShift Container Platform 4.8 に OpenShift API for Data Protection (OADP) オペレーターをインストールします。
OADP オペレーターは Velero 1.7 をインストールします。
前提条件
-
cluster-admin
権限を持つユーザーとしてログインしている。
手順
-
OpenShift Container Platform Web コンソールで、Operators
OperatorHub をクリックします。 - Filter by keyword フィールドを使用して、OADP Operator を検索します。
- OADP Operator を選択し、Install をクリックします。
-
Install をクリックして、
openshift-adp
プロジェクトに Operator をインストールします。 -
Operators
Installed Operators をクリックして、インストールを確認します。
クラウドプロバイダーがネイティブスナップショット API をサポートしている場合は、OADP Operator をインストールした後、オブジェクトストレージをバックアップの場所として設定し、クラウドストレージをスナップショットの場所として設定します。
クラウドプロバイダーがスナップショットをサポートしていない場合、またはストレージが NFS の場合は、Restic を使用してバックアップを作成できます。Restic はスナップショットの場所を必要としません。
4.2.6.2. バックアップとスナップショットの場所のシークレットの作成
同じ認証情報を使用する場合は、バックアップとスナップショットの場所に Secret
オブジェクトを作成します。
バックアップストレージプロバイダーのデフォルトのプラグインを指定しない限り、Secret
のデフォルト名は cloud-credentials
です。
前提条件
- オブジェクトストレージとクラウドストレージは同じ認証情報を使用する必要があります。
- Velero のオブジェクトストレージを設定する必要があります。
-
オブジェクトストレージ用の
credentials-velero
ファイルを適切な形式で作成する必要があります。
手順
デフォルト名で
Secret
を作成します。$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
Secret
は、Data Protection Application をインストールするときに、DataProtectionApplication
CR の spec.backupLocations.credential
ブロックで参照されます。
4.2.6.2.1. さまざまなバックアップおよびスナップショットの場所の認証情報のシークレットを設定
バックアップとスナップショットの場所で異なる認証情報を使用する場合は、次の 2 つの Secret
オブジェクトを作成します。
-
カスタム名のバックアップ場所
Secret
。カスタム名は、DataProtectionApplication
カスタムリソース (CR) のspec.backupLocations
ブロックで指定されます。 -
スナップショットの場所
Secret
(デフォルト名はcloud-credentials
)。このSecret
は、DataProtectionApplication
で指定されていません。
手順
-
スナップショットの場所の
credentials-velero
ファイルをクラウドプロバイダーに適した形式で作成します。 デフォルト名でスナップショットの場所の
Secret
を作成します。$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero
-
オブジェクトストレージに適した形式で、バックアップ場所の
credentials-velero
ファイルを作成します。 カスタム名を使用してバックアップ場所の
Secret
を作成します。$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero
次の例のように、カスタム名の
Secret
をDataProtectionApplication
に追加します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: configuration: velero: defaultPlugins: - csi - openshift featureFlags: - EnableCSI restic: enable: true backupLocations: - velero: provider: gcp default: true credential: key: cloud name: <custom_secret> 1 objectStorage: bucket: <bucket_name> prefix: <prefix>
- 1
- カスタム名を持つバックアップ場所の
Secret
。
4.2.6.3. Data Protection Application の設定
Velero リソース割り当てを設定し、自己署名 CA 証明書を有効にすることができます。
4.2.6.3.1. Velero の CPU とメモリーのリソース割り当てを設定
DataProtectionApplication
カスタムリソース (CR) マニフェストを編集して、Velero
Pod の CPU およびメモリーリソースの割り当てを設定します。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
次の例のように、
DataProtectionApplication
CR マニフェストのspec.configuration.velero.podConfig.ResourceAllocations
ブロックの値を編集します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... configuration: velero: podConfig: resourceAllocations: limits: cpu: "1" 1 memory: 512Mi 2 requests: cpu: 500m 3 memory: 256Mi 4
4.2.6.3.2. 自己署名 CA 証明書の有効化
certificate signed by unknown authority
エラーを防ぐために、DataProtectionApplication
カスタムリソース (CR) マニフェストを編集して、オブジェクトストレージの自己署名 CA 証明書を有効にする必要があります。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
DataProtectionApplication
CR マニフェストのspec.backupLocations.velero.objectStorage.caCert
パラメーターとspec.backupLocations.velero.config
パラメーターを編集します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: ... backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: <bucket> prefix: <prefix> caCert: <base64_encoded_cert_string> 1 config: insecureSkipTLSVerify: "false" 2 ...
4.2.6.4. Data Protection Application のインストール
DataProtectionApplication
API のインスタンスを作成して、Data Protection Application (DPA) をインストールします。
前提条件
- OADP Operator をインストールする必要があります。
- オブジェクトストレージをバックアップ場所として設定する必要があります。
- スナップショットを使用して PV をバックアップする場合、クラウドプロバイダーはネイティブスナップショット API または Container Storage Interface (CSI) スナップショットのいずれかをサポートする必要があります。
-
バックアップとスナップショットの場所で同じ認証情報を使用する場合は、デフォルトの名前である
cloud-credentials
を使用してSecret
を作成する必要があります。 バックアップとスナップショットの場所で異なる認証情報を使用する場合は、2 つの
Secrets
を作成する必要があります。-
バックアップ場所のカスタム名を持つ
Secret
。このSecret
をDataProtectionApplication
CR に追加します。 スナップショットの場所のデフォルト名である
cloud-credentials
のSecret
。このSecret
は、DataProtectionApplication
CR では参照されません。注記インストール中にバックアップまたはスナップショットの場所を指定したくない場合は、空の
credentials-velero
ファイルを使用してデフォルトのSecret
を作成できます。デフォルトのSecret
がない場合、インストールは失敗します。
-
バックアップ場所のカスタム名を持つ
手順
-
Operators
Installed Operators をクリックして、OADP Operator を選択します。 - Provided APIs で、DataProtectionApplication ボックスの Create instance をクリックします。
YAML View をクリックして、
DataProtectionApplication
マニフェストのパラメーターを更新します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: configuration: velero: defaultPlugins: - gcp <.> - csi <.> - openshift 1 restic: enable: true 2 backupLocations: - velero: provider: gcp 3 default: true credential: key: cloud name: <default_secret> 4 objectStorage: bucket: <bucket_name> 5 prefix: <prefix> 6
- 1
- 必要に応じて、バックアッププロバイダーのデフォルトのプラグイン (
gcp
など) を指定します。 - 2
- CSI スナップショットを使用して PV をバックアップする場合は、
csi
のデフォルトプラグインを指定します。csi
プラグインは、Velero CSI ベータスナップショット API を使用します。スナップショットの場所を設定する必要はありません。 - 3
- OpenShift Container Platform クラスターでネームスペースをバックアップおよび復元するには、
openshift
プラグインが必須です。 - 4
- Restic のインストールを無効にする場合は、
false
に設定します。Restic はデーモンセットをデプロイします。これは、各ワーカーノードでRestic
Pod が実行されていることを意味します。バックアップ用に Restic を設定するには、Backup
CR にspec.defaultVolumesToRestic: true
を追加します。 - 5
- バックアッププロバイダーを指定します。
- 6
- バックアッププロバイダーにデフォルトのプラグインを使用する場合は、
Secret
に正しいデフォルトの名前を指定する必要があります (例:cloud-credentials-gcp
)。カスタム名を指定すると、バックアップの場所にカスタム名が使用されます。Secret
名を指定しない場合は、デフォルトの名前が使用されます。 - バックアップの保存場所としてバケットを指定します。バケットが Velero バックアップ専用のバケットでない場合は、接頭辞を指定する必要があります。
- バケットが複数の目的で使用される場合は、Velero バックアップの接頭辞を指定します (例:
velero
)。
- Create をクリックします。
OADP リソースを表示して、インストールを確認します。
$ oc get all -n openshift-adp
出力例
NAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/oadp-velero-sample-1-aws-registry-5d6968cbdd-d5w9k 1/1 Running 0 95s pod/restic-9cq4q 1/1 Running 0 94s pod/restic-m4lts 1/1 Running 0 94s pod/restic-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/oadp-velero-sample-1-aws-registry-svc ClusterIP 172.30.130.230 <none> 5000/TCP 95s NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/restic 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/oadp-velero-sample-1-aws-registry 1/1 1 1 96s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/oadp-velero-sample-1-aws-registry-5d6968cbdd 1 1 1 96s replicaset.apps/velero-588db7f655 1 1 1 96s
4.2.6.4.1. DataProtectionApplication CR で CSI を有効にする
CSI スナップショットを使用して永続ボリュームをバックアップするには、DataProtectionApplication
カスタムリソース (CR) で Container Storage Interface (CSI) を有効にします。
前提条件
- クラウドプロバイダーは、CSI スナップショットをサポートする必要があります。
4.2.7. OpenShift API for Data Protection のアンインストール
OpenShift API for Data Protection (OADP) をアンインストールするには、OADP Operator を削除します。詳細は、クラスターからの演算子の削除 を参照してください。