ビジネス継続性
クラスター内またはクラスター間の永続ボリュームの非同期レプリケーションを VolSync によって実現する方法を説明します。バックアップおよび復元 Operator を使用して、クラスターリソースの継続性をサポートします。
概要
第1章 ビジネス継続性 リンクのコピーリンクがクリップボードにコピーされました!
障害復旧ソリューション、ハブクラスター、およびマネージドクラスターは、次のトピックを参照してください。
1.1. バックアップおよび復元 リンクのコピーリンクがクリップボードにコピーされました!
クラスターのバックアップおよび復元 Operator は、ハブクラスターで実行され、Red Hat Advanced Cluster Management for Kubernetes ハブクラスターの障害に対する障害復旧ソリューションを提供します。ハブクラスターで障害が発生すると、すべてのマネージドクラスターが引き続き正常に動作していても、ポリシー設定ベースのアラートやクラスター更新などの一部の機能が動作しなくなります。ハブクラスターが使用できない場合は、回復が可能かどうか、または新しく展開されたハブクラスター上のデータを回復する必要があるかどうかを判断するための回復計画が必要です。
クラスターのバックアップおよび復元の Operator は、ハブクラスターのインストールを拡張するサードパーティーリソースのバックアップをサポートします。このバックアップソリューションを使用すると、指定した時間間隔で実行する cron ベースのバックアップスケジュールを定義できます。ハブクラスターで障害が発生した場合、新しいハブクラスターをデプロイし、バックアップされたデータを新しいハブクラスターに移動できます。
次のトピックを読み続けて、バックアップおよび復元 operator の詳細を確認してください。
- バックアップおよび復元 Operator のアーキテクチャー
- アクティブパッシブハブクラスターの設定
- バックアップおよび復元 Operator のインストール
- バックアップのスケジュールと復元
- バックアップの復元
- バックアップまたは復元設定の検証
- マネージドサービスアカウントを使用してクラスターを自動的に接続する
- 復元プロセス時にプライマリーハブクラスターをアクティブな状態に維持
- 高度な設定のバックアップと復元
- 既存のハブクラスターを復元ハブクラスターとして使用する場合の制約
- リソースのタグ付け
- 復元後に初期ハブクラスターに戻る
- ポリシーを使用した Red Hat OpenShift Virtualization のバックアップと復元の設定
1.1.1. バックアップおよび復元 Operator のアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
Operator は、Red Hat Advanced Cluster Management バックアップスケジュールを設定する BackupSchedule.cluster.open-cluster-management.io
リソースと、restore.cluster.open-cluster-management.io
リソースを定義します。これらのリソースを使用して、これらのバックアップを処理および復元します。この Operator は、対応する Velero リソースを作成し、リモートクラスターと、復元を必要とする他のハブクラスターリソースのバックアップに必要なオプションを定義します。
次のアーキテクチャー図を参照してください。
バックアップおよび復元コンポーネントは、バックアップ Pod やバックアップスケジュールが実行していないなどの問題を報告するための一連のポリシーを提供します。バックアップソリューションが機能しない場合は、ポリシーテンプレートを使用してハブクラスター管理者へのアラートを作成します。詳細は、バックアップまたは復元設定の検証 を参照してください。
クラスターのバックアップおよび復元 Operator は、OADP Operator に依存して Velero をインストールし、ハブクラスターからデータが保存されているバックアップストレージの場所への接続を作成します。Velero は、バックアップおよび復元操作を実行するコンポーネントです。クラスターのバックアップと復元の Operator ソリューションは、マネージドクラスター、アプリケーション、およびポリシーを含むすべての Red Hat Advanced Cluster Management ハブクラスターリソースのバックアップと復元のサポートを提供します。
1.1.1.1. バックアップされるリソース リンクのコピーリンクがクリップボードにコピーされました!
クラスターのバックアップと復元 Operator のソリューションは、マネージドクラスター、アプリケーション、ポリシーなど、すべてのハブクラスターリソースのバックアップと復元のサポートを提供します。このソリューションを使用して、基本的なハブクラスターのインストールを拡張するサードパーティーリソースをバックアップします。このバックアップソリューションを使用すると、cron ベースのバックアップスケジュールを定義します。これは、指定された時間間隔で実行し、ハブクラスターのコンテンツの最新バージョンを継続的にバックアップします。
ハブクラスターを交換する必要がある場合、またはハブクラスターに障害が発生したときに障害シナリオにある場合は、新しいハブクラスターをデプロイし、バックアップデータを新しいハブクラスターに移動できます。
次のクラスターのバックアップおよび復元プロセスのリストと、バックアップデータを識別するためにリソースとグループをバックアップまたは除外する方法を確認します。
-
MultiClusterHub
namespace のすべてのリソースを除外します。これは、現在のハブクラスター ID にリンクされているため、バックアップする必要のないインストールリソースのバックアップを回避するためです。 -
API バージョンの接尾辞が
.open-cluster-management.io
および.hive.openshift.io
であるすべてのリソースをバックアップします。これらの接尾辞は、すべての Red Hat Advanced Cluster Management リソースがバックアップされていることを示します。 API グループ (
argoproj.io
、app.k8s.io
、core.observatorium.io
、hive.openshift.io
) からすべてのリソースをバックアップします。agent-install.openshift.io
API グループのリソースを除き、リソースはacm-resources-schedule
バックアップ内でバックアップされます。agent-install.openshift.io
API グループのリソースは、acm-managed-clusters-schedule
バックアップ内でバックアップされます。以下に示すhive.openshift.io
およびhiveinternal.openshift.io
API グループのリソースも、acm-managed-clusters-schedule
バックアップによってバックアップされます。-
clusterdeployment.hive.openshift.io
-
machinepool.hive.openshift.io
-
clusterpool.hive.openshift.io
-
clusterclaim.hive.openshift.io
-
clusterimageset.hive.openshift.io
-
clustersync.hiveinternal.openshift.io
-
次の API グループからすべてのリソースを除外します。
-
internal.open-cluster-management.io
-
operator.open-cluster-management.io
-
work.open-cluster-management.io
-
search.open-cluster-management.io
-
admission.hive.openshift.io
-
proxy.open-cluster-management.io
-
action.open-cluster-management.io
-
view.open-cluster-management.io
-
clusterview.open-cluster-management.io
-
velero.io
-
含まれる API グループの一部であるが、必要ではないか、バックアップもされている所有者リソースによって再作成される次のリソースをすべて除外します。
-
clustermanagementaddon.addon.open-cluster-management.io
-
backupschedule.cluster.open-cluster-management.io
-
restore.cluster.open-cluster-management.io
-
clusterclaim.cluster.open-cluster-management.io
-
discoveredcluster.discovery.open-cluster-management.io
-
-
次のいずれかのラベルがあるシークレットまたは ConfigMaps をバックアップします:
cluster.open-cluster-management.io/type
、hive.openshift.io/secret-type
、cluster.open-cluster-management.io/backup
。 バックアップするその他のリソースで、前述の基準に含まれていないか、除外された API グループの一部である場合は、
cluster.open-cluster-management.io/backup
ラベルを使用します。以下の例を参照してください。apiVersion: my.group/v1alpha1 kind: MyResource metadata: labels: cluster.open-cluster-management.io/backup: ""
apiVersion: my.group/v1alpha1 kind: MyResource metadata: labels: cluster.open-cluster-management.io/backup: ""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記:
hive.openshift.io.ClusterDeployment
リソースで使用されるシークレットはバックアップする必要があり、コンソールを使用してクラスターを作成する場合にのみ、cluster.open-cluster-management.io/backup
ラベルで自動的にアノテーションが付けられます。代わりに GitOps を使用して Hive クラスターをデプロイする場合は、ClusterDeployment
リソースで使用されるシークレットにcluster.open-cluster-management.io/backup
ラベルを手動で追加する必要があります。cluster.open-cluster-management.io/backup: cluster-activation
ラベルを持つシークレットおよび config map リソースは、クラスターのアクティブ化時に復元されます。バックアップしたくない特定のリソースを除外します。バックアッププロセスから Velero リソースを除外するには、次の例を参照してください。
apiVersion: my.group/v1alpha1 kind: MyResource metadata: labels: velero.io/exclude-from-backup: "true"
apiVersion: my.group/v1alpha1 kind: MyResource metadata: labels: velero.io/exclude-from-backup: "true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.1.2. Red Hat Advanced Cluster Management スケジュールで作成されたバックアップファイル リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management スケジュールを使用して、リソースタイプまたはラベルアノテーションに基づいて個別のバックアップファイルにグループ化されたハブクラスターリソースをバックアップできます。
BackupSchedule.cluster.open-cluster-management.io
リソースは、4 つの Schedule.velero.io
リソースのセットを作成します。これらの schedule.velero.io
リソースは、リソースとも呼ばれるバックアップファイルを生成します。
スケジュールされたバックアップファイルの一覧を表示するには、oc get schedules -A | grep acm
のコマンドを実行します。
スケジュールされたバックアップファイルは backup.velero.io
です。これらのスケジュールされたバックアップファイルの説明を表示するには、次の表を参照してください。
スケジュールされたバックアップ | 説明 |
---|---|
Credentials backup |
Hive 認証情報、Red Hat Advanced Cluster Management、ユーザーが作成した認証情報、および |
Resources backup |
Red Hat Advanced Cluster Management リソースのバックアップが 1 つ ( |
Managed clusters backup |
バックアップが復元されるハブクラスターへのマネージドクラスター接続をアクティブにするリソースのみ格納されています。このバックアップファイルの名前は、 |
1.1.1.3. マネージドクラスターのアクティブ化時に復元されるリソース リンクのコピーリンクがクリップボードにコピーされました!
リソースに cluster.open-cluster-management.io/backup
ラベルを追加すると、そのリソースは自動的に acm-resources-generic-schedule
バックアップに追加されます。ただし、Secrets
および ConfigMap
リソースは、backup acm-credentials-schedule-
にバックアップされます。マネージドクラスターを新しいハブクラスターに移動した後、および復元されたリソースで veleroManagedClustersBackupName:latest
を使用する場合は、ラベル値を cluster-activation
に設定します。
cluster.open-cluster-management.io/backup
ラベルを cluster-activation
に設定すると、マネージドクラスターをアクティブ化しない限り、リソースが復元されないようになります。以下の例を参照してください。
apiVersion: my.group/v1alpha1 kind: MyResource metadata: labels: cluster.open-cluster-management.io/backup: cluster-activation
apiVersion: my.group/v1alpha1
kind: MyResource
metadata:
labels:
cluster.open-cluster-management.io/backup: cluster-activation
注記: マネージドクラスターの namespace またはその namespace 内のリソースは、クラスターのアクティブ化ステップで、どちらかを復元する必要があります。したがって、マネージドクラスターの namespace に作成されたバックアップリソースに追加する必要がある場合は、cluster.open-cluster-management.io/backup
ラベルの cluster-activation
値を使用してください。復元プロセスを理解するには、次の情報を参照してください。
-
namespace を復元すると、
managedcluster-import-controller
によって namespace が削除されます。 -
managedCluster
カスタムリソースを復元すると、cluster-manager-registration-controller
によって namespace が作成されます。
cluster.open-cluster-management.io/backup: cluster-activation
ラベルを使用して識別され、acm-resources-generic-schedule
バックアップによって保存されるアクティベーションデータリソースとは別に、クラスターのバックアップおよび復元 Operator には、デフォルトでは、アクティベーションセット内のいくつかのリソースが含まれます。次のリソースは、acm-managed-clusters-schedule
バックアップによってバックアップされます。
-
managedcluster.cluster.open-cluster-management.io
-
klusterletaddonconfig.agent.open-cluster-management.io
-
managedclusteraddon.addon.open-cluster-management.io
-
managedclusterset.cluster.open-cluster-management.io
-
managedclusterset.clusterview.open-cluster-management.io
-
managedclustersetbinding.cluster.open-cluster-management.io
-
clusterpool.hive.openshift.io
-
clusterclaim.hive.openshift.io
-
clustercurator.cluster.open-cluster-management.io
1.1.1.4. バックアップ ラベル機能 リンクのコピーリンクがクリップボードにコピーされました!
cluster.open-cluster-management.io/backup
ラベルをリソースに追加することで、クラスターのバックアップおよび復元を使用してサードパーティーのリソースをバックアップできます。ラベルの値は、空の文字列を含む任意の文字列にすることができます。バックアップするコンポーネントを識別するのに役立つ値を使用してください。たとえば、コンポーネントが IDP ソリューションによって提供される場合は、cluster.open-cluster-management.io/backup: idp
ラベルを使用します。
注意: マネージドクラスターのアクティブ化リソースが復元されたときにリソースを復元する場合は、cluster.open-cluster-management.io/backup
ラベルに cluster-activation
値を使用します。マネージドクラスターのアクティベーションリソースを復元すると、ハブクラスターによってアクティブに管理されているマネージドクラスターの復元が開始されます。
1.1.2. アクティブ/パッシブハブクラスターの設定 リンクのコピーリンクがクリップボードにコピーされました!
ここでは、アクティブ/パッシブハブクラスター設定を設定する方法を説明します。この設定では、最初のハブクラスターがデータをバックアップし、アクティブクラスターが使用できなくなったときにマネージドクラスターを制御するために 1 つ以上のパッシブハブクラスターがスタンバイになります。
1.1.2.1. アクティブ/パッシブ設定 リンクのコピーリンクがクリップボードにコピーされました!
アクティブ/パッシブ設定では、アクティブなハブクラスターが 1 つと、パッシブなハブクラスターが複数あります。アクティブなハブクラスターは、プライマリーハブクラスターとも見なされ、プライマリーハブクラスターは、BackupSchedule.cluster.open-cluster-management.io
リソースを使用して、クラスターを管理し、定義された時間間隔でリソースをバックアップします。
注: プライマリーハブクラスターのデータをバックアップするには、アクティブ/パッシブ
設定は必要ありません。ハブクラスターデータのバックアップと保存のみが可能です。これにより、問題や障害が発生した場合に、新しいハブクラスターをデプロイし、この新しいハブクラスター上にプライマリーハブクラスターデータを復元できます。プライマリーハブクラスターのデータを回復する時間を短縮するには、アクティブ/パッシブ
設定を使用します。ただし、これは必須ではありません。
パッシブハブクラスターは、最新のバックアップを継続的に取得し、パッシブデータを復元します。パッシブハブは、Restore.cluster.open-cluster-management.io
リソースを使用して、新規バックアップデータが利用可能な場合に、プライマリーハブクラスターからパッシブデータを復元します。これらのハブクラスターは、プライマリーハブクラスターで障害が発生した場合にプライマリーハブに切り替えられるように、スタンバイ状態にあります。
アクティブ/パッシブハブクラスターは同じストレージの場所に接続され、プライマリーハブクラスターはパッシブハブクラスターのデータをバックアップし、パッシブハブクラスターはプライマリーハブクラスターのバックアップにアクセスします。この自動復元を設定する方法の詳細は、バックアップの確認中にパッシブリソースを復元する を参照してください。
以下の図は、アクティブなハブクラスターがローカルクラスターを管理し、ハブクラスターデータを一定間隔でバックアップします。
パッシブハブクラスターは、マネージドクラスターをパッシブハブクラスターに移動するマネージドクラスターアクティベーションデータを除いて、このデータを復元します。パッシブハブクラスターは、パッシブデータを継続的に復元できます。パッシブハブクラスターは、パッシブデータを 1 回限りの操作として復元できます。詳細は、パッシブリソースの復元 を参照してください。
1.1.2.2. 障害復旧 リンクのコピーリンクがクリップボードにコピーされました!
プライマリーハブクラスターに障害が発生した場合、ハブ管理者は、マネージドクラスターを引き継ぐパッシブハブクラスターを選択できます。次の 障害復旧図 では、ハブクラスター N を新しいプライマリーハブクラスターとして使用する方法を示しています。
ハブクラスター N は、マネージドクラスターのアクティブ化データを復元します。マネージドクラスターは ハブクラスター N に接続します。BackupSchedule.cluster.open-cluster-management.io
リソースを作成し、最初のプライマリーハブクラスターと同じストレージの場所にバックアップを保存することにより、新しいプライマリーハブクラスターである ハブクラスター N のバックアップをアクティブ化します。
その他のパッシブハブクラスターはすべて、新しいプライマリーハブクラスターが作成したバックアップデータを使用してパッシブデータを復元するようになりました。ハブクラスター N がプライマリーハブクラスターとなり、クラスターの管理とデータのバックアップを行います。
重要:
前述の 障害復旧図 の最初のプロセスは、次の理由により自動化されていません。
- プライマリーハブクラスターに障害が発生して交換する必要があるか、またはハブクラスターとマネージドクラスターの間にネットワーク通信エラーがあるかを判断する必要があります。
- どのパッシブハブクラスターをプライマリーハブクラスターにするかを決定する必要があります。Red Hat Ansible Automation Platform ジョブとのポリシー統合により、バックアップポリシーがバックアップエラーを報告した場合にジョブが実行されるようにすることで、この手順を自動化できます。
前述の 障害復旧図 の 2 番目のプロセスは手動で実行します。新しいプライマリーハブクラスターでバックアップスケジュールを作成していない場合、
backup-restore-enabled
ポリシーはbackup-schedule-cron-enabled
ポリシーテンプレートを使用して違反を示します。この 2 番目のプロセスでは、次のアクションを実行できます。-
backup-schedule-cron-enabled
ポリシーテンプレートを使用して、新しいプライマリーハブクラスターに cron ジョブとして実行されているバックアップがあるか確認します。 -
Ansible
とのポリシー統合を使用して、backup-schedule-cron-enabled
ポリシーテンプレートが違反を報告した場合に実行できるAnsible
ジョブを定義します。
-
-
backup-restore-enabled
ポリシーテンプレートの詳細は、バックアップまたは復元設定の検証 を参照してください。
1.1.2.3. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
パッシブリソースの詳細は、次の復元オプションを参照してください。
- バックアップの確認中にパッシブリソースを復元する
- パッシブリソースを復元する
-
アクティブ/パッシブ
設定を構築する代わりに、障害発生時に新しいハブクラスターをデプロイし、この新しいハブクラスターにすべてのプライマリーハブクラスターデータを復元する場合は、すべてのリソースの復元 トピックを参照してください。
1.1.3. バックアップおよび復元 Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
クラスターのバックアップおよび復元 Operator は自動的にインストールされません。次のセクションを完了し、Operator をインストールして有効にします。
1.1.3.1. バックアップおよび復元 Operator 用のハブクラスターのセットアップ リンクのコピーリンクがクリップボードにコピーされました!
バックアップおよび復元 Operator を使用するには、ハブクラスターを設定する必要があります。ハブクラスターを設定するには、次のセクションを順番に完了します。
1.1.3.2. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
-
Red Hat OpenShift Container Platform クラスターから、Red Hat Advanced Cluster Management Operator バージョン 2.14 をインストールします。
MultiClusterHub
リソースは、Red Hat Advanced Cluster Management のインストール時に自動的に作成され、Running
のステータスを表示します。
1.1.3.3. ハブクラスターのバックアップ Operator を有効にする リンクのコピーリンクがクリップボードにコピーされました!
アクティブ/パッシブハブクラスターのバックアップ Operator を有効にするには、以下の手順を実行します。
次の手順を実行して、クラスターバックアップおよび復元 Operator である
cluster-backup
を有効にします。-
cluster-backup
パラメーターをtrue
に設定してMultiClusterHub
リソースを更新します。このハブクラスターで AWS Security Token Service (STS) オプションが有効になっていない場合は、OADP Operator もバックアップコンポーネントと同じ namespace にインストールされます。 - STS オプションが有効になっているハブクラスターの場合は、OADP Operator を手動でインストールする必要があります。
-
- 復元ハブクラスターが、バックアップハブクラスターが使用するものと同じ Red Hat Advanced Cluster Management バージョンを使用していることを確認します。バックアップハブクラスターで使用されているバージョンよりも前のバージョンのハブクラスターでバックアップを復元することはできません。
次の手順を実行して、復元ハブクラスターを手動で設定します。
- アクティブハブクラスターと、そのアクティブハブクラスターと同じ namespace にインストールされているすべての Operator をインストールします。
- 新しいハブクラスターがバックアップハブクラスターと同じように設定されていることを確認します。
- バックアップおよび復元 Operator と、バックアップハブクラスターで設定する Operator をインストールするときは、バックアップハブクラスターと同じ namespace 名を使用します。
次の手順を実行して、パッシブハブクラスターに
DataProtectionApplication
リソースを作成します。-
アクティブハブクラスターとパッシブハブクラスターの両方に
DataProtectionApplication
リソースを作成します。 -
復元ハブクラスターの場合、
DataProtectionApplication
リソースを作成するときに、バックアップハブと同じストレージの場所を使用します。
-
アクティブハブクラスターとパッシブハブクラスターの両方に
1.1.3.4. ストレージの場所シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
ストレージの場所のシークレットを作成するには、以下の手順を実行します。
- バックアップの保存先となるクラウドストレージの デフォルト Secret の作成 の手順を完了します。
- バックアップコンポーネントの namespace にある OADP Operator の namespace にシークレットリソースを作成します。
1.1.3.5. OADP Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
AWS Security Token Service (STS) オプションを有効にしたハブクラスターの場合は、ハブクラスターにクラスターのバックアップおよび復元 Operator をインストールしても、OADP Operator はインストールされません。STS role_arn
を OADP Operator に渡すには、OADP Operator を手動でインストールする必要があります。
STS オプションを有効にしなかったハブクラスターの場合は、ハブクラスターにクラスターバックアップおよび復元 Operator をインストールすると、OADP Operator が自動的にインストールされます。
MultiClusterHub
リソースからバックアップオプションを有効にすると、OADP Operator を open-cluster-management-backup
namespace にインストールするまで、バックアップオプションは Pending
状態のままになります。ハブクラスターで AWS STS オプションを有効にしていない場合は、バックアップチャートとともに OADP Operator が自動的にインストールされます。それ以外の場合は、OADP Operator を手動でインストールする必要があります。
クラスターが STS モードの場合、バックアップチャートは、open-cluster-management-backup
namespace に acm-redhat-oadp-operator-subscription
という名前の config map を作成します。この config map には、OADP チャネルと環境情報も含まれています。この config map を使用して、インストールする必要がある OADP バージョンを取得し、OADP サブスクリプションに設定する環境オプションを取得します。
STS オプションを使用して OADP Operator をインストールする方法の詳細は、OpenShift Container Platform ドキュメントの オプションのバックアップを使用した OADP ROSA でのワークロードのバックアップ を参照してください。
重要:
OADP Operator をインストールするときは、次の注意事項を参照してください。
- カスタムリソース定義はクラスタースコープであるため、同じクラスターに 2 つの異なるバージョンの OADP または Velero をインストールすることはできません。2 つの異なるバージョンがある場合、一方のバージョンは間違ったカスタムリソース定義で実行されます。
-
MultiClusterHub
リソースを作成すると、Velero カスタムリソース定義 (CRD) はハブクラスターに自動的にインストールされません。OADP Operator をインストールすると、Velero CRD がハブクラスターにインストールされます。その結果、Velero CRD リソースはMultiClusterHub
リソースによって調整および更新されなくなります。 - バックアップコンポーネントは、コンポーネントの namespace にインストールされている OADP Operator と連携して動作します。
- OADP Operator を手動でインストールする場合、OADP Operator と Velereo のカスタムリソース定義バージョンは一致する必要があります。これらのバージョンが互いに完全に一致しない場合は、問題が発生します。
- Velero と OADP Operator は、Red Hat Advanced Cluster Management for Kubernetes ハブクラスターにインストールされます。これは、Red Hat Advanced Cluster Management ハブクラスターリソースのバックアップおよび復元に使用されます。
- Velero でサポートされているストレージプロバイダーのリストは、OADP のインストールについて を参照してください。
1.1.3.6. カスタム OADP バージョンのインストール リンクのコピーリンクがクリップボードにコピーされました!
MultiClusterHub
リソースにアノテーションを設定すると、特定のニーズに合わせて OADP バージョンをカスタマイズできます。以下の手順を実行します。
バックアップおよび復元 Operator によってインストールされた OADP バージョンを上書きするには、
MultiClusterHub
リソースで次のアノテーションを使用します。installer.open-cluster-management.io/oadp-subscription-spec: '{"channel": "stable-1.4"}'
installer.open-cluster-management.io/oadp-subscription-spec: '{"channel": "stable-1.4"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要: このオプションを使用して、バックアップおよび復元 Operator によってデフォルトでインストールされたものとは異なる OADP バージョンを取得する場合は、このバージョンがハブクラスターによって使用される Red Hat OpenShift Container Platform バージョンでサポートされていることを確認してください。このオーバーライドオプションを使用すると、サポート対象外の設定になる可能性があるため、注意して使用してください。
オプション: Operator の特定の OADP バージョンをインストールするには、アノテーションを設定します。たとえば、
stable-1.5
チャネルから OADP をインストールし、特定のバージョンの Operator を選択する場合は、installer.open-cluster-management.io/oadp-subscription-spec
アノテーションでstartingCSV
プロパティーを設定します。MultiClusterHub
リソースは次の例のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
cluster-back
をtrue
に設定して、MultiClusterHub
リソースのcluster-backup
オプションを有効にします。 -
OADP Operator が
oadp-subscription-spec
アノテーションプロパティーを使用していることを確認するには、OADP Operator のサブスクリプション YAML に、アノテーションで指定されたプロパティーが含まれていることを確認します。
1.1.3.7. DataProtectionApplication リソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
アクティブ/パッシブハブクラスターの DataProtectionApplication
リソースのインスタンスを作成するには、以下の手順を実行します。
- Red Hat OpenShift Container Platform コンソールから、Operators > Installed Operators を選択します。
-
DataProtectionApplication の下の
Create instance
をクリックします。 -
OpenShift Container Platform コンソールを使用して設定を選択するか、
DataProtectionApplication
の例に記載されている YAML ファイルを使用して、Velero インスタンスを作成します。 -
DataProtectionApplication
namespace をopen-cluster-management-backup
に設定します。 DataProtectionApplication
リソースの仕様 (spec:
) 値を適切に設定します。次に、Create をクリックします。デフォルトのバックアップストレージの場所を使用する場合は、
backupStorageLocations
セクションで値default: true
を設定します。以下のDataProtectionApplication
リソースの例を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.3.8. 非接続環境でのバックアップおよび復元コンポーネントの有効化 リンクのコピーリンクがクリップボードにコピーされました!
非接続環境で Red Hat OpenShift Container Platform を使用してバックアップおよび復元コンポーネントを有効にするには、以下の手順を実行します。
次のアノテーションを使用して
MultiClusterHub
リソースを更新し、OADP Operator のインストール元のソースをオーバーライドします。MultiClusterHub
リソースでcluster-backup
コンポーネントを有効にする前に、アノテーションを作成します。apiVersion: operator.open-cluster-management.io/v1 kind: MultiClusterHub metadata: annotations: installer.open-cluster-management.io/oadp-subscription-spec: '{"source": "redhat-operator-index"}'
apiVersion: operator.open-cluster-management.io/v1 kind: MultiClusterHub metadata: annotations: installer.open-cluster-management.io/oadp-subscription-spec: '{"source": "redhat-operator-index"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow redhat-operator-index
はカスタム名であり、非接続環境で Red Hat OpenShift Operator にアクセスするために定義および使用するCatalogSource
リソースの名前を表します。次のコマンドを実行して、catalogsource
を取得します。oc get catalogsource -A
oc get catalogsource -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は次の例のような内容になります。
NAMESPACE NAME DISPLAY TYPE PUBLISHER AGE openshift-marketplace acm-custom-registry Advanced Cluster Management grpc Red Hat 42h openshift-marketplace multiclusterengine-catalog MultiCluster Engine grpc Red Hat 42h openshift-marketplace redhat-operator-index grpc 42h
NAMESPACE NAME DISPLAY TYPE PUBLISHER AGE openshift-marketplace acm-custom-registry Advanced Cluster Management grpc Red Hat 42h openshift-marketplace multiclusterengine-catalog MultiCluster Engine grpc Red Hat 42h openshift-marketplace redhat-operator-index grpc 42h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.3.9. バックアップおよび復元 Operator の有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスターのバックアップおよび復元 Operator は、MultiClusterHub
リソースの初回作成時に有効にできます。cluster-backup
パラメーターは true
に設定します。Operator を有効にすると、Operator リソースがインストールされます。
MultiClusterHub
リソースがすでに作成されている場合には、MultiClusterHub
リソースを編集して、クラスターバックアップ Operator をインストールまたはアンインストールできます。クラスターバックアップ Operator をアンインストールする場合は、cluster-backup
を false
に設定します。
バックアップおよび復元 Operator が有効にされている場合には、MultiClusterHub
リソースは以下の YAML ファイルのようになります。
1.1.3.10. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- Velero を参照してください。
- サポートされている Velero ストレージプロバイダーのリストは、OpenShift Container Platform ドキュメントの AWS S3 互換のバックアップストレージプロバイダー を参照してください。
- DataProtectionApplication リソースの詳細を参照してください。
1.1.4. バックアップのスケジュール リンクのコピーリンクがクリップボードにコピーされました!
バックアップをスケジュールすることで、データが保護され、アクセス可能な状態を維持できるようになります。バックアップをスケジュールするには、次の手順を実行します。
次のコマンドを実行して、
backupschedule.cluster.open-cluster-management.io
リソースを作成します。oc create -f cluster_v1beta1_backupschedule.yaml
oc create -f cluster_v1beta1_backupschedule.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow cluster_v1beta1_backupschedule.yaml
リソースは、次のファイルのようになる場合があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
veleroSchedule
は必須のプロパティーで、バックアップをスケジュールする cron ジョブを定義します。前の例では、2 時間ごとにバックアップが作成されます。- 2
- オプション:
veleroTtl
は任意のプロパティーで、スケジュールされているバックアップリソースの有効期限を定義します。指定されていない場合には、Velero で設定された最大デフォルト値 (720h
) が使用されます。スケジュールされたバックアップは120 時間
後に削除されます。 - 3
- オプション:
useManagedServiceAccount
は、自動インポート機能を有効にして、復元操作でクラスターをインポートできるオプションのプロパティーです。true
に設定すると、自動インポート機能が有効になり、復元操作でクラスターがインポートされます。 - 4
- オプション:
paused
は、バックアップスケジュールを一時停止できるオプションのプロパティーです。true
に設定すると、バックアップスケジュールが一時停止され、このリソースによって作成されたすべての Velero スケジュールが削除されます。
backupschedule.cluster.open-cluster-management.io
リソースの状態をチェックします。3 つのschedule.velero.io
リソースの定義が表示されます。以下のコマンドを実行します。oc get BackupSchedule -n open-cluster-management-backup
oc get BackupSchedule -n open-cluster-management-backup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意: 復元操作は、復元シナリオ向けに別のハブクラスターで実行します。復元操作を開始するには、バックアップを復元するハブクラスターに
restore.cluster.open-cluster-management.io
リソースを作成します。注記: 新しいハブクラスターにバックアップを復元する場合は、バックアップを作成した以前のハブクラスターがシャットダウンされていることを確認します。実行中の場合には、前のハブクラスターは、マネージドクラスターの調整機能により、マネージドクラスターが使用できなくなったことが検出されるとすぐに、マネージドクラスターの再インポートが試行されます。
backupschedule.cluster.open-cluster-management.io
リソースは、バックアップの生成に使用される schedule.velero.io
リソースを 6 つ作成します。以下のコマンドを実行して、スケジュールされるバックアップのリストを表示します。
oc get schedules -A | grep acm
oc get schedules -A | grep acm
次の表が示すとおり、リソースはグループ内で個別にバックアップされます。
リソース | 説明 |
---|---|
| Hive 認証情報、Red Hat Advanced Cluster Management、ユーザーが作成した認証情報と ConfigMap を格納するバックアップファイル。 |
|
Red Hat Advanced Cluster Management リソースと汎用リソースのバックアップが 1 つずつ格納されています。これらのリソースには |
| バックアップが復元されるハブクラスターへのマネージドクラスター接続をアクティブにするリソースのみ格納されています。 |
注記: リソースバックアップ ファイルには、マネージドクラスター固有のリソースが含まれていますが、マネージドクラスターをハブクラスターに接続するリソースのサブセットは含まれていません。マネージドクラスターを接続するリソースは、アクティベーションリソースと呼ばれ、マネージドクラスターのバックアップに含まれます。新しいハブクラスターで 認証情報 と リソース のバックアップのみのバックアップを復元すると、新しいハブクラスターには、Hive API を使用して作成されたすべてのマネージドクラスターが切り離された状態で表示されます。インポート操作を使用してプライマリーハブクラスターにインポートされたマネージドクラスターは、アクティベーションデータがパッシブハブクラスターに復元された場合にのみ表示されます。マネージドクラスターは、バックアップファイルを作成した元のハブクラスターに引き続き接続されます。
アクティベーションデータが復元されると、Hive API を使用して作成されたマネージドクラスターのみが新しいハブクラスターに自動的に接続されます。その他のマネージドクラスターは、すべて Pending 状態になります。それらを新しいクラスターに手動で再割り当てする必要があります。
さまざまな BackupSchedule
ステータスの説明は、次の表を参照してください。
BackupSchedule ステータス | 説明 |
---|---|
|
|
|
エラーにより、 |
|
|
|
|
1.1.4.1. バックアップ競合の理解 リンクのコピーリンクがクリップボードにコピーされました!
ハブクラスターのステータスがパッシブハブクラスターからプライマリーハブクラスターに、またはプライマリーハブクラスターからパッシブに変更され、異なるハブクラスターが同じストレージの場所にデータをバックアップすると、バックアップの競合が発生する可能性があります。
その結果、最新のバックアップは、プライマリーハブクラスターではなくなったハブクラスターによって生成されます。BackupSchedule.cluster.open-cluster-management.io
リソースがまだ有効であるため、このハブクラスターは引き続きバックアップを生成します。
障害復旧テスト操作などの制御された環境で復元操作を実行する場合は、バックアップハブクラスターで BackupSchedule
paused
プロパティーを使用すると、バックアップの競合を防ぐことができます。新しいハブクラスターにリソースを復元する前に、BackupSchedule
リソースで paused=true
プロパティーを設定して、バックアップハブの BackupSchedule
リソースを一時停止します。
バックアップの競合を引き起こす可能性のある 2 つのシナリオは、次のリストを参照してください。
プライマリーハブクラスターが予期せず失敗する。これは、次の状況で発生します。
- プライマリーハブクラスターから初期ハブクラスターへの通信が失敗します。
- 最初のハブクラスターのバックアップデータは、セカンダリーハブクラスターと呼ばれるセカンダリーハブクラスターに復元されます。
-
管理者がセカンダリーハブクラスター上に
BackupSchedule.cluster.open-cluster-management.io
リソースを作成します。セカンダリーハブクラスターがプライマリーハブクラスターとなり、共通のストレージ場所にバックアップデータを生成します。 初期ハブクラスターが予期せず再び動作を開始します。
初期ハブクラスターでは
BackupSchedule.cluster.open-cluster-management.io
リソースがまだ有効になっているため、初期ハブクラスターはセカンダリーハブクラスターと同じストレージの場所にバックアップの書き込みを再開します。両方のハブクラスターが同じストレージ場所にバックアップデータを書き込んでいます。この保存場所から最新のバックアップを復元するハブクラスターは、セカンダリーハブクラスターデータではなく、初期ハブクラスターデータを使用する場合があります。
管理者は、セカンダリーハブクラスターをプライマリーハブクラスターにして、次の条件によって発生する災害シナリオをテストします。
- 初期ハブクラスターが停止します。
- 最初のハブクラスターのバックアップデータは、セカンダリーハブクラスターに復元されます。
-
管理者がセカンダリーハブクラスター上に
BackupSchedule.cluster.open-cluster-management.io
リソースを作成します。セカンダリーハブクラスターがプライマリーハブクラスターとなり、共通のストレージ場所にバックアップデータを生成します。 - 災害テストが完了したら、管理者は以前の状態に戻して、最初のハブクラスターを再びプライマリーハブクラスターにします。
セカンダリーハブクラスターがアクティブである間に、初期ハブクラスターが起動します。
BackupSchedule.cluster.open-cluster-management.io
リソースはセカンダリーハブクラスターでまだ有効になっているため、同じストレージの場所にバックアップが書き込まれ、バックアップデータが破損します。この場所から最新のバックアップを復元するハブクラスターは、初期ハブクラスターデータの代わりにセカンダリーハブクラスターデータを使用する場合があります。このシナリオでは、バックアップの競合の問題を回避するために、最初のハブクラスターを起動する前に、まずセカンダリーハブクラスターを停止するか、セカンダリーハブクラスター上のBackupSchedule.cluster.open-cluster-management.io
リソースを一時停止します。
管理者は、最初に初期ハブクラスターを停止せずに、セカンダリーハブクラスターをプライマリーハブクラスターにして、次の状態を発生させる災害シナリオをテストします。
- 初期ハブクラスターはまだ実行中です。
- マネージドクラスターのバックアップを含む、初期ハブクラスターのバックアップデータは、セカンダリーハブクラスターに復元されます。したがって、セカンダリーハブクラスターがアクティブクラスターになります。
-
BackupSchedule.cluster.open-cluster-management.io
リソースは初期ハブクラスターでまだ有効になっているため、同じストレージの場所にバックアップが書き込まれ、バックアップデータが破損します。たとえば、この場所から最新のバックアップを復元するハブクラスターは、セカンダリーハブクラスターデータではなく、初期ハブクラスターデータを使用する場合があります。データの破損を回避するために、初期ハブクラスターのBackupSchedule
リソースのステータスは自動的にBackupCollision
に変更になります。このシナリオでは、バックアップの衝突状態を回避するために、まず初期ハブクラスターを停止するか、初期ハブクラスター上のBackupSchedule.cluster.open-cluster-management.io
リソースを削除してから、セカンダリーハブクラスターでマネージドクラスターのデータを復元します。
1.1.4.2. バックアップの競合を防ぐ リンクのコピーリンクがクリップボードにコピーされました!
バックアップの競合を防止および報告するには、BackupSchedule.cluster.open-cluster-management.io
リソースの BackupCollision
状態を使用します。コントローラーは、保管場所の最新のバックアップが現在のハブクラスターから生成されたかどうかを定期的に確認します。そうでない場合は、別のハブクラスターが最近バックアップデータを保存場所に書き込んだことになり、ハブクラスターが別のハブクラスターと競合していることを示します。
バックアップ競合シナリオでは、現在のハブクラスターの BackupSchedule.cluster.open-cluster-management.io
リソースのステータスが BackupCollision
に設定されます。データの破損を防ぐために、このリソースは Schedule.velero.io
リソースを削除します。バックアップポリシーは BackupCollision
を報告します。
同じシナリオで、管理者はどのハブクラスターがストレージの場所に書き込むかを確認します。管理者は、無効なハブクラスターから BackupSchedule.cluster.open-cluster-management.io
リソースを削除する前にこの検証を実行します。その後、管理者は有効なプライマリーハブクラスターに新しい BackupSchedule.cluster.open-cluster-management.io
リソースを作成し、バックアップを再開できます。
バックアップの競合があるかどうかを確認するには、次のコマンドを実行します。
oc get backupschedule -A
oc get backupschedule -A
バックアップの競合がある場合は、出力は次の例のようになります。
NAMESPACE NAME PHASE MESSAGE openshift-adp schedule-hub-1 BackupCollision Backup acm-resources-schedule-20220301234625, from cluster with id [be97a9eb-60b8-4511-805c-298e7c0898b3] is using the same storage location. This is a backup collision with current cluster [1f30bfe5-0588-441c-889e-eaf0ae55f941] backup. Review and resolve the collision then create a new BackupSchedule resource to resume backups from this cluster.
NAMESPACE NAME PHASE MESSAGE
openshift-adp schedule-hub-1 BackupCollision Backup acm-resources-schedule-20220301234625, from cluster with id [be97a9eb-60b8-4511-805c-298e7c0898b3] is using the same storage location. This is a backup collision with current cluster [1f30bfe5-0588-441c-889e-eaf0ae55f941] backup. Review and resolve the collision then create a new BackupSchedule resource to resume backups from this cluster.
1.1.4.3. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
1.1.5. バックアップの復元 リンクのコピーリンクがクリップボードにコピーされました!
一般的な復元状況では、バックアップを実行するハブクラスターが使用できなくなり、バックアップされるデータを新しいハブクラスターに移動する必要があります。新しいハブクラスターでクラスター復元操作を実行します。この場合、バックアップが作成されたのとは異なるハブクラスターで復元操作を実行します。
バックアップが収集された同じハブクラスターでデータを復元する場合は、以前のスナップショットからデータを回復できます。その場合は、復元とバックアップ操作の両方が同じハブクラスターで実行されます。
バックアップを完全に復元するには、次の手順を実行します。
1.1.5.1. バックアップタイプの復元操作の使用 リンクのコピーリンクがクリップボードにコピーされました!
復元操作を使用して、バックアップ操作によって作成された 3 つのバックアップタイプすべてを復元します。特定の種類のバックアップ (マネージドクラスターのみ、ユーザー認証情報のみ、またはハブクラスターリソースのみ) のみをインストールするように選択します。
復元では、以下の 3 つの必要な spec
プロパティーを定義します。ここでは、バックアップしたファイルのタイプに対して復元ロジックが定義されます。
-
veleroManagedClustersBackupName
は、マネージドクラスターのアクティベーションリソースの復元オプションを定義するのに使用されます。 -
veleroCredentialsBackupName
は、ユーザーの認証情報の復元オプションを定義するために使用されます。 veleroResourcesBackupName
は、ハブクラスターリソース (Applications
、Policy
、その他のハブクラスターリソース (マネージドクラスターパッシブデータなど)) の復元オプションを定義するのに使用されます。前述のプロパティーの有効な値は次のとおりです。
-
latest
: このプロパティーは、このタイプのバックアップで使用可能な、最後のバックアップファイルを復元します。 -
skip
- このプロパティーは、現在の復元操作でこのタイプのバックアップの復元を試行しません。 -
<backup_name>
: このプロパティーは、名前で参照する指定のバックアップを復元します。
-
restore.cluster.open-cluster-management.io
で作成された restore.velero.io
リソースの名前は、<restore.cluster.open-cluster-management.io name>-<velero-backup-resource-name>
のテンプレートルールを使用して生成されます。以下の説明を参照してください。
-
restore.cluster.open-cluster-management.io
は、復元を開始する現在のrestore.cluster.open-cluster-management.io
リソースの名前です。 Velero-backup-resource-name
は、データの復元に使用される Velero バックアップファイルの名前です。たとえば、restore.cluster.open-cluster-management.io
リソースrestore-acm
はrestore.velero.io
復元リソースを作成します。フォーマットは、以下の例を参照してください。-
restore-acm-acm-managed-clusters-schedule-20210902205438
は、マネージドクラスターのアクティベーションデータのバックアップを復元するのに使用されます。このサンプルでは、リソースの復元に使用されるbackup.velero.io
バックアップ名はacm-managed-clusters-schedule-20210902205438
です。 -
restore-acm-acm-credentials-schedule-20210902206789
は、認証情報バックアップの復元に使用されます。このサンプルでは、リソースの復元に使用されるbackup.velero.io
バックアップ名はacm-managed-clusters-schedule-20210902206789
です。 -
restore-acm-acm-resources-schedule-20210902201234
は、アプリケーション、ポリシー、およびマネージドクラスターパッシブデータバックアップなどの他のハブクラスターリソースを復元するのに使用されます。このサンプルでは、リソースの復元に使用されるbackup.velero.io
バックアップ名はacm-managed-clusters-schedule-20210902201234
です。
-
注記: skip
がバックアップタイプに使用されている場合は、restore.velero.io
は作成されません。
以下の YAML サンプルで、クラスターの リストア
リソースを参照してください。この例では、利用可能な最新のバックアップファイルを使用して、3 つのタイプのバックアップファイルがすべて復元されています。
注記 Hive API によって作成されたマネージドクラスターのみが、マネージドクラスターのバックアップからの acm-managed-clusters
バックアップが別のハブクラスターに復元されるときに、新しいハブクラスターに自動的に接続されます。他のすべてのマネージドクラスターは Pending Import
状態のままであり、新しいハブクラスターにインポートし直す必要があります。詳細は、インポートしたマネージドクラスターの復元 を参照してください。
1.1.5.2. 最初のプライマリーハブへのデータの復元 リンクのコピーリンクがクリップボードにコピーされました!
クラスターでバックアップデータを復元する必要がある場合は、ユーザーが作成したリソースを使用して、プライマリーハブクラスターまたはハブクラスターでデータを復元する代わりに、新しいクラスターを作成します。
データを初期のプライマリーハブクラスターに復元すると、現在のハブクラスターとプライマリーハブクラスターの両方がマネージドクラスターにアクセスできるようになります。両方のハブクラスターが制御を取得しようとするため、マネージドクラスターはハブクラスター間を頻繁に行き来することになります。
復元操作前にユーザーが作成したリソースを含むハブクラスターでデータを復元する場合、その操作にリソースを含めることはできません。ハブクラスター上のデータには、利用可能なデータがすべて含まれているわけではありません。
障害復旧テストシナリオでは、プライマリーハブクラスターをパッシブクラスターとして使用します。障害復旧テストでは、パッシブハブでの復元操作のみを検証し、その後プライマリーハブクラスターを使用します。
ハブバックアップクラスターのみをテストし、プライマリーハブクラスターを使用して新しいリソースを作成しません。代わりに、バックアップデータはプライマリーハブクラスターからパッシブハブクラスターに一時的に移動されます。すべてのリソースを復元すると、最初のプライマリーハブクラスターを再びプライマリーハブクラスターにすることができます。この操作では、復元後の操作が実行され、マネージドクラスターがこのハブクラスターに戻されます。
重要: 障害復旧テストでは、初期のプライマリーハブクラスターに戻る前に、復元クラスターを停止します。復元クラスターを停止すると、データが復元されて元のプライマリーハブクラスターへ移動した後も、マネージドクラスターは元の状態に復帰しなくなります。
1.1.5.3. 新規ハブクラスターの準備 リンクのコピーリンクがクリップボードにコピーされました!
ハブクラスターでバックアップデータを復元する必要がある場合は、プライマリーハブクラスターまたは復元操作の前に以前のユーザーがリソースを作成したハブクラスターを使用する代わりに、新しいハブクラスターを作成します。
障害復旧シナリオでは、バックアップをパッシブハブクラスターに復元するときに、障害発生中に失敗したハブクラスターと同じハブクラスターが必要になります。アプリケーション、ポリシー、追加のマネージドクラスターなど、その他のユーザーリソースは必要ありません。
このハブクラスターでバックアップを復元する場合、このハブクラスターによって管理されるマネージドクラスターがあると、復元操作によってそれらのクラスターがデタッチされ、クラスターリソースが削除される可能性があります。復元操作では、復元されたバックアップに含まれないリソースをクリーンアップするためにこれを行います。その結果、このハブクラスターのコンテンツは最初のハブクラスターと同じになります。この場合、マネージドクラスターのワークロードがデタッチアクションによってデタッチされるため、ユーザーデータが失われる可能性があります。
新しいハブクラスターで復元操作を実行する前に、ハブクラスターを手動で設定し、初期ハブクラスターと同じ Operator をインストールする必要があります。Red Hat Advanced Cluster Management Operator は、初期ハブクラスターと同じ namespace にインストールし、DataProtectionApplication リソースを作成してから、初期ハブクラスターがデータをバックアップしたのと同じストレージの場所に接続する必要があります。
MultiClusterEngine
リソースへの変更を含め、Red Hat Advanced Cluster Management Operator によって作成された MultiClusterHub
リソースの最初のハブクラスターと同じ設定を使用します。
たとえば、初期ハブクラスターに Ansible Automation Platform、Red Hat OpenShift GitOps、cert-manager
などの他の Operator がインストールされている場合は、復元操作を実行する前にそれらをインストールする必要があります。これにより、新しいハブクラスターが初期のハブクラスターと同じ方法で設定されます。
1.1.5.4. 新しいバージョンのハブクラスターで復元操作を実行する リンクのコピーリンクがクリップボードにコピーされました!
バックアップが作成されたハブクラスターよりも新しいバージョンの Red Hat Advanced Cluster Management を使用するハブクラスターで復元操作を実行する場合でも、次の手順で復元操作を実行できます。
- 復元ハブクラスターで、バックアップが作成されたハブクラスターと同じバージョンの Operator をインストールします。
- 復元ハブクラスターでバックアップデータを復元します。
- 復元ハブクラスターで、アップグレード操作を使用して、使用するバージョンにアップグレードします。
1.1.5.5. 復元後のハブクラスターのクリーニング リンクのコピーリンクがクリップボードにコピーされました!
現在復元されているバックアップで既存のリソースが変更されている場合、Velero は既存のリソースを更新します。Velero はデルタリソースをクリーンアップしません。これは、以前の復元によって作成されたリソースであり、現在復元されているバックアップの一部ではありません。これにより、新しいハブクラスターでハブクラスターデータを復元するときに使用できるシナリオが制限されます。復元が 1 回だけ適用されない限り、新しいハブクラスターをパッシブ設定として確実に使用することはできません。ハブクラスターのデータは、復元されたリソースで利用できるデータを反映していません。
この制限に対処するために、Restore.cluster.open-cluster-management.io
リソースが作成されると、バックアップ Operator は、ハブクラスターをクリーンアップする復元後の操作を実行します。この操作は、現在復元されているバックアップの一部ではない、以前の Red Hat Advanced Cluster Management 復元によって作成されたすべてのリソースを削除します。
復元後のクリーンアップでは、cleanupBeforeRestore
プロパティーを使用して、クリーンアップするオブジェクトのサブセットを識別します。復元後のクリーンアップには、次のオプションを使用できます。
-
None
: クリーンアップは必要なく、Velero の復元を開始するだけです。真新しいハブクラスターではNone
を使用します。 -
CleanupRestored
: 現在復元されているバックアップの一部ではない、以前の Red Hat Advanced Cluster Management 復元によって作成されたすべてのリソースをクリーンアップします。 CleanupAll
: Red Hat Advanced Cluster Management バックアップの一部である可能性があるハブクラスター上のすべてのリソースを、復元操作の結果として作成されたものではない場合でもクリーンアップします。重要:
CleanupAll
オプションは、ユーザーが作成したコンテンツを含むすべてのハブクラスターデータを削除します。重要: 復元オプションの
excludedResource
、excludedNamespaces
、excludedResources
、または復元されたリソースを除外するその他のオプションを使用して除外した復元されたリソースが失われないようにするには、常にcleanupBeforeRestore = None
を使用してください。ベストプラクティス:
CleanupAll
オプションは使用しないでください。細心の注意を払って最後の手段としてのみ使用してください。CleanupAll
は、以前に復元されたバックアップによって作成されたリソースに加えて、ユーザーによって作成されたハブクラスター上のリソースもクリーンアップします。代わりに、CleanupRestored
オプションを使用して、ハブクラスターが災害シナリオのパッシブ候補として指定されている場合に、ハブクラスターのコンテンツを更新しないようにします。クリーンハブクラスターをパッシブクラスターとして使用します。
注記:
-
Velero は、復元されたバックアップにリソースがない場合に、velero 復元リソースのステータス
PartiallyFailed
を設定します。これは、対応するバックアップが空であるために作成されたrestore.velero.io
リソースのいずれかによりリソースが復元されない場合には、restore.cluster.open-cluster-management.io
リソースがPartiallyFailed
ステータスになる可能性があることを意味します。 -
syncRestoreWithNewBackups:true
を使用して新規バックアップが利用可能な場合にパッシブデータの復元を継続しない限り、restore.cluster.open-cluster-management.io
リソースは 1 回実行されます。この場合、同期サンプルで復元パッシブに従います。バックアップの確認中にパッシブリソースを復元する を参照してください。復元操作が完了し、同じハブクラスターで別の復元操作を実行する場合は、新しいrestore.cluster.open-cluster-management.io
リソースを作成する必要があります。 -
複数の
restore.cluster.open-cluster-management.io
リソースを作成できますが、いつでもアクティブにできるのは 1 つだけです。
1.1.5.6. バックアップの確認中にパッシブリソースを復元する リンクのコピーリンクがクリップボードにコピーされました!
新しいバックアップが利用可能かどうかを引き続き確認し、それらを自動的に復元しながら、restore-passive-sync
サンプルを使用してパッシブデータを復元します。新しいバックアップを自動的に復元するには、syncRestoreWithNewBackups
パラメーターを true
に設定する必要があります。また、最新のパッシブデータだけを復元する必要もあります。サンプルの例は、このセクションの最後にあります。
VeleroResourcesBackupName
および VeleroCredentialsBackupName
パラメーターを Latest
に設定し、VeleroManagedClustersBackupName
パラメーターを Skip
に設定します。VeleroManagedClustersBackupName
が latest
に設定された直後に、マネージドクラスターは新しいハブクラスターでアクティベートされ、プライマリーハブクラスターになります。
アクティベートされたマネージドクラスターがプライマリーハブクラスターになると、復元リソースが Finished
に設定され、true
に設定されていても syncRestoreWithNewBackups
は無視されます。
デフォルトでは、コントローラーは syncRestoreWithNewBackups
が true
に設定されると、30 分ごとに新規バックアップをチェックします。新しいバックアップが見つかった場合は、バックアップされたリソースを復元します。restoreSyncInterval
パラメーターを更新してチェックの期間を変更できます。
復元操作の完了後に同じ復元操作を再度実行する場合は、同じ spec
オプションで新しい restore.cluster.open-cluster-management.io
リソースを作成する必要があります。
たとえば、10 分ごとにバックアップをチェックする次のリソースを参照してください。
1.1.5.7. パッシブリソースを復元する リンクのコピーリンクがクリップボードにコピーされました!
パッシブ設定でハブクラスターリソースを復元するには、restore-acm-passive
サンプルを使用します。パッシブデータは、シークレット、ConfigMap、アプリケーション、ポリシー、およびすべてのマネージドクラスターカスタムリソースなどのバックアップデータで、マネージドクラスターとハブクラスター間の接続をアクティブ化しません。バックアップリソースは、認証情報のバックアップおよび復元リソースによりハブクラスターで復元されます。
以下のサンプルを参照してください。
1.1.5.8. アクティベーションリソースの復元 リンクのコピーリンクがクリップボードにコピーされました!
パッシブハブクラスターにアクティベーションデータを復元する前に、バックアップが作成された以前のハブクラスターをシャットダウンします。プライマリーハブクラスターがまだ実行中の場合は、このハブクラスターで実行されている調整手順に基づいて、使用できなくなったマネージドクラスターへの再接続を試行します。
ハブクラスターでクラスターを管理する場合は、restore-acm-passive-activate
サンプルを使用します。この場合、パッシブリソースを使用するハブクラスターで他のデータがすでに復元されていることを前提とします。
パッシブリソースを復元した方法に応じて、アクティベーションリソースを復元するいくつかのオプションがあります。
-
Restore passive resources while checking for backups to restore passive data セクションに記載されているように、
restore-acm-passive-sync cluster.open-cluster-management.io
リソースを使用した場合は、このリソースでveleroManagedClustersBackupName
の値をlatest
の値に更新します。その結果、マネージドクラスターリソースとrestore-acm-passive-sync
リソースが復元されます。 - パッシブリソースを 1 回限りの操作で復元した場合、またはリソースをまだ復元していない場合は、Restoring all resources セクションで指定されているように、すべてのリソースを復元することを選択します。
1.1.5.9. マネージドクラスターのアクティベーションデータの復元 リンクのコピーリンクがクリップボードにコピーされました!
cluster.open-cluster-management.io/backup: cluster-activation
ラベルを使用すると、マネージドクラスターのアクティベーションデータまたはその他のアクティベーションデータリソースは、マネージドクラスターのバックアップおよび resource-generic バックアップにより保存されます。アクティベーションデータが新しいハブクラスターに復元すると、マネージドクラスターは、復元が実行するハブクラスターによりアクティブに管理されます。Operator の使用方法は、バックアップのスケジュールと復元 を参照してください。
1.1.5.10. 全リソースの復元 リンクのコピーリンクがクリップボードにコピーされました!
すべてのデータを復元するには、次の restore-acm
サンプルを使用します。
ハブクラスターに restore.cluster.open-cluster-management.io
リソースを作成した後、次のコマンドを実行して復元操作のステータスを取得します。
oc describe -n open-cluster-management-backup restore-acm
oc describe -n open-cluster-management-backup restore-acm
1.1.5.11. インポートされたマネージドクラスターの復元 リンクのコピーリンクがクリップボードにコピーされました!
Hive API を使用してプライマリーハブクラスターに接続されたマネージドクラスターのみが、アクティベーションデータが復元される新しいハブクラスターに自動的に接続されます。これらのクラスターは、Clusters タブの Create cluster ボタンを使用するか、CLI を通じて、Hive API によってプライマリーハブクラスター上に作成されています。Import cluster ボタンを使用して最初のハブクラスターに接続されたマネージドクラスターは、アクティベーションデータが復元されると Pending Import
として表示され、新しいハブクラスターにインポートし直す必要があります。
Hive がマネージドクラスター kubeconfig
をハブクラスターのマネージドクラスター namespace に格納するため、Hive マネージドクラスターを新しいハブクラスターに接続できます。これは、新しいハブクラスターでバックアップおよび復元されます。次に、インポートコントローラーは、復元された設定を使用してマネージドクラスターのブートストラップ kubeconfig
を更新します。これは、Hive API を使用して作成されたマネージドクラスターでのみ使用できます。インポートされたクラスターでは使用できません。
復元操作中に新しいハブクラスターにインポートされたクラスターを再接続するには、BackupSchedule
で自動インポート機能を有効にします。詳細は、自動インポートの有効化 を参照してください。
1.1.5.12. 他の復元サンプルの使用 リンクのコピーリンクがクリップボードにコピーされました!
以下の YAML の例を参照して、さまざまなタイプのバックアップファイルを復元します。
3 種類のバックアップリソースをすべて復元します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow マネージドクラスターリソースのみを復元します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow acm-managed-clusters-schedule-20210902205438
バックアップを使用して、マネージドクラスターのリソースのみを復元します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記:
-
フェーズが
Enabled
またはRunning
の場合、restore.cluster.open-cluster-management.io
リソースはまだアクティブです。リソースの実行は完了すると、フェーズがFinished
に変わります。復元操作が完了したら、同じハブクラスターで別の復元操作を実行できます。 -
一度に実行できる
restore.cluster.open-cluster-management.io
は 1 つだけです。
-
フェーズが
velero.io.restore
の詳細オプションを使用して、復元するリソースを除外します。vb-managed-cls-2
マネージドクラスター namespace からのみリソースを復元し、グローバルMultiCluster
リソースを除外するには、velero.io.restore
spec
オプションを含む次のサンプルを使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Advanced Cluster Management 復元リソースを作成するときに、次の
velero.io.restore
spec
オプションを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記:
-
これらの Velero 復元フィルターのいずれかを設定する場合は、
cleanupBeforeRestore
をNone
に設定してください。これは、復元されるバックアップの一部であるが、適用されるフィルターによって復元対象外となるハブクラスターリソースのクリーンアップを回避するためです。
-
これらの Velero 復元フィルターのいずれかを設定する場合は、
1.1.5.13. 高度な復元オプションの使用 リンクのコピーリンクがクリップボードにコピーされました!
velero.io.restore
仕様では、高度な復元オプションが定義されています。これらの高度な復元オプションを使用すると、復元するリソースを除外できます。
たとえば、次の YAML サンプルを使用して、マネージドクラスターの namespace vb-managed-cls-2
からのみリソースを復元し、グローバルの Managedluster
リソースを除外することができます。
Red Hat Advanced Cluster Management for Kubernetes の復元リソースを作成するときに、velero.io.restore
仕様のオプションがさらに必要な場合は、次の復元フィルターを参照してください。
注記: どの Velero 復元フィルターでも、cleanupBeforeRestore
フィールドを None
に設定してください。これは、復元されるバックアップの一部であるが、適用されるフィルターによって復元対象外となるハブクラスターリソースをクリーンアップする必要性を回避するためです。
1.1.5.14. 復元イベントの表示 リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを使用して、復元イベントに関する情報を取得します。
oc describe -n open-cluster-management-backup <restore-name>
oc describe -n open-cluster-management-backup <restore-name>
イベント一覧は以下の例のようになります。
1.1.5.15. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- DataProtectionApplication を参照してください。
- 自動インポートシークレットを使用したクラスターのインポート を参照してください。
- バックアップのスケジュール を参照してください。
1.1.6. マネージドサービスアカウントを使用してクラスターを自動的に接続する リンクのコピーリンクがクリップボードにコピーされました!
バックアップコントローラーは、マネージドサービスアカウントコンポーネントを使用して、インポートされたクラスターを新しいハブクラスターに自動的に接続します。マネージドサービスアカウントは、マネージドクラスターの namespace ごとに、それぞれのインポートされたクラスターにバックアップされるトークンを作成します。トークンは klusterlet-bootstrap-kubeconfig
ClusterRole
バインディングを使用します。これにより、自動インポート操作でトークンを使用できるようになります。klusterlet-bootstrap-kubeconfig
ClusterRole
は、bootstrap-hub-kubeconfig
シークレットのみを取得または更新できます。Managed Service Account コンポーネントの詳細は、Managed Service Account とは を参照してください。
アクティベーションデータが新しいハブクラスターに復元されると、復元コントローラーは復元後の操作を実行し、Pending Import
状態のすべてのマネージドクラスターを探します。マネージドサービスアカウントによって生成された有効なトークンが見つかった場合、コントローラーはそのトークンを使用して auto-import-secret
を作成します。その結果、インポートコンポーネントはマネージドクラスターの再接続を試みます。クラスターにアクセスできる場合、操作は成功です。
1.1.6.1. Enabling automatic import リンクのコピーリンクがクリップボードにコピーされました!
マネージドサービスアカウントコンポーネントを使用した自動インポート機能は、デフォルトでは無効になっています。自動インポート機能を有効にするには、次の手順を実行します。
MultiClusterEngine
リソースでmanagedserviceaccount
enabled
パラメーターをtrue
に設定して、マネージドサービスアカウントコンポーネントを有効にします。以下の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow useManagedServiceAccount
パラメーターをtrue
に設定して、BackupSchedule.cluster.open-cluster-management.io
リソースの自動インポート機能を有効にします。以下の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow デフォルトのトークン有効期間は、ライフサイクル全体にわたってトークンを保存するすべてのバックアップに対してトークンが有効になる可能性を高くするために、
veleroTtl
の値の 2 倍に設定されます。場合によっては、オプションのmanagedServiceAccountTTL
プロパティーの値を設定することで、トークンの有効期間を制御する必要がある場合があります。生成されたトークンのデフォルトのトークン有効期限を更新する必要がある場合は、注意して
managedServiceAccountTTL
を使用してください。トークンの有効期限をデフォルト値から変更すると、バックアップのライフサイクル中に有効期限が切れるように設定されたトークンを使用してバックアップが作成される可能性があります。その結果、インポート機能はマネージドクラスターでは機能しません。重要: トークンの有効期間を制御する必要がない限り、
managedServiceAccountTTL
を使用しないでください。managedServiceAccountTTL
プロパティーの使用例は、次の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
自動インポート機能を有効にすると、バックアップコンポーネントは以下を作成して、インポートされたマネージドクラスターの処理を開始します。
-
managed-serviceaccount
という名前のManagedServiceAddon
。 -
auto-import-account
という名前のManagedServiceAccount
。 -
マネージドクラスターで
ManagedServiceAccount
トークンのklusterlet-bootstrap-kubeconfig
RoleBinding
を設定するための、各ManagedServiceAccount
のManifestWork
。
トークンは、マネージドサービスアカウントの作成時にマネージドクラスターにアクセスできる場合にのみ作成されます。それ以外の場合は、後でマネージドクラスターが利用可能になったときに作成されます。
1.1.6.2. 自動インポートに関する考慮事項 リンクのコピーリンクがクリップボードにコピーされました!
次のシナリオでは、新しいハブクラスターに移動するときに、マネージドクラスターが自動的にインポートされなくなる可能性があります。
-
ManagedServiceAccount
トークンを使用せずにハブバックアップを実行する場合 (たとえば、マネージドクラスターにアクセスできないときにManagedServiceAccount
リソースを作成する場合)、マネージドクラスターを自動インポートするためのトークンがバックアップに含まれません。 -
auto-import-account
シークレットトークンが有効でバックアップされている場合、自動インポート操作は失敗しますが、バックアップで使用可能なトークンの有効期限がすでに切れている場合、復元操作が実行されます。restore.cluster.open-cluster-management.io
リソースは、各マネージドクラスターの無効なトークンの問題を報告します。 復元時に作成される
auto-import-secret
はManagedServiceAccount
トークンを使用してマネージドクラスターに接続するため、マネージドクラスターはkube apiserver
情報も提供する必要があります。ManagedCluster
リソースにapiserver
を設定する必要があります。以下の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターがハブクラスターにインポートされると、
apiserver
は OpenShift Container Platform クラスターでのみ自動的にセットアップされます。EKS クラスターなどの他のタイプのマネージドクラスターでは、apiserver
を手動で設定する必要があります。そうしないと、自動インポート機能でクラスターが無視されます。その結果、クラスターを復元ハブクラスターに移動すると、クラスターはPending Import
状態のままになります。-
ManagedServiceAccount
シークレットにバックアップラベルが設定される前にバックアップスケジュールが実行された場合、ManagedServiceAccount
シークレットがバックアップに含まれない可能性があります。ManagedServiceAccount
シークレットには、作成時に設定されたクラスターopen-cluster-management.io/backup
ラベルがありません。このため、バックアップコントローラーはマネージドクラスターの namespace でManagedServiceAccount
シークレットを定期的に検索し、見つからない場合はバックアップラベルを追加します。
1.1.6.3. 自動インポートの無効化 リンクのコピーリンクがクリップボードにコピーされました!
BackupSchedule
リソースで useManagedServiceAccount
パラメーターを false
に設定することで、クラスターの自動インポート機能を無効にすることができます。以下の例を参照してください。
デフォルト値は false
です。値を false
に設定した後、バックアップ Operator は、ManagedServiceAddon
、ManagedServiceAccount
、および ManifestWork
を含む、作成されたすべてのリソースを削除します。リソースを削除すると、ハブクラスターとマネージドクラスターの自動インポートトークンが削除されます。
1.1.6.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- Managed Service Account の詳細は、Managed Service Account とは を参照してください。
1.1.7. バックアップまたは復元設定の検証 リンクのコピーリンクがクリップボードにコピーされました!
MultiClusterHub
リソースで cluster-backup
オプションを true
に設定すると、マルチクラスターエンジン Operator により、クラスターのバックアップおよび復元 Operator の Helm チャートがインストールされます。この Helm チャートは cluster-backup-chart
という名前です。このチャートにより、backup-restore-enabled
ポリシーと backup-restore-auto-import
ポリシーがインストールされます。これらのポリシーを使用して、バックアップおよび復元コンポーネントの問題に関する情報を表示します。
重要: ハブクラスターは、local-cluster
として自動的にインポートされ、自己管理されます。MultiClusterHub
リソースで、disableHubSelfManagement
を true
に設定して自己管理を無効にすると、ローカルクラスター機能が無効になり、backup-restore-enabled
ポリシーがハブクラスターに配置されず、ポリシーテンプレートによってレポートが生成されなくなります。
ハブクラスターがグローバルハブクラスターによって管理されている場合、またはマネージドクラスターインスタンスにインストールされている場合は、disableHubSelfManagement
を true
に設定することで、自己管理オプションが無効になります。このインスタンスの場合でも、ハブクラスターで backup-restore-enabled
ポリシーを有効にすることができます。ローカルクラスターを表す ManagedCluster
リソースに is-hub=true
ラベルを設定します。
backup-restore-enabled
ポリシーには、以下の制約を確認するテンプレートセットが含まれます。
OADP チャネルの検証
-
MultiClusterHub
でバックアップコンポーネントを有効にすると、クラスターバックアップおよび復元 Operator の Helm チャートは、OADP Operator をopen-cluster-management-backup
namespace に自動的にインストールできます。namespace に OADP Operator を手動でインストールすることもできます。 -
手動インストール用に選択した
OADP-channel
は、Red Hat Advanced Cluster Management のバックアップおよび復元 Operator Helm チャートによって設定されたバージョンと一致するか、それを超えている必要があります。 -
OADP Operator と Velero Custom Resource Definition (CRD) は
cluster-scoped
であるため、同じクラスター上に複数のバージョンを持つことはできません。open-cluster-management-backup
namespace とその他の namespace に同じバージョンをインストールする必要があります。 次のテンプレートを使用して、可用性を確認し、OADP のインストールを検証します。
-
oadp-operator-exists
: このテンプレートを使用して、OADP Operator がopen-cluster-management-backup
namespace にインストールされているかどうかを確認します。 -
oadp-channel-validation
: このテンプレートを使用して、open-cluster-management-backup
namespace の OADP Operator のバージョンが、Red Hat Advanced Cluster Management バックアップおよび復元 Operator によって設定されたバージョンと一致するか、それを超えていることを確認します。 -
custom-oadp-channel-validation
: このテンプレートを使用して、他の namespace の OADP Operator がopen-cluster-management-backup
namespace のバージョンと一致するかどうかを確認します。
-
-
Pod の検証
以下のテンプレートは、Pod のステータスでバックアップコンポーネントおよび依存関係の有無を確認します。
-
acm-backup-pod-running
テンプレートは、バックアップおよび復元 Operator Pod が実行されているかどうかを確認します。 -
oadp-pod-running
テンプレートは、OADP Operator Pod が実行されているかどうかを確認します。 -
velero-pod-running
テンプレートは Velero Pod が実行されているかどうかを確認します。
-
Data Protection Application の検証
-
data-protection-application-available
テンプレートは、DataProtectioApplicatio.oadp.openshift.io
リソースが作成されるかどうかを確認します。この OADP リソースは Velero 設定をセットアップします。
-
バックアップストレージの検証
-
backup-storage-location-available
テンプレートは、BackupStorageLocation.velero.io
リソースが作成され、ステータス値がAvailable
かどうかを確認します。これは、バックアップストレージへの接続が有効であることを意味します。
-
BackupSchedule
競合検証acm-backup-clusters-collision-report
テンプレートは、BackupSchedule.cluster.open-cluster-management.io
が現在のハブクラスターに存在する場合に、ステータスがBackupCollision
ではないことを検証します。これにより、バックアップデータをストレージの場所に書き込むときに、現在のハブクラスターが他のハブクラスターと競合していないことを確認できます。BackupCollision
の定義は、バックアップの競合の防止 を参照してください。
BackupSchedule
および復元ステータスの検証-
acm-backup-phase-validation
テンプレートは、BackupSchedule.cluster.open-cluster-management.io
が現在のクラスターに存在する場合に、ステータスがFailed
でないこと、または空
の状態であることを確認します。これにより、このクラスターがプライマリーハブクラスターであり、バックアップを生成している場合にBackupSchedule.cluster.open-cluster-management.io
ステータスが正常であることが保証されます。 -
同じテンプレートは、
Restore.cluster.open-cluster-management.io
が現在のクラスターに存在する場合に、ステータスが失敗
でないこと、または空
の状態にないことを確認します。これにより、このクラスターがセカンダリーハブクラスターであり、バックアップを復元する場合に、Restore.cluster.open-cluster-management.io
のステータスが正常であることが保証されます。
-
バックアップの存在検証
-
acm-managed-clusters-schedule-backups-available
テンプレートは、BackupStorageLocation.velero.io
で指定された場所でBackup.velero.io
リソースが利用可能かどうかを確認し、バックアップがBackupSchedule.cluster.open-cluster-management.io
リソースによって作成されるかどうかを確認します。これにより、バックアップが少なくとも 1 回実行され、バックアップと復元 Operator が検証されます。
-
完了するためのバックアップ
-
acm-backup-in-progress-report
テンプレートは、Backup.velero.io
リソースがInProgress
状態で停止していないか確認します。この検証が追加されるのは、多数のリソースがある場合、バックアップの実行中に velero Pod が再起動し、バックアップが完了せずに進行中のままになるためです。通常のバックアップ中、バックアップリソースは、実行中のどこかの時点で進行中になりますが、停止しているわけではなく、完了まで実行されます。スケジュールの実行中およびバックアップの進行中にacm-backup-in-progress-report
テンプレートが警告を報告するのは正常です。
-
バックアップスケジュールがプライマリーハブクラスターでバックアップを生成する
-
backup-schedule-cron-enabled
ポリシーテンプレートは、プライマリーハブクラスターが新しいバックアップを作成していないことをハブクラスター管理者に通知します。このポリシーは、BackupSchedule.cluster.open-cluster-management.io
リソースがプライマリーハブクラスターで無効になっているか、スケジュールされたバックアップを作成できないことを示しています。 -
BackupSchedule
cron ジョブ定義で新しいバックアップが作成されると想定されており、プライマリーハブクラスターのバックアップスケジュールで新しいバックアップが生成されなかった場合、backup-schedule-cron-enabled
ポリシーテンプレートは違反になります。これは、BackupSchedule
が存在しない、一時停止されている、またはBackupSchedule
cron ジョブプロパティーが更新されてバックアップの実行時間が長くなった場合に発生する可能性があります。新しいバックアップセットが作成されるまで、テンプレートは違反状態になります。 テンプレートの検証は次のように機能します。
-
BackupSchedule.cluster.open-cluster-management.io
はアクティブに実行され、ストレージの場所に新しいバックアップを保存します。この検証はbackup-schedule-cron-enabled
ポリシーテンプレートによって行われます。テンプレートは、ストレージの場所にvelero.io/schedule-name: acm-validation-policy-schedule
ラベルのついたBackup.velero.io
があることを確認します。 -
acm-validation-policy-schedule
バックアップは、バックアップの cron スケジュールの時間を設定すると期限切れになるように設定されています。バックアップを作成するために実行されている cron ジョブがない場合には、古いacm-validation-policy-schedule
バックアップは期限切れになり、新しいバックアップが作成されないので削除されます。その結果、acm-validation-policy-schedule
バックアップが存在しない場合は、バックアップを生成するアクティブな cron ジョブは存在しません。
-
-
backup-restore-auto-import
ポリシーには、次の制約を確認するテンプレートのセットが含まれています。
自動インポートのシークレット検証
-
auto-import-account-secret
テンプレートは、ManagedServiceAccount
シークレットが<your-local-cluster-name>
namespace 以外のマネージドクラスターの namespace に作成されているかどうかを確認します。バックアップコントローラーにより、インポートされたマネージドクラスターが定期的にスキャンされます。マネージドクラスターが検出されるとすぐに、バックアップコントローラーはマネージドクラスターの namespace にManagedServiceAccount
リソースを作成します。このプロセスにより、マネージドクラスター上でトークンの作成が開始されます。ただし、この操作の時点でマネージドクラスターにアクセスできない場合、ManagedServiceAccount
はトークンを作成できません。たとえば、マネージドクラスターが休止状態の場合、トークンを作成できません。したがって、この期間中にハブのバックアップが実行されると、マネージドクラスターを自動インポートするためのトークンがバックアップに不足します。
-
自動インポートのバックアップラベル検証
-
auto-import-backup-label
テンプレートは、<your-local-cluster-name>
namespace 以外のマネージドクラスターの namespace にManagedServiceAccount
シークレットが存在することを検証します。このテンプレートがManagedServiceAccount
シークレットを検出した場合、テンプレートはシークレットにcluster.open-cluster-management.io/backup
ラベルを適用します。このラベルは、Red Hat Advanced Cluster Management のバックアップにManagedServiceAccount
シークレットを含める場合に重要です。
-
1.1.7.1. サーバー側の暗号化を使用したデータの保護 リンクのコピーリンクがクリップボードにコピーされました!
サーバー側の暗号化は、保存場所でデータを受信するアプリケーションまたはサービスのデータ暗号化です。バックアップメカニズム自体は、転送中 (バックアップストレージの場所との間を移動するとき) または保存中 (バックアップストレージの場所のディスクに保存されている間) にデータを暗号化しません。代わりに、オブジェクトおよびスナップショットシステムのネイティブメカニズムに依存しています。
ベストプラクティス: 使用可能なバックアップストレージのサーバー側の暗号化を使用して、宛先でデータを暗号化します。バックアップには、認証情報や設定ファイルなど、ハブクラスターの外部に保存するときに暗号化する必要があるリソースが含まれています。
serverSideEncryption
パラメーターおよび kmsKeyId
パラメーターを使用して、Amazon S3 に保存されているバックアップの暗号化を有効にすることができます。詳細は、バックアップストレージの場所の YAML を参照してください。次のサンプルは、DataProtectionApplication
リソースを設定するときに AWS KMS キー ID を指定します。
他のストレージプロバイダーの設定可能なすべてのパラメーターは、Velero がサポートするストレージプロバイダー を参照してください。
1.1.7.2. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- バックアップストレージの場所の YAML を参照してください。
- Velero のサポート対象ストレージプロバイダー を参照してください。
- バックアップまたは復元設定の検証 に戻ってください。
1.1.8. 復元プロセス時にプライマリーハブクラスターをアクティブな状態に維持 リンクのコピーリンクがクリップボードにコピーされました!
復元操作は通常、災害が発生し、プライマリーハブクラスターに障害が発生した後に行われます。その結果、復元操作の開始時にプライマリーハブクラスターにアクセスできなくなります。
障害復旧テストを実行し、テスト中にプライマリーハブクラスターを停止しない場合は、ハブクラスターの復元中および復元後にプライマリーハブクラスターをアクティブな状態に保ちます。
プライマリーハブクラスターをアクティブのままにして、別のハブクラスターでハブクラスターデータを復元すると、最初のハブクラスターはマネージドクラスターにアクセスできます。その結果、両方のハブクラスターがマネージドクラスターをめぐって競合することになります。最初のハブクラスターがマネージドクラスターを制御するようになった場合、復元したハブクラスターで加えたポリシーおよびアプリケーションの変更が元に戻される可能性があります。
復元操作中および復元操作後にプライマリーハブクラスターをアクティブに保つ方法は、このままこのドキュメントを読み続けてください。
1.1.8.1. プライマリーハブクラスターの準備 リンクのコピーリンクがクリップボードにコピーされました!
復元操作を実行してハブクラスターをアクティブにする前に、プライマリーハブクラスターを準備する必要があります。
プライマリーハブクラスターを準備するには、次の手順を実行します。
paused
プロパティーをtrue
に設定して、BackupSchedule
リソースを一時停止します。以下の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: - プライマリーハブクラスターでバックアップスケジュールを一時停止せずに次の手順に進んだ場合、
import.open-cluster-management.io/disable-auto-import
アノテーションがリソースに設定されているときにバックアップを実行すると、このアノテーションが設定されたManagedCluster
リソースのバックアップを作成する可能性があります。-
import.open-cluster-management.io/disable-auto-import
アノテーションを使用してManagedCluster
リソースをバックアップすると、新しいハブクラスターでバックアップデータを復元するときに、マネージドクラスターは自動的にインポートできません。
-
プライマリーハブクラスターリソースにバックアップアノテーションのタグを付けます。以下の手順を実行します。
-
restore-acm.yaml
という名前のファイルを作成します。 以下の内容をファイルに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してファイルを適用し、復元操作を実行します。
oc -f apply restore-acm.yaml
oc -f apply restore-acm.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記:
Restore
リソースを実行すると、BackupSchedule
を有効にした場合にバックアップされるすべてのハブクラスターリソースにタグが付けられます。リソースには、velero.io/backup-name: backupName
ラベルがタグ付けされます。ここで、backupName
はプライマリーハブクラスターによって作成された最新のバックアップの名前に置き換えます。その結果、
cleanupBeforeRestore
オプションがCleanupRestored
に設定されたRestore
リソースを使用してプライマリークラスターで実行される復元操作は、これらのリソースを処理して、最新のバックアップに含まれない場合はすべてのリソースを削除します。
-
マネージドクラスターの自動インポートを無効にします。
-
復元ハブクラスターに移動するすべてのマネージドクラスターの
ManagedCluster
グローバルリソースに次のアノテーションを設定します。アノテーションを設定すると、マネージドクラスターが復元ハブクラスターに移動した後、バックアップハブクラスターがマネージドクラスターを回復できなくなります。
annotations: import.open-cluster-management.io/disable-auto-import: ''
annotations: import.open-cluster-management.io/disable-auto-import: ''
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
復元ハブクラスターに移動するすべてのマネージドクラスターの
1.1.8.2. 新しいハブクラスターでの復元操作 リンクのコピーリンクがクリップボードにコピーされました!
プライマリーハブクラスターを準備したら、新しいハブクラスターで復元操作を実行し、マネージドクラスターを移動します。バックアップハブクラスターで自動インポート機能が無効になっているため、マネージドクラスターは新しいハブクラスターに接続され、最初のハブクラスターに戻りません。
次の手順を実行して、新しいハブクラスターで復元操作を実行します。
restore-acm.yaml
ファイルに次の内容を追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記:
veleroManagedClustersBackupName
をlatest
に設定すると、マネージドクラスターが復元され、セカンダリーハブクラスターに接続されます。次のコマンドを実行してファイルを適用し、復元操作を実行します。
oc -f apply restore-acm.yaml
oc -f apply restore-acm.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.1.8.3. バックアップハブクラスター上のマネージドクラスターリソースのクリーンアップ リンクのコピーリンクがクリップボードにコピーされました!
復元後、マネージドクラスターが新しいハブクラスターに正常に接続したら、初期バックアップハブクラスターからマネージドクラスターリソースを消去します。リカバリーテストが完了した後にそのデータをバックアップに復元する場合は、リソースのクリーンアップをスキップしてください。
バックアップハブクラスターからマネージドクラスターをクリーンアップするには、次の手順を実行します。
-
ManagedCluster
グローバルリソースを削除する前に、プライマリーハブでマネージドクラスターのステータスがUnknown
であることを確認してください。ステータスがUnknown
でない場合、ワークロードはマネージドクラスターからアンインストールされます。 -
ManagedCluster
グローバルリソースを削除するかどうかを決定します。これを行うと、マネージドクラスターの namespace が削除されます。 -
復元操作を使用して新しいハブクラスターに移動した各マネージドクラスターのバックアップハブクラスターから
ManagedCluster
グローバルリソースを削除します。
重要:
-
ManagedCluster
グローバルリソースを削除する前に、プライマリーハブでマネージドクラスターのステータスがUnknown
であることを確認してください。ステータスがUnknown
でない場合、ワークロードはマネージドクラスターからアンインストールされます。 -
ManagedCluster
グローバルリソースを削除すると、マネージドクラスターの namespace も削除されます。
1.1.9. 高度な設定のバックアップと復元 リンクのコピーリンクがクリップボードにコピーされました!
次のセクションを参照して、バックアップと復元をさらに詳細に設定できます。
1.1.9.1. リソース要求および制限のカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Velero の初回インストール時に、Velero Pod は以下のサンプルで定義されるデフォルトの CPU およびメモリー制限に設定されます。
前のサンプルの制限は一部のシナリオでうまく機能しますが、クラスターが多数のリソースをバックアップする場合には更新する必要がある場合があります。たとえば、2000 個のクラスターを管理するハブクラスターでバックアップを実行すると、メモリー不足 (OOM) エラーが原因で、Velero Pod が失敗します。以下の設定では、このシナリオでバックアップを完了できます。
Velero Pod リソースの制限および要求を更新するには、DataProtectionApplication
リソースを更新し、Velero Pod の resourceAllocation
テンプレートを挿入する必要があります。以下のサンプルを参照してください。
1.1.9.2. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
-
DataProtectionApplication
パラメーターの詳細は、Red Hat OpenShift Container Platform ドキュメントの デフォルトの Velero クラウドプロバイダープラグイン トピックを参照してください。 - クラスターの使用状況に基づくバックアップおよび復元の CPU およびメモリー要件の詳細は、OpenShift Container Platform ドキュメントの 設定に必要な CPU とメモリー トピックを参照してください。
1.1.10. 既存のハブクラスターを復元ハブクラスターとして使用する場合の制約 リンクのコピーリンクがクリップボードにコピーされました!
復元操作の前に作成したリソースなど、既存のハブクラスターを復元ハブクラスターとして使用する場合は、次の制約を理解する必要があります。
- 既存のマネージドクラスターは、復元プロセス中にデタッチされます。
- 復元ハブクラスターには、バックアップハブクラスターよりも多くのリソースがあります。
1.1.10.1. 既存のマネージドクラスターが復元プロセス中にデタッチされる リンクのコピーリンクがクリップボードにコピーされました!
復元操作に使用する予定のハブクラスターがすでにクラスターを管理しており、cleanupBeforeRestore
オプションを CleanupRestored
に設定して復元操作を実行すると、次の結果になることが予想されます。
-
ManagedCluster
リソースが復元されたバックアップによって作成された場合、リソースにはvelero.io/backup-name: backupName
ラベルアノテーションが設定されます。ユーザーが復元操作を実行し、cleanupBeforeRestore=CleanupRestored
オプションを使用すると、マネージドクラスターはハブクラスターからデタッチされ、これらのマネージドクラスター上のワークロードがクリーンアップされます。 -
ユーザーが
ManagedCluster
リソースを作成した場合、リソースにvelero.io/backup-name: backupName
ラベルアノテーションは設定されません。復元操作を実行し、cleanupBeforeRestore=CleanupRestored
オプションを使用すると、リソースが復元された現行バックアップの一部でない場合でも、マネージドクラスターリソースはクリーンアップされません。
1.1.10.2. 復元ハブクラスターには、バックアップハブクラスターよりも多くのリソースがある リンクのコピーリンクがクリップボードにコピーされました!
以前にユーザーが作成したデータを使用してハブクラスターを復元し、復元操作の cleanupBeforeRestore
オプションが CleanupRestored
に設定されている場合、復元ハブクラスターのリソースはプライマリーハブクラスターのリソースと一致しません。ユーザーデータには、policy
、application
、credential
、またはユーザーが定義したカスタムリソースのリソースが含まれます。リソースは、ユーザーが作成したもので、以前のバックアップによって作成されたものではないため、クリーンアップされません。
既存のハブクラスターを復元ハブクラスター設定に使用し、復元の完了後にハブクラスターの内容がバックアップハブクラスターと同じになることが予想される場合は、ハブクラスターバックアップに含めるリソースにタグを付けます。詳細は、リソースのタグ付け を参照してください。
1.1.11. リソースのタグ付け リンクのコピーリンクがクリップボードにコピーされました!
既存のハブクラスターを復元クラスターとして使用するには、復元ハブクラスター上のユーザー作成リソースにタグを付けます。これにより、復元ハブクラスターとバックアップハブクラスター間で同じコンテンツが確保されます。
既存のハブクラスターをハブクラスター設定の復元に使用する場合は、ハブクラスターバックアップの一部にするリソースに velero.io/backup-name: backupName
ラベルアノテーションのタグを付けます。リソースに Velero アノテーションをタグ付けすると、以前の復元によって生成されたものとしてマークされます。
1.1.11.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- 復元操作の前に作成したリソースを使用して、既存のハブクラスターを復元ハブクラスターとして使用する場合の制約を理解している。既存のハブクラスターを復元ハブクラスターとして使用する場合の制約 を参照してください。
-
復元ハブクラスターで、
DataProtectionApplication
リソースを更新し、ストレージの場所を新しい一時的な場所に設定する。復元ハブクラスターリソースにタグを付けるために使用されるバックアップを、バックアップハブクラスターと同じストレージの場所に作成しないでください。 - リソースにタグを付ける前に、ストレージの場所をバックアップハブクラスターとは別の場所に設定してください。
1.1.11.2. velero ラベルの付いたリソースのタグ付け リンクのコピーリンクがクリップボードにコピーされました!
復元ハブクラスター上のユーザーが作成したリソースに velero.io/backup-name: backupName
ラベルのタグを付けるには、復元ハブクラスターで次の手順を実行します。
次の YAML を使用して、これらすべてのハブクラスターリソースを含むバックアップを生成する
BackupSchedule
リソースを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
BackupSchedule
によってハブクラスターバックアップリソースが作成され、リソースのステータスがCompleted
になっていることを確認します。 schedule-acm-msa BackupSchedule
でpaused=true
プロパティーを設定して、BackupSchedule
スケジュールを一時停止し、バックアップの生成を停止します。注意:
BackupSchedule
が有効になっている場合、ハブクラスターで復元操作を実行することはできません。次の YAML を使用して復元操作を実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Operator は、ハブクラスターバックアップに含まれる各リソースを調べ、velero.io/backup-name: backupName
のタグを付けます。ここで、backupName
は最新のバックアップの名前です。
リソースにタグを付けた後、ハブクラスターを復元クラスターとして使用できます。DataProtectionApplication
の保存場所を更新してバックアップハブクラスターの保存場所を参照するようにすることで、プライマリーハブクラスターからデータを復元できるようになり、ハブクラスターのバックアップリソースを使用する復元操作を実行できるようになりました。
すべての復元ハブクラスターリソースには velero.io/backup-name ラベル
のタグが付いているため、ハブクラスターは以前の復元によって生成されたものとして表示されます。したがって、cleanupBeforeRestore
オプションを CleanupRestored
に設定して既存のハブクラスターで実行する復元操作では、復元されたバックアップに含まれないデータが消去されます。
重要:
-
以前の復元操作によって作成された復元ハブクラスター上に、復元されたバックアップに含まれないマネージドクラスターがある場合は、
cleanupBeforeRestore
オプションをCleanupRestored
に設定して復元操作を使用しないでください。そうしないと、復元ハブクラスター上のマネージドクラスターがハブクラスターからデタッチされ、マネージドクラスターのリソースが削除されます。 復元ハブクラスターのリソースがバックアップハブクラスターのリソースよりも多い場合、次の状況では既存のハブクラスターを復元ハブクラスターとして使用できます。
- この復元ハブクラスターにはマネージドクラスターがない。
- 復元ハブクラスターにはマネージドクラスターがあり、復元ハブクラスターのユーザーデータが、復元されたバックアップで使用可能なデータと同じであると必要はない。
- 復元ハブクラスターのマネージドクラスターの名前は、バックアップハブクラスターのマネージドクラスターの名前と競合しない。
1.1.12. 復元後に初期ハブクラスターに戻る リンクのコピーリンクがクリップボードにコピーされました!
このシナリオでは、プライマリーハブクラスターが使用できなくなり、新しいハブクラスターでハブクラスターデータを復元する必要がある障害のシミュレーションとして障害復旧テストを実行します。このシミュレーションでは、バックアップデータが新しいハブクラスターに復元され、すべてのデータが正常に復元されたことを確認する必要があります。
必要なテストをすべて完了したら、プライマリーハブクラスターをアクティブハブクラスターとして使用して最初のハブクラスターに戻ります。これを行うには、データを最初のハブクラスターに復元します。このアクションは、復元操作のタイミングを制御できるため、制御された復元操作と呼ばれます。プライマリーハブクラスターを準備するために必要な手順を実行して、障害復旧テストの完了後にハブクラスターを再利用できるようにします。
1.1.12.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
復元操作のためにバックアップハブクラスターを準備して復元を実行するには、復元プロセス中にプライマリーハブクラスターをアクティブに保つ ドキュメントの内容を完了します。
1.1.12.2. 新しいハブクラスターをアクティブハブクラスターにする リンクのコピーリンクがクリップボードにコピーされました!
シミュレーションを開始するには、次の手順を実行して、新しいハブクラスターをアクティブハブクラスターにする必要があります。
- 新しいハブクラスターで復元操作を実行して、アクティブなハブクラスターにします。
- マネージドクラスターが新しいハブクラスターに接続されていることを確認するには、クラスターコンソールからマネージドクラスターのステータスを確認します。
- 新しいハブクラスターで障害復旧シミュレーションテストを実行します。
1.1.12.3. プライマリーハブクラスターに戻る リンクのコピーリンクがクリップボードにコピーされました!
障害復旧テストが完了したら、プライマリーハブクラスターに戻り、それをクラスターフリートを管理するアクティブハブクラスターにできます。そうする場合は、次のセクションの内容を完了してプライマリークラスターに戻ります。
1.1.12.3.1. 復元ハブクラスターでバックアップを作成する リンクのコピーリンクがクリップボードにコピーされました!
データを初期ハブクラスターに復元するには、次の手順を実行して、復元ハブクラスターにバックアップを作成します。
復元ハブクラスターで、次のリソースを適用します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Red Hat Advanced Cluster Management バックアップが生成され、そのステータスが
Complete
になっていることを確認します。
1.1.12.3.2. 移行のための復元ハブクラスターを準備する リンクのコピーリンクがクリップボードにコピーされました!
復元ハブクラスターを初期ハブクラスターに戻す準備をするには、復元ハブクラスターで次の手順を実行します。
-
schedule-acm-msa BackupSchedule
リソースでpaused=true
プロパティーを設定してバックアップスケジュールを一時停止します。 -
プライマリーハブクラスターに戻された
ManagedCluster
リソースが初期ハブクラスターに接続されないようにするには、すべてのManagedCluster
リソースにimport.open-cluster-management.io/disable-auto-import: ''
アノテーションを追加します。
1.1.12.3.3. 初期ハブクラスターをアクティブハブクラスターにする リンクのコピーリンクがクリップボードにコピーされました!
初期ハブクラスターをアクティブハブクラスターにすると、すべてのマネージドクラスターが初期ハブクラスターに戻され、初期ハブクラスターによって管理されるようになります。これを行うには、次の手順を実行します。
- 初期ハブクラスターに移動します。
次の復元リソースを適用して、セカンダリーハブクラスターバックアップからすべてのリソースを復元します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記:
cleanupBeforeRestore
プロパティーをCleanupRestored
に設定すると、すべてのリソースが復元された後にクリーンアップ操作が実行されます。このクリーンアップ操作により、復元されたバックアップに含まれないハブリソースがすべて削除されます。
1.1.12.3.4. プライマリーハブクラスターでバックアップスケジュールを有効にする リンクのコピーリンクがクリップボードにコピーされました!
これで初期ハブクラスターが再びプライマリーハブクラスターになりました。次に以下の手順を実行して、プライマリーハブクラスターでバックアップスケジュールを有効にします。
- プライマリーハブクラスターに移動します。
次の
BackupSchedule
リソースを適用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記: 2 番目のハブクラスターは、
active-passive
設定のセカンダリーハブクラスターとして再度使用できます。
1.1.13. ポリシーを使用した Red Hat OpenShift Virtualization のバックアップと復元の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Advanced Cluster Management のバックアップおよび復元コンポーネントを使用して、OpenShift Virtualization リソースのバックアップと復元に使用できる Red Hat Advanced Cluster Management のポリシーをインストールします。OpenShift APIS for Data Protection (OADP) を使用して仮想マシンをバックアップおよび復元できます。仮想マシンをバックアップした後、ハブクラスターまたはマネージドクラスターで仮想マシンを実行および復元できます。
このような OpenShift Virtualization 用の Red Hat Advanced Cluster Management のポリシーは、次のバックアップおよび復元ストレージオプションをサポートしています。
- Container Storage Interface (CSI) バックアップ
- DataMover による Container Storage Interface (CSI) バックアップ
以下のオプションはサポートされていません。
- ファイルシステムのバックアップと復元
- ボリュームスナップショットのバックアップと復元
ポリシーを設定し、バックアップスケジュールを有効にするか、仮想マシンの復元操作を実行するには、次のセクションの手順を完了してください。
1.1.13.1. 仮想マシンのバックアップと復元 リンクのコピーリンクがクリップボードにコピーされました!
次の手順を実行すると、クラスター上で実行されている仮想マシンをバックアップしたり、クラスターに仮想マシンを復元したりできます。
-
MultiClusterHub
のcluster-backup
パラメーターをtrue
に設定して、ハブクラスター上のバックアップコンポーネントを有効にします。 cluster-name
クラスターにポリシーを適用するために、次の YAML サンプルを適用して、ManagedCluster
リソースにacm-virt-config
ラベルを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ラベルアノテーションを介して渡される
acm-dr-virt-config
は、acm-virt-config
ConfigMap です。acm-dr-virt-config
ConfigMap セクションで、OADP とバックアップストレージの場所を設定する方法を参照してください。
仮想マシンをバックアップするか復元するかに応じて、次の手順を実行します。
-
仮想マシンをバックアップするには、
cluster.open-cluster-management.io/backup-vm
をkubevirt.io.VirtualMachine
リソースに追加します。kubevirt.io.VirtualMachine
リソースは、次の YAML サンプルのようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
仮想マシンを復元するには、
acm-dr-virt-restore-config
セクションの説明に従って、acm-dr-restore-config
ConfigMap を更新します。
-
仮想マシンをバックアップするには、
1.1.13.2. ハブクラスターにインストールされる仮想化ポリシー リンクのコピーリンクがクリップボードにコピーされました!
バックアップ Operator を有効にすると、Red Hat Advanced Cluster Management のポリシーと ConfigMap
のセットがハブクラスターにインストールされます。ポリシーを無効にするか、クラスターから削除すると、ポリシーによって作成されたすべてのリソースが削除されます。利用可能なさまざまな種類のポリシーの詳細を確認するには、次のセクションを参照してください。
1.1.13.2.1. インストールポリシー リンクのコピーリンクがクリップボードにコピーされました!
acm-dr-virt-install
インストールポリシーは、このポリシーが適用されているクラスターに OADP をインストールし、oadp.openshift.io.DataProtectionApplication
リソースを設定します。クラスターがハブクラスターである場合は、OADP が open-cluster-management-backup
namespace にインストールされていること、および DataProtectionApplication
リソースが存在し、必要な設定になっていることを確認します。このポリシーは、ハブクラスターに OADP をインストールすることも、DataProtectionApplication
リソースを作成することもありません。
MultiClusterHub
リソースで cluster-backup
オプションを有効にすると、バックアップチャートによって OADP がインストールされます。cluster-backup-option
を有効にすると、ハブクラスターに DataProtectionApplication
が作成されます。
次のインストールポリシーテンプレートと説明を参照してください。
- インストールポリシーテンプレート
テンプレート | 説明 |
|
|
| クラスターに OADP バージョンがインストールされているか、またそれがポリシーによってインストールされるバージョンと一致しているかどうかを確認します。 |
|
|
|
OADP がインストールされる namespace を作成します (この namespace が検出されない場合)。OADP シークレットをコピーし、OADP をインストールします (マネージドクラスターの場合のみ)。 |
1.1.13.2.2. バックアップポリシー リンクのコピーリンクがクリップボードにコピーされました!
acm-dr-virt-backup
バックアップポリシーは、ラベル cluster.open-cluster-management.io/backup-vm: schedule_cron_name
を持つ kubevirt.io.VirtualMachine
リソースをバックアップします。
次のバックアップポリシーテンプレートと説明を参照してください。
- バックアップポリシーテンプレート
テンプレート | 説明 |
|
仮想マシン |
|
スケジュールが一時停止されていない場合に、ステータスが |
|
|
1.1.13.2.3. 復元ポリシー リンクのコピーリンクがクリップボードにコピーされました!
acm-dr-virt-restore
復元ポリシーは、UID によって kubevirt.io.VirtualMachine
リソースを復元します。このポリシーは acm-dr-virt-config
ConfigMap の restore_hub_config_name
プロパティーによって識別される ConfigMap の情報を使用して、クラスターに Velero リストアリソースを作成します。
次の復元ポリシーテンプレートと説明を参照してください。
- 復元ポリシーテンプレート
テンプレート | 説明 |
|
|
|
|
1.1.13.3. ConfigMaps によるポリシーの定義 リンクのコピーリンクがクリップボードにコピーされました!
ハブクラスターにポリシーをインストールすると、ハブクラスターの open-cluster-management-backup
namespace に次の ConfigMap
が作成されます。ハブクラスターまたはマネージドクラスターに仮想化ポリシーを適用すると、次の ConfigMap
によって仮想化ポリシーのバックアップおよび復元設定が定義されます。
1.1.13.3.1. acm-dr-virt-config ConfigMap の定義 リンクのコピーリンクがクリップボードにコピーされました!
acm-dr-virt-config
ConfigMap は、OADP の設定と、バックアップまたは復元操作に関連するその他の設定を定義します。このリソースの名前は、ポリシーが適用されている ManagedCluster
に設定されている acm-virt-config
ラベルの値として使用できます。また、acm-dr-virt-config
をサンプルとして使用する新しい ConfigMap
リソースを作成し、新しい ConfigMap
リソースを使用してクラスターに仮想化ポリシーを配置することもできます。
マネージドクラスターまたはハブクラスターに仮想化ポリシーを適用するには、次の手順を実行します。
acm-dr-virt-config
を使用するか、または、例としてacm-dr-virt-config
ConfigMap を使用して、ハブクラスターのopen-cluster-management-backup
namespace に新しいConfigMap
リソースを作成します。この例では、ConfigMap の名前はacm-dr-virt-config-new
です。-
OADP によって作成されたバックアップが保存されるストレージ場所と一致するように
dpa_spec
セクションを更新します。この更新は必須です。 -
オプション: OADP バージョンやチャネルなど、
acm-dr-virt-config-new
ConfigMap で使用可能なその他のプロパティーを更新します。
-
OADP によって作成されたバックアップが保存されるストレージ場所と一致するように
-
ManagedCluster
リソースにacm-virt-config=acm-dr-virt-config-new
ラベルを追加します。acm-virt-config
ラベルの値は、作成した ConfigMap の名前です。
ManagedCluster
リソースの例は、次の YAML サンプルを参照してください。acm-dr-virt-config-new
ConfigMap を使用するように仮想化バックアップラベルが設定されています。
詳細は、次の表を参照してください。
-
acm-dr-virt-install
ポリシーの ConfigMap プロパティー
名前 | 説明 | 型 | デフォルト値 | 任意 |
| チャネルは、OpenShift Container Platform クラスターのバージョンに基づいて、サポートされている OADP バージョンにデフォルト設定されます。このプロパティーを使用してデフォルト値を上書きします。 | 文字列 | なし | はい |
|
OADP チャネルの名前。カスタムインストールの場合はこのプロパティーを設定します (例: | 文字列 |
| はい |
|
OADP サブスクリプション。カスタムインストールの場合はこのプロパティーを設定します (例: | 文字列 |
| はい |
|
OADP サブスクリプションのソース。カスタムインストールの場合はこのプロパティーを設定します (例: | 文字列 |
| はい |
| OADP サブスクリプションの startingCSV。 | 文字列 | なし | はい |
| OADP インストールプラン。 | 文字列 | 自動 | はい |
| OADP がインストールされるマネージドクラスターの namespace。 | 文字列 | なし | いいえ |
|
マネージドクラスターで使用する OADP シークレットの名前。この名前を持つシークレットが、ハブクラスターの | 文字列 | なし | いいえ |
|
Velero の認証情報名を設定するときに、マネージドクラスター上の OADP | JSON | なし | いいえ |
|
マネージドクラスターに作成される | 文字列 | なし | いいえ |
|
| JSON | なし | いいえ |
-
acm-dr-virt-backup
ポリシーの ConfigMap プロパティー
名前 | 説明 | 型 | デフォルト値 | 任意 |
| バックアップの有効期限。 | 文字列 |
| はい |
|
仮想化バックアップのスケジュールを一時停止するには、 | 文字列 | False | はい |
|
有効な cron ジョブスケジュールを定義するために使用される ConfigMap の名前。この名前を持つ ConfigMap が、ハブクラスターの | 文字列 | なし | はい |
-
acm-dr-virt-restore
ポリシーの ConfigMap プロパティー
名前 | 説明 | 型 | デフォルト値 | 任意 |
|
復元操作を定義するために使用される ConfigMap の名前。この名前を持つ ConfigMap が、ハブクラスターの | 文字列 | なし | いいえ |
1.1.13.3.2. acm-dr-virt-schedule-cron ConfigMap の定義 リンクのコピーリンクがクリップボードにコピーされました!
acm-dr-virt-schedule-cron
ConfigMap を使用して、仮想マシンのバックアップをスケジュールするときに使用する有効な cron ジョブスケジュールを定義します。acm-dr-virt-schedule-cron
ConfigMap は、open-cluster-management-backup
namespace 内のハブクラスターバックアップコンポーネントによって作成され、次の YAML を内容として含んでいます。
acm-dr-virt-schedule-cron
ConfigMap によって作成されたスケジュールのいずれかを使用して、kubevirt.io.VirtualMachine
のバックアップスケジュールを設定できます。たとえば、毎日午前 8 時に仮想マシンをバックアップする場合は、仮想マシンリソースに次のラベルを追加します。
この acm-dr-virt-schedule-cron
ConfigMap はハブクラスターバックアップコンポーネントによって作成および管理されるため、既存の cron プロパティーを変更または削除できません。プロパティーはコンテンツの調整時に再作成されます。既存のプロパティーに新しいプロパティーを追加することだけは可能です。たとえば、毎週土曜日に実行する cron ジョブを作成する場合は、既存の acm-dr-virt-schedule-cron
プロパティーに every_sunday: "0 0 * * SAT"
というラベルを追加します。
1.1.13.3.3. acm-dr-virt-restore-config ConfigMap の定義 リンクのコピーリンクがクリップボードにコピーされました!
acm-dr-virt-restore-config
ConfigMap を使用して、acm-dr-virt-restore
ポリシーによって実装される復元操作を定義します。ConfigMap を作成するには、open-cluster-management-backup
namespace のハブクラスターバックアップコンポーネントを使用します。
詳細な復元操作の例は、次の YAML サンプルを参照してください。
- 1
2a054d24-3235-4249-9c81-f58ebc6110c7
は、復元操作が完了したクラスター ID です。acm-rho-virt-schedule-every-10-hours-20250120230438
は、復元操作の例で使用されるバックアップの名前です。- 2
restore-20250120230438
は、この復元操作の結果として作成されるRestore
リソースの名前です。- 3
2a054d24-3235-4249-9c81-f58ebc6110c7
は、復元するacm-rho-virt-schedule-every-10-hours-20250120230438
バックアップでバックアップされた仮想マシンの UID です。- 4
namespaceMapping
はオプションのプロパティーであり、初期リソースとは異なる namespace 内のリソースを復元するために使用されます。マップに含まれていないソース namespace は、同じ名前の namespace に復元されます。backup-ns-1=restore-ns-1、backup-ns-2=restore-ns-2
は、スペースで区切られた namespace マッピングのリストです。このサンプルでは、backup-ns-1
namespace 内で作成されたバックアップリソースがrestore-ns-1
namespace 内で復元されます。復元クラスターにrestore-ns-1
が存在しない場合は作成されます。同様に、backup-ns-2
内で作成されたリソースはrestore-ns-2
namespace 内で復元されます。
1.1.13.4. 復元ポリシーを使用した復元操作の作成 リンクのコピーリンクがクリップボードにコピーされました!
復元操作のために仮想化ポリシーをインストールする場合は、次の状況を考慮してください。
-
acm-dr-virt-restore-config
ConfigMap のclusterID_restoreName
プロパティーを空の値に設定すると、clusterID
を持つクラスター上のacm-dr-virt-restore
ポリシーによって作成された復元リソースが削除されます。 -
acm-dr-virt-restore-config
ConfigMap のclusterID_restoreName
プロパティーを空でない値に設定すると、acm-dr-virt-restore
ポリシーによって VeleroRestore
リソースが作成されます。Velero 復元リソースの名前は、clusterID_restoreName
値と同じになります。この名前を持つ復元リソースが復元クラスターから削除されると、acm-dr-virt-restore
ポリシーによってリソースが再作成され、復元操作が再度実行されます。 次のアクションを検討してください。
- 復元を再度実行しない場合は、復元リソースを削除しないでください。
-
復元操作の開始が確認されたら
acm-dr-virt-restore-config
ConfigMap のclusterID_restoreName
パラメーターの値を削除します。これを行うと、acm-dr-virt-restore
ポリシーを無効にして再度有効にしたときに、復元操作を再実行する必要がなくなります。acm-dr-virt-restore
ポリシーを無効にすると、復元クラスター上でこのポリシーによって作成されたすべてのリソースがクリーンアップされ、ポリシーを再度有効にしたときに再作成されます。
1.2. VolSync の永続ボリューム複製サービス リンクのコピーリンクがクリップボードにコピーされました!
VolSync は、レプリケーションの互換性がないストレージタイプが指定されたクラスター全体、または 1 つのクラスター内の永続ボリュームの非同期レプリケーションを有効にする Kubernetes Operator です。これは Container Storage Interface (CSI) を使用して互換性の制限を解消します。VolSync Operator を環境にデプロイした後、それを活用して永続データのコピーを作成および保守できます。
重要: VolSync は、Filesystem
の volumeMode
を使用した永続ボリューム要求の複製のみをサポートします。volumeMode
を選択しない場合、デフォルトで Filesystem
になります。
1.2.1. VolSync を使用した永続ボリュームの複製 リンクのコピーリンクがクリップボードにコピーされました!
サポート対象の 3 つの方法を使用して、VolSync で永続ボリュームを複製できます。これは、rsync、rsync-tls、restic、または Rclone などの所有する同期ロケーションの数により異なります。
1.2.1.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
クラスターに VolSync をインストールする前に、以下の要件が必要です。
- サポートされている Red Hat Advanced Cluster Management ハブクラスター上に設定された Red Hat OpenShift Container Platform 環境
- ソース永続ボリュームに使用するストレージドライバーは、CSI 互換であり、スナップショットをサポートできる必要があります。
rsync-tls
ムーバーを使用してクラスター間でデータをレプリケートする場合は、次の要件を満たす必要があります。- 同じ Red Hat Advanced Cluster Management ハブクラスターに対して 2 つ以上のマネージドクラスター
-
VolSync で設定しているクラスター間のネットワーク接続。クラスターが同じネットワーク上にない場合は、Submariner マルチクラスターネットワーキングおよびサービスディスカバリー を設定し、
ServiceType
のClusterIP
値を使用してクラスターをネットワークで接続するか、ServiceType
のLoadBalancer
値を持つロードバランサーを使用することができます。
1.2.1.2. マネージドクラスターへの VolSync のインストール リンクのコピーリンクがクリップボードにコピーされました!
VolSync が 1 つのクラスターの永続ボリューム要求を別のクラスターの永続ボリューム要求に複製できるようにするには、ソースとターゲットの両方のマネージドクラスターに VolSync をインストールする必要があります。
Red Hat Advanced Cluster Management からマネージドクラスターに VolSync をインストールすると、マネージドクラスターの volsync-system
namespace にインストールされます。これを行うと、OpenShift 以外のマネージドクラスターがサポートされます。
以前のバージョンの Red Hat Advanced Cluster Management で、OpenShift Container Platform マネージドクラスターに VolSync を Operator Lifecycle Manager Operator としてインストールした場合、VolSync Operator Lifecycle Manager Operator が削除され、volsync-system
namespace 内の VolSync デプロイメントに置き換えられます。
2 つの方法のいずれかを使用して、環境内の 2 つのクラスターに VolSync をインストールできます。次のセクションで説明するように、ハブクラスター内の各マネージドクラスターにラベルを追加するか、ManagedClusterAddOn
を手動で作成して適用することができます。
1.2.1.2.1. ラベルを使用した VolSync のインストール リンクのコピーリンクがクリップボードにコピーされました!
ラベルを追加して、マネージドクラスターに VolSync をインストールします。
Red Hat Advanced Cluster Management コンソールから以下のステップを実行します。
-
詳細を表示するには、ハブクラスターコンソールの
Clusters
ページからマネージドクラスターの 1 つを選択します。 Labels フィールドに、次のラベルを追加します。
addons.open-cluster-management.io/volsync=true
addons.open-cluster-management.io/volsync=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VolSync サービス Pod はマネージドクラスターにインストールされます。
- 他のマネージドクラスターに同じラベルを追加します。
ハブで次のコマンドを実行して、VolSync Operator がインストールされていることを確認します。
oc -n <managed-cluster-name> get ManagedClusterAddOn volsync
oc -n <managed-cluster-name> get ManagedClusterAddOn volsync
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
コマンドの出力で、
managedclusteraddon
がReady
ステータスになっていることを確認します。 マネージドクラスターで次のコマンドを実行して、VolSync Operator がインストールされていることを確認します。
kubectl -n volsync-system get deployment volsync
kubectl -n volsync-system get deployment volsync
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
詳細を表示するには、ハブクラスターコンソールの
コマンドラインインターフェイスから次の手順を実行します。
- ハブクラスターでコマンドラインセッションを開始します。
次のコマンドを入力して、最初のクラスターにラベルを追加します。
oc label managedcluster <managed-cluster-1> "addons.open-cluster-management.io/volsync"="true"
oc label managedcluster <managed-cluster-1> "addons.open-cluster-management.io/volsync"="true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow managed-cluster-1
をマネージドクラスターの 1 つの名前に置き換えます。次のコマンドを入力して、ラベルを 2 番目のクラスターに追加します。
oc label managedcluster <managed-cluster-2> "addons.open-cluster-management.io/volsync"="true"
oc label managedcluster <managed-cluster-2> "addons.open-cluster-management.io/volsync"="true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow managed-cluster-2
を他のマネージドクラスターの名前に置き換えます。ManagedClusterAddOn
リソースは、対応する各マネージドクラスターの namespace 内のハブクラスターに自動的に作成される必要があります。
1.2.1.2.2. ManagedClusterAddOn を使用した VolSync のインストール リンクのコピーリンクがクリップボードにコピーされました!
ManagedClusterAddOn
を手動で追加して VolSync をマネージドクラスターにインストールするには、次の手順を実行します。
ハブクラスターで、次の例のようなコンテンツを含む
volsync-mcao.yaml
という YAML ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow managed-cluster-1-namespace
を、マネージドクラスターの 1 つの namespace に置き換えます。この namespace は、マネージドクラスターの名前と同じです。注: 名前は
volsync
である必要があります。次の例のようなコマンドを入力して、ファイルを設定に適用します。
oc apply -f volsync-mcao.yaml
oc apply -f volsync-mcao.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 他のマネージドクラスターに対して手順を繰り返します。
ManagedClusterAddOn
リソースは、対応する各マネージドクラスターの namespace 内のハブクラスターに自動的に作成される必要があります。
1.2.1.3. Rsync-TLS レプリケーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
Rsync-TLS レプリケーションを使用して、永続ボリュームの 1:1 非同期レプリケーションを作成できます。Rsync-TLS ベースのレプリケーションを災害復旧やリモートサイトへのデータ送信に使用できます。Rsync-TLS を使用する場合、VolSync は、stunnel によって提供される TLS で保護されたトンネル全体で Rsync を使用してデータを同期します。詳細は stunnel のドキュメント を参照してください。
次の例は、Rsync-TLS メソッドを使用して設定する方法を示しています。Rsync-TLS の追加情報は、VolSync ドキュメントの Usage を参照してください。
1.2.1.3.1. マネージドクラスター全体での Rsync-TLS レプリケーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
Rsync-TLS ベースのレプリケーションの場合、ソースクラスターと宛先クラスターでカスタムリソースを設定します。カスタムリソースは、address
値を使用して送信元を宛先に接続し、stunnel によって提供される TLS で保護されたトンネルを使用して、転送されたデータの安全性を確保します。
Rsync-TLS レプリケーションを、source-ns
namespace の source
クラスターの永続ボリュームクレームから destination-ns
namespace の destination
クラスターの永続ボリュームクレームに設定するには、次の情報と例を参照してください。必要に応じて値を置き換えます。
宛先クラスターを設定します。
宛先クラスターで次のコマンドを実行して、ネームスペースを作成します。
oc create ns <destination-ns>
oc create ns <destination-ns>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow destination-ns
をレプリケーション先が配置されている namespace に置き換えます。replication_destination
という名前の新しい YAML ファイルを作成し、次の内容をコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この例では、
LoadBalancer
のServiceType
値が使用されます。ロードバランサーサービスはソースクラスターによって作成され、ソースマネージドクラスターが別の宛先マネージドクラスターに情報を転送できるようにします。ソースと宛先が同じクラスター上にある場合、または Submariner ネットワークサービスが設定されている場合は、サービスタイプとしてClusterIP
を使用できます。ソースクラスターを設定するときに参照するシークレットのアドレスと名前に注意してください。capacity
の値が、レプリケートされている永続ボリューム要求の容量と一致していることを確認してください。 - 2
capacity
値が、レプリケートされている永続ボリューム要求の容量と一致していることを確認してください。
任意: 環境のデフォルト値とは異なるストレージクラス名とボリュームスナップショットクラス名を使用している場合は、
storageClassName
パラメーターとvolumeSnapshotClassName
パラメーターの値を指定します。宛先クラスターで以下のコマンドを実行し、
replicationdestination
リソースを作成します。oc create -n <destination-ns> -f replication_destination.yaml
oc create -n <destination-ns> -f replication_destination.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow destination-ns
は、宛先の namespace の名前に置き換えます。replicationdestination
リソースが作成されると、以下のパラメーターおよび値がリソースに追加されます。Expand パラメーター 値 .status.rsyncTLS.address
送信元クラスターと宛先クラスターが通信できるようにするために使用される宛先クラスターの IP アドレス。
.status.rsyncTLS.keySecret
ソースクラスターとの接続を認証する TLS キーを含むシークレットの名前。
以下のコマンドを実行して、ソースクラスターで使用する
.status.rsyncTLS.address
の値をコピーします。destination
は、レプリケーション先のカスタムリソースの名前に置き換えます。destination-ns
は、宛先の namespace の名前に置き換えます。ADDRESS=`oc get replicationdestination <destination> -n <destination-ns> --template={{.status.rsyncTLS.address}}` echo $ADDRESS
ADDRESS=`oc get replicationdestination <destination> -n <destination-ns> --template={{.status.rsyncTLS.address}}` echo $ADDRESS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は次のようになります。これは Amazon Web Services 環境のものです。
a831264645yhrjrjyer6f9e4a02eb2-5592c0b3d94dd376.elb.us-east-1.amazonaws.com
a831264645yhrjrjyer6f9e4a02eb2-5592c0b3d94dd376.elb.us-east-1.amazonaws.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、シークレットの名前をコピーします。
KEYSECRET=`oc get replicationdestination <destination> -n <destination-ns> --template={{.status.rsyncTLS.keySecret}}` echo $KEYSECRET
KEYSECRET=`oc get replicationdestination <destination> -n <destination-ns> --template={{.status.rsyncTLS.keySecret}}` echo $KEYSECRET
Copy to Clipboard Copied! Toggle word wrap Toggle overflow destination
は、レプリケーション先のカスタムリソースの名前に置き換えます。destination-ns
は、宛先の namespace の名前に置き換えます。ソースの設定時に、ソースクラスターで入力する必要があります。出力は、SSH キーシークレットファイルの名前である必要があります。これは、次の名前のようになります。
volsync-rsync-tls-destination-name
volsync-rsync-tls-destination-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 宛先クラスター宛先クラスターに対して次のコマンドを入力して、宛先クラスターからキーシークレットをコピーします。
oc get secret -n <destination-ns> $KEYSECRET -o yaml > /tmp/secret.yaml
oc get secret -n <destination-ns> $KEYSECRET -o yaml > /tmp/secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow destination-ns
をレプリケーション先が配置されている namespace に置き換えます。以下のコマンドを入力して、
vi
エディターでシークレットファイルを開きます。vi /tmp/secret.yaml
vi /tmp/secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 宛先クラスターのオープンシークレットファイルで、次の変更を行います。
-
namespace をソースクラスターの namespace に変更します。この例では、
source-ns
です。 -
所有者の参照を削除します (
.metadata.ownerReferences
)。
-
namespace をソースクラスターの namespace に変更します。この例では、
ソースクラスターで、ソースクラスターで次のコマンドを入力してシークレットファイルを作成します。
oc create -f /tmp/secret.yaml
oc create -f /tmp/secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
複製するソース永続ボリュームクレームを特定します。
注記: ソース永続ボリューム要求は CSI ストレージクラスにある必要があります。
ReplicationSource
アイテムを作成します。ソースクラスター上に
replication_source
という名前の新しい YAML ファイルを作成し、次の内容をコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
source
は、レプリケーションソースカスタムリソースの名前に置き換えます。これを自動的に置き換える方法は、この手順のステップ 3-vi を参照してください。- 2
source-ns
をソースが置かれている永続ボリューム要求の namespace に置き換えます。これを自動的に置き換える方法は、この手順のステップ 3-vi を参照してください。- 3
persistent_volume_claim
は、ソース永続ボリューム要求の名前に置き換えます。- 4
mykeysecret
を宛先クラスターからソースクラスターにコピーしたシークレットの名前 ($KEYSECRET
の値) に置き換えます。- 5
my.host.com
は、設定時にReplicationDestination
の.status.rsyncTLS.address
フィールドからコピーしたホストアドレスに置き換えます。sed
コマンドの例は次のステップで見つけることができます。
ストレージドライバーがクローン作成をサポートする場合は、
copyMethod
の値にClone
を使用すると、レプリケーションのより効率的なプロセスになる可能性があります。任意: 環境のデフォルト値とは異なるストレージクラス名とボリュームスナップショットクラス名を使用している場合は、
storageClassName
パラメーターとvolumeSnapshotClassName
パラメーターの値を指定します。永続ボリュームの同期方法を設定できるようになりました。
ソースクラスターで、以下のコマンドを入力して
ReplicationSource
オブジェクトのaddress
およびkeySecret
の値を、宛先クラスターから書き留めた値に置き換えてreplication_source.yaml
ファイルを変更します。sed -i "s/<my.host.com>/$ADDRESS/g" replication_source.yaml sed -i "s/<mykeysecret>/$KEYSECRET/g" replication_source.yaml oc create -n <source> -f replication_source.yaml
sed -i "s/<my.host.com>/$ADDRESS/g" replication_source.yaml sed -i "s/<mykeysecret>/$KEYSECRET/g" replication_source.yaml oc create -n <source> -f replication_source.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow my.host.com
は、設定時にReplicationDestination
の.status.rsyncTLS.address
フィールドからコピーしたホストアドレスに置き換えます。keySecret
を設定時にReplicationDestination
の.status.rsyncTLS.keySecret
フィールドからコピーしたキーに置き換えます。source
を、ソースが置かれている永続ボリューム要求の名前に置き換えます。注記: 複製する永続ボリューム要求と同じ namespace にファイルを作成する必要があります。
ReplicationSource
オブジェクトで以下のコマンドを実行して、レプリケーションが完了したことを確認します。oc describe ReplicationSource -n <source-ns> <source>
oc describe ReplicationSource -n <source-ns> <source>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow source-ns
をソースが置かれている永続ボリューム要求の namespace に置き換えます。source
は、レプリケーションソースのカスタムリソースの名前に置き換えます。レプリケーションが成功した場合、出力は次の例のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Last Sync Time
に時間がリストされていない場合は、レプリケーションが完了していません。
元の永続ボリュームのレプリカがあります。
1.2.1.4. Rsync レプリケーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
重要: セキュリティーを強化するには、Rsync の代わりに Rsync-TLS を使用してください。Rsync-TLS を使用すると、永続ボリュームのレプリケーションに必要のない昇格されたユーザー権限の使用を回避できます。
Rsync レプリケーションを使用して、永続ボリュームの 1:1 非同期レプリケーションを作成できます。Rsync ベースのレプリケーションを災害復旧やリモートサイトへのデータ送信に使用できます。
次の例は、Rsync メソッドを使用して設定する方法を示しています。
1.2.1.4.1. マネージドクラスター間での Rsync レプリケーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
Rsync ベースのレプリケーションの場合は、ソースクラスターおよび宛先クラスターでカスタムリソースを設定します。カスタムリソースは、address
値を使用してソースを宛先に接続し、sshKeys
を使用して転送されたデータがセキュアであることを確認します。
注記: address
および sshKeys
の値を宛先からソースにコピーし、ソースを設定する前に宛先を設定する必要があります。
この例では、source-ns
namespace の source
クラスターの永続ボリューム要求から destination-ns
namespace の destination
クラスターの永続ボリューム要求に Rsync レプリケーションを設定する手順を説明します。必要に応じて、これらの値を他の値に置き換えることができます。
宛先クラスターを設定します。
宛先クラスターで次のコマンドを実行して、ネームスペースを作成します。
oc create ns <destination-ns>
oc create ns <destination-ns>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow destination-ns
を、オンサイトのボリューム要求ごとに宛先が含まれる namespace の名前に置き換えます。以下の YAML コンテンツをコピーし、
replication_destination.yaml
という名前の新規ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記:
capacity
の値は、レプリケートされる永続ボリューム要求の容量と一致する必要があります。destination
は、宛先 CR の名前に置き換えます。destination-ns
は、宛先の namespace の名前に置き換えます。この例では、
LoadBalancer
のServiceType
値が使用されます。ロードバランサーサービスはソースクラスターによって作成され、ソースマネージドクラスターが別の宛先マネージドクラスターに情報を転送できるようにします。ソースと宛先が同じクラスター上にある場合、または Submariner ネットワークサービスが設定されている場合は、サービスタイプとしてClusterIP
を使用できます。ソースクラスターを設定するときに参照するシークレットのアドレスと名前をメモします。storageClassName
およびvolumeSnapshotClassName
は任意のパラメーターです。特に、環境のデフォルト値とは異なるストレージクラスおよびボリュームスナップショットクラス名を使用している場合は、環境の値を指定してください。宛先クラスターで以下のコマンドを実行し、
replicationdestination
リソースを作成します。oc create -n <destination-ns> -f replication_destination.yaml
oc create -n <destination-ns> -f replication_destination.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow destination-ns
は、宛先の namespace の名前に置き換えます。replicationdestination
リソースが作成されると、以下のパラメーターおよび値がリソースに追加されます。Expand パラメーター 値 .status.rsync.address
送信元クラスターと宛先クラスターが通信できるようにするために使用される宛先クラスターの IP アドレス。
.status.rsync.sshKeys
ソースクラスターから宛先クラスターへの安全なデータ転送を可能にする SSH キーファイルの名前。
以下のコマンドを実行して、ソースクラスターで使用する
.status.rsync.address
の値をコピーします。ADDRESS=`oc get replicationdestination <destination> -n <destination-ns> --template={{.status.rsync.address}}` echo $ADDRESS
ADDRESS=`oc get replicationdestination <destination> -n <destination-ns> --template={{.status.rsync.address}}` echo $ADDRESS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow destination
は、レプリケーション先のカスタムリソースの名前に置き換えます。destination-ns
は、宛先の namespace の名前に置き換えます。出力は、Amazon Web Services 環境の次の出力のように表示されます。
a831264645yhrjrjyer6f9e4a02eb2-5592c0b3d94dd376.elb.us-east-1.amazonaws.com
a831264645yhrjrjyer6f9e4a02eb2-5592c0b3d94dd376.elb.us-east-1.amazonaws.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、シークレットの名前をコピーします。
SSHKEYS=`oc get replicationdestination <destination> -n <destination-ns> --template={{.status.rsync.sshKeys}}` echo $SSHKEYS
SSHKEYS=`oc get replicationdestination <destination> -n <destination-ns> --template={{.status.rsync.sshKeys}}` echo $SSHKEYS
Copy to Clipboard Copied! Toggle word wrap Toggle overflow destination
は、レプリケーション先のカスタムリソースの名前に置き換えます。destination-ns
は、宛先の namespace の名前に置き換えます。ソースの設定時に、ソースクラスターで入力する必要があります。出力は、SSH キーシークレットファイルの名前である必要があります。これは、次の名前のようになります。
volsync-rsync-dst-src-destination-name
volsync-rsync-dst-src-destination-name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 宛先クラスターに対して次のコマンドを入力して、宛先クラスターから SSH シークレットをコピーします。
oc get secret -n <destination-ns> $SSHKEYS -o yaml > /tmp/secret.yaml
oc get secret -n <destination-ns> $SSHKEYS -o yaml > /tmp/secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow destination-ns
を、宛先が置かれている永続ボリューム要求の namespace に置き換えます。以下のコマンドを入力して、
vi
エディターでシークレットファイルを開きます。vi /tmp/secret.yaml
vi /tmp/secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 宛先クラスターのオープンシークレットファイルで、次の変更を行います。
-
namespace をソースクラスターの namespace に変更します。この例では、
source-ns
です。 -
所有者の参照を削除します (
.metadata.ownerReferences
)。
-
namespace をソースクラスターの namespace に変更します。この例では、
ソースクラスターで、ソースクラスターで次のコマンドを入力してシークレットファイルを作成します。
oc create -f /tmp/secret.yaml
oc create -f /tmp/secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
複製するソース永続ボリュームクレームを特定します。
注記: ソース永続ボリューム要求は CSI ストレージクラスにある必要があります。
ReplicationSource
アイテムを作成します。以下の YAML コンテンツをコピーして、ソースクラスターに
replication_source.yaml
という名前の新規ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow source
は、レプリケーションソースカスタムリソースの名前に置き換えます。これを自動的に置き換える方法は、この手順のステップ 3-vi を参照してください。source-ns
をソースが置かれている永続ボリューム要求の namespace に置き換えます。これを自動的に置き換える方法は、この手順のステップ 3-vi を参照してください。persistent_volume_claim
は、ソース永続ボリューム要求の名前に置き換えます。mysshkeys
は、設定時にReplicationDestination
の.status.rsync.sshKeys
フィールドからコピーしたキーに置き換えます。my.host.com
は、設定時にReplicationDestination
の.status.rsync.address
フィールドからコピーしたホストアドレスに置き換えます。ストレージドライバーがクローン作成をサポートする場合は、
copyMethod
の値にClone
を使用すると、レプリケーションのより効率的なプロセスになる可能性があります。StorageClassName
およびvolumeSnapshotClassName
はオプションのパラメーターです。ご使用の環境のデフォルトとは異なるストレージクラスおよびボリュームスナップショットクラス名を使用している場合は、それらの値を指定してください。永続ボリュームの同期方法を設定できるようになりました。
ソースクラスターで、以下のコマンドを入力して
ReplicationSource
オブジェクトのaddress
およびsshKeys
の値を、宛先クラスターから書き留めた値に置き換えてreplication_source.yaml
ファイルを変更します。sed -i "s/<my.host.com>/$ADDRESS/g" replication_source.yaml sed -i "s/<mysshkeys>/$SSHKEYS/g" replication_source.yaml oc create -n <source> -f replication_source.yaml
sed -i "s/<my.host.com>/$ADDRESS/g" replication_source.yaml sed -i "s/<mysshkeys>/$SSHKEYS/g" replication_source.yaml oc create -n <source> -f replication_source.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow my.host.com
は、設定時にReplicationDestination
の.status.rsync.address
フィールドからコピーしたホストアドレスに置き換えます。mysshkeys
は、設定時にReplicationDestination
の.status.rsync.sshKeys
フィールドからコピーしたキーに置き換えます。source
を、ソースが置かれている永続ボリューム要求の名前に置き換えます。注記: 複製する永続ボリューム要求と同じ namespace にファイルを作成する必要があります。
ReplicationSource
オブジェクトで以下のコマンドを実行して、レプリケーションが完了したことを確認します。oc describe ReplicationSource -n <source-ns> <source>
oc describe ReplicationSource -n <source-ns> <source>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow source-ns
をソースが置かれている永続ボリューム要求の namespace に置き換えます。source
は、レプリケーションソースのカスタムリソースの名前に置き換えます。レプリケーションが成功した場合、出力は次の例のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Last Sync Time
に時間がリストされていない場合は、レプリケーションが完了していません。
元の永続ボリュームのレプリカがあります。
1.2.1.5. restic バックアップの設定 リンクのコピーリンクがクリップボードにコピーされました!
restic ベースのバックアップは、永続ボリュームの restic ベースのバックアップコピーを、restic-config.yaml
シークレットファイルで指定された場所にコピーします。restic バックアップは、クラスター間でデータを同期しませんが、データをバックアップします。
次の手順を実行して、restic ベースのバックアップを設定します。
次の YAML コンテンツのようなシークレットを作成して、バックアップイメージが保存されるリポジトリーを指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow my-restic-repository
は、バックアップファイルを保存する S3 バケットリポジトリーの場所に置き換えます。my-restic-password
は、リポジトリーへのアクセスに必要な暗号化キーに置き換えます。必要に応じて、
アクセス
とパスワード
は、プロバイダーのクレデンシャルに置き換えます。新しいリポジトリーを準備する必要がある場合の手順は、新しいリポジトリーの準備 を参照してください。この手順を使用する場合は、
restic init
コマンドを実行してリポジトリーを初期化する必要がある手順をスキップしてください。VolSync は、最初のバックアップ中にリポジトリーを自動的に初期化します。重要: 複数の永続ボリューム要求を同じ S3 バケットにバックアップする場合には、バケットへのパスは永続ボリュームクレームごとに一意である必要があります。各永続ボリュームクレームは個別の
ReplicationSource
でバックアップされるので、個別の restic-config シークレットが必要です。同じ S3 バケットを共有することで、各
ReplicationSource
は S3 バケット全体への書き込みアクセスが割り当てられます。次の YAML コンテンツに似た
ReplicationSource
オブジェクトを作成して、バックアップポリシーを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow source
は、バックアップしている永続ボリュームクレームに置き換えます。schedule
の値は、バックアップを実行する頻度に置き換えます。この例では、30 分ごとにスケジュールが指定されています。スケジュールの設定の詳細は、同期のスケジュール を参照してください。PruneIntervalDays
の値は、インスタンスで次にデータの圧縮するまでの経過時間 (日数) に置き換えて、スペースを節約します。プルーニング操作は、実行中に大量の I/O トラフィックを生成する可能性があります。restic-config
は、ステップ 1 で作成したシークレットの名前に置き換えます。retain
の値は、バックアップしたイメージの保持ポリシーに設定します。ベストプラクティス:
CopyMethod
の値にClone
を使用して、特定の時点のイメージが確実に保存されるようにします。
注記: デフォルトでは、restic ムーバーは root 権限なしで実行されます。restic ムーバーを root として実行する場合は、次のコマンドを実行して、昇格された権限のアノテーションを namespace に追加します。
oc annotate namespace <namespace> volsync.backube/privileged-movers=true
oc annotate namespace <namespace> volsync.backube/privileged-movers=true
<namespace>
を namespace の名前に置き換えます。
1.2.1.5.1. restic バックアップの復元 リンクのコピーリンクがクリップボードにコピーされました!
コピーされたデータを restic バックアップから新しい永続ボリューム要求に復元できます。ベストプラクティス: バックアップ 1 つだけを新しい永続ボリューム要求に復元します。restic バックアップを復元するには、次の手順を実行します。
次の例のように、新しいデータを含む新しい永続ボリュームクレームを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pvc-name
は、新しい永続ボリュームクレームの名前に置き換えます。次の例のような
ReplicationDestination
カスタムリソースを作成して、データの復元先を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow destination
は、宛先 CR の名前に置き換えます。restic-repo
は、ソースが保存されているリポジトリーへのパスに置き換えます。pvc-name
は、データを復元する新しい永続ボリュームクレームの名前に置き換えます。これには、新しいボリューム要求をプロビジョニングするのではなく、既存の永続ボリューム要求を使用してください。
復元プロセスは 1 回だけ完了する必要があります。この例では、最新のバックアップを復元します。復元オプションの詳細は、VolSync ドキュメントの Restore options を参照してください。
1.2.1.6. Rclone レプリケーションの設定 リンクのコピーリンクがクリップボードにコピーされました!
Rclone バックアップは、Rclone を使用して AWS S3 などの中間オブジェクトストレージの場所を介して単一の永続ボリュームを複数の場所にコピーします。複数の場所にデータを配布する場合に役立ちます。
次の手順を実行して、Rclone レプリケーションを設定します。
次の例のような
ReplicationSource
カスタムリソースを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow source-pvc
は、レプリケーションソースのカスタムリソースの名前に置き換えます。source-ns
をソースが置かれている永続ボリューム要求の namespace に置き換えます。source
は、レプリケートしている永続ボリュームクレームに置き換えます。スケジュール
の値は、レプリケーションを実行する頻度に置き換えます。この例では、6 分ごとにスケジュールが指定されています。この値は引用符で囲む必要があります。詳細は、同期のスケジュール を参照してください。intermediate-s3-bucket
は、Rclone 設定ファイルの設定セクションへのパスに置き換えます。destination-bucket
は、レプリケートされたファイルをコピーするオブジェクトバケットへのパスに置き換えます。rclone-secret
は、Rclone 設定情報を含むシークレットの名前に置き換えます。copyMethod
の値はClone
、Direct
、またはSnapshot
として設定します。この値は、ある特定の時点でのコピーを生成するかどうか、生成する場合は、生成方法を指定します。my-sc-name
は、ポイントインタイムコピーに使用するストレージクラスの名前に置き換えます。指定しない場合、ソースボリュームのストレージクラスが使用されます。スナップショット
をcopyMethod
として指定した場合はmy-vsc
を使用するVolumeSnapshotClass
の名前に置き換えます。これは、他のタイプのcopyMethod
には必要ありません。次の例のような
ReplicationDestination
カスタムリソースを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow スケジュール
の値は、レプリケーションを宛先に移動する頻度に置き換えます。移動元と宛先のスケジュールをオフセットして、データが宛先からプルされる前に複製を完了できるようにする必要があります。この例では、オフセットは 3 分で、6 分間隔でスケジュールされています。この値は引用符で囲む必要があります。スケジュールの詳細は、同期のスケジュール を参照してください。intermediate-s3-bucket
は、Rclone 設定ファイルの設定セクションへのパスに置き換えます。destination-bucket
は、レプリケートされたファイルをコピーするオブジェクトバケットへのパスに置き換えます。rclone-secret
は、Rclone 設定情報を含むシークレットの名前に置き換えます。copyMethod
の値はClone
、Direct
、またはSnapshot
として設定します。この値は、ある特定の時点でのコピーを生成するかどうか、生成する場合は、生成方法を指定します。accessModes
の値は、永続ボリュームクレームのアクセスモードを指定します。有効な値はReadWriteOnce
またはReadWriteMany
です。容量
は宛先ボリュームのサイズを指定します。このサイズは、着信データを格納するのに十分な大きさに指定します。my-sc
は、特定の時点のコピーの宛先として使用するストレージクラスの名前に置き換えます。指定しない場合、システムストレージクラスが使用されます。スナップショット
をcopyMethod
として指定した場合はmy-vsc
を使用するVolumeSnapshotClass
の名前に置き換えます。これは、他のタイプのcopyMethod
には必要ありません。含まれていない場合は、システムのデフォルトのVolumeSnapshotClass
が使用されます。
注記: デフォルトでは、rclone ムーバーは root 権限なしで実行されます。rclone ムーバーを root として実行する場合は、次のコマンドを実行して、昇格された権限のアノテーションを namespace に追加します。
oc annotate namespace <namespace> volsync.backube/privileged-movers=true
oc annotate namespace <namespace> volsync.backube/privileged-movers=true
<namespace>
を namespace の名前に置き換えます。
1.2.1.7. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
詳細は、以下のトピックを参照してください。
- Rsync-TLS レプリケーション用の独自のシークレットを作成する 方法は、Rsync-TLS レプリケーション用のシークレットの作成を参照してください。
- Rsync の追加情報は、VolSync ドキュメントの Usage を参照してください。
- リスティックオプションの詳細は、VolSync ドキュメントの バックアップオプション を参照してください。
- Installing VolSync on the managed clusters に戻る
1.2.2. 複製されたイメージを使用可能な永続ボリューム要求に変換 リンクのコピーリンクがクリップボードにコピーされました!
データを復元するには、レプリケートされたイメージを永続ボリューム要求に変換する必要がある場合があります。
VolumeSnapshot
を使用して ReplicationDestination
の場所から永続ボリューム要求を複製または復元すると、VolumeSnapshot
が作成されます。VolumeSnapshot
には、最後に成功した同期からの latestImage
が含まれます。イメージのコピーは、使用する前に永続ボリューム要求に変換する必要があります。VolSync ReplicationDestination
ボリュームポピュレーターを使用すると、イメージのコピーを使用可能な永続ボリュームクレームに変換できます。
永続ボリューム要求の復元先とする
ReplicationDestination
を参照するdataSourceRef
を使用して永続ボリューム要求を作成します。この永続ボリューム要求には、ReplicationDestination
カスタムリソース定義のstatus.latestImage
設定で指定されたVolumeSnapshot
の内容が設定されます。次の YAML コンテンツは、使用される可能性のある永続ボリューム要求のサンプルを示しています。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pvc-name
は、新規の永続ボリューム要求の名前に置き換えます。destination-ns
は、永続ボリューム要求およびReplicationDestination
が置かれている namespace に置き換えます。replicationdestination_to_replace
はReplicationDestination
名に置き換えます。ベストプラクティス: 値が少なくとも最初のソース永続ボリュームクレームと同じサイズである場合は、
resources.requests.storage
を異なる値で更新できます。次のコマンドを入力して、永続ボリュームクレームが環境で実行されていることを確認します。
kubectl get pvc -n <destination-ns>
$ kubectl get pvc -n <destination-ns>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
注記:
latestImage
が存在しない場合、永続ボリューム要求は ReplicationDestination
が完了し、スナップショットが利用可能になるまで保留状態のままになります。ReplicationDestination
と、ReplicationDestination
を使用する永続ボリュームコントローラーを同時に作成できます。永続ボリューム要求は、ReplicationDestination
がレプリケーションを完了し、スナップショットが使用可能になった後にのみ、ボリューム作成プロセスを開始します。スナップショットは、.status.latestImage
にあります。
さらに、使用されているストレージクラスの volumeBindingMode
値が WaitForFirstConsumer
である場合、ボリュームポピュレーターは、永続ボリューム要求のコンシューマーが存在するまで待機してから、永続ボリューム要求が読み込まれます。永続ボリューム要求をマウントする Pod など、コンシューマーにアクセス権が必要な場合、そのボリュームにはデータが入力されます。VolSync ボリュームポピュレーターコントローラーは、ReplicationDestination
の latestImage
を使用します。latestImage
は、永続ボリューム制御の作成後にレプリケーションが完了するたびに更新されます。
1.2.3. 同期のスケジューリング リンクのコピーリンクがクリップボードにコピーされました!
レプリケーションの開始方法を決定するときは、常に実行する、スケジュールどおりに実行する、または手動で実行するという 3 つのオプションから選択します。レプリケーションのスケジュールは、よく選択されるオプションです。
スケジュール オプションは、スケジュール時にレプリケーションを実行します。スケジュールは cronspec
で定義されるため、スケジュールを時間間隔または特定の時間として設定できます。スケジュールの値の順序は次のとおりです。
"minute (0-59) hour (0-23) day-of-month (1-31) month (1-12) day-of-week (0-6)"
レプリケーションはスケジュールされた時間に開始されます。このレプリケーションオプションの設定は、以下の内容のようになります。
spec: trigger: schedule: "*/6 * * * *"
spec:
trigger:
schedule: "*/6 * * * *"
これらの方法のいずれかを有効にしたら、設定した方法に従って同期スケジュールが実行されます。
追加情報およびオプションは、VolSync のドキュメントを参照してください。
1.2.4. VolSync の詳細設定 リンクのコピーリンクがクリップボードにコピーされました!
永続ボリュームをレプリケートするときに、独自のシークレットを作成するなど、VolSync をさらに設定できます。
1.2.4.1. Rsync-TLS レプリケーション用のシークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
送信元と宛先は、TLS 接続の共有キーにアクセスできる必要があります。キーの場所は keySecret
フィールドで確認できます。.spec.rsyncTLS.keySecret
にシークレット名を指定しない場合、シークレット名は自動的に生成され、.status.rsyncTLS.keySecret
に追加されます。
独自のシークレットを作成するには、次の手順を実行します。
シークレットには次の形式を使用します:
<id>:<at_least_32_hex_digits>
次の例を参照してください:
1:23b7395fafc3e842bd8ac0fe142e6ad1
前の例に対応する次の
secret.yaml
の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow