第1章 ビジネス継続性
障害復旧ソリューション、ハブクラスター、およびマネージドクラスターについては、次のトピックを参照してください。
1.1. バックアップおよび復元 リンクのコピーリンクがクリップボードにコピーされました!
クラスターのバックアップおよび復元 Operator は、ハブクラスターで実行され、Red Hat Advanced Cluster Management for Kubernetes ハブクラスターの障害に対する障害復旧ソリューションを提供します。ハブクラスターで障害が発生すると、すべてのマネージドクラスターが引き続き正常に動作していても、ポリシー設定ベースのアラートやクラスター更新などの一部の機能が動作しなくなります。ハブクラスターが利用できなくなったら、回復が可能かどうか、新しくデプロイメントされたハブクラスターでデータを回復する必要があるかどうかを判断するための回復計画が必要です。
バックアップおよび復元コンポーネントは、バックアップ Pod やバックアップスケジュールが実行されていないなど、バックアップおよび復元コンポーネントに関する問題を報告するための一連のポリシーを提供します。バックアップソリューションが期待どおりに機能していない場合は、ポリシーテンプレートを使用してハブクラスター管理者に対するアラートを作成できます。詳細は、バックアップまたは復元設定の検証 を参照してください。
クラスターのバックアップおよび復元 Operator は、OADP Operator に依存して Velero をインストールし、ハブクラスターからデータが保存されているバックアップストレージの場所への接続を作成します。Velero は、バックアップおよび復元操作を実行するコンポーネントです。クラスターのバックアップと復元の Operator ソリューションは、マネージドクラスター、アプリケーション、およびポリシーを含むすべての Red Hat Advanced Cluster Management ハブクラスターリソースのバックアップと復元のサポートを提供します。
クラスターのバックアップおよび復元の Operator は、ハブクラスターのインストールを拡張するサードパーティーリソースのバックアップをサポートします。このバックアップソリューションを使用すると、指定した時間間隔で実行する cron ベースのバックアップスケジュールを定義できます。ハブクラスターで障害が発生した場合、新しいハブクラスターをデプロイし、バックアップされたデータを新しいハブクラスターに移動できます。
次のトピックを読み続けて、バックアップおよび復元 operator の詳細を確認してください。
1.1.1. バックアップおよび復元 Operator のアーキテクチャー リンクのコピーリンクがクリップボードにコピーされました!
Operator は、Red Hat Advanced Cluster Management のバックアップスケジュールの設定に使用される BackupSchedule.cluster.open-cluster-management.io リソースと、バックアップの処理および復元に使用される restore.cluster.open-cluster-management.io リソースを定義します。この Operator は、対応する Velero リソースを作成し、リモートクラスターと、復元を必要とする他のハブクラスターリソースのバックアップに必要なオプションを定義します。次の図を表示します。
1.1.1.1. バックアップされるリソース リンクのコピーリンクがクリップボードにコピーされました!
クラスターのバックアップと復元 Operator のソリューションは、マネージドクラスター、アプリケーション、ポリシーなど、すべてのハブクラスターリソースのバックアップと復元のサポートを提供します。このソリューションを使用して、基本的なハブクラスターのインストールを拡張するサードパーティーリソースをバックアップできます。このバックアップソリューションを使用すると、cron ベースのバックアップスケジュールを定義できます。これは、指定された時間間隔で実行し、ハブクラスターのコンテンツの最新バージョンを継続的にバックアップします。
ハブクラスターを交換する必要がある場合、またはハブクラスターに障害が発生したときに障害シナリオにある場合は、新しいハブクラスターをデプロイし、バックアップデータを新しいハブクラスターに移動できます。
次のクラスターのバックアップおよび復元プロセスのリストと、バックアップデータを識別するためにリソースとグループをバックアップまたは除外する方法を確認します。
-
MultiClusterHubnamespace のすべてのリソースを除外します。これは、現在のハブクラスター 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.ioAPI グループのリソースを除き、リソースはacm-resources-scheduleバックアップ内でバックアップされます。agent-install.openshift.ioAPI グループのリソースは、acm-managed-clusters-scheduleバックアップ内でバックアップされます。以下に示すhive.openshift.ioおよびhiveinternal.openshift.ioAPI グループのリソースも、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: ""注記:
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"
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 バックアップで自動的にバックアップされます。いずれかのリソースを復元する必要がある場合は、ラベル値を cluster-activation に設定する必要があります。これは、マネージドクラスターが新しいハブクラスターに移動された後、復元されたリソースで veleroManagedClustersBackupName:latest が使用された場合に限ります。これにより、マネージドクラスターのアクティブ化が呼び出されない限り、リソースが復元されなくなります。以下の例を参照してください。
apiVersion: my.group/v1alpha1
kind: MyResource
metadata:
labels:
cluster.open-cluster-management.io/backup: cluster-activation
注記: 管理対象クラスターの namespace、またはその中のリソースについては、クラスターのアクティベーション手順でいずれか 1 つを復元する必要があります。したがって、マネージドクラスターの 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.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.1.1. ストレージの場所シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
ストレージの場所のシークレットを作成するには、以下の手順を実行します。
- バックアップの保存先となるクラウドストレージの デフォルトシークレットの作成 の手順を完了します。
- バックアップコンポーネントの namespace にある OADP Operator の namespace にシークレットリソースを作成します。
1.1.3.1.2. バックアップ Operator の有効化 リンクのコピーリンクがクリップボードにコピーされました!
バックアップ Operator が Red Hat Advanced Cluster Management for Kubernetes の障害復旧ソリューションを使用できるようにします。
1.1.3.1.2.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
-
Red Hat OpenShift Container Platform クラスターから、Red Hat Advanced Cluster Management Operator バージョン 2.12 をインストールします。
MultiClusterHubリソースは、Red Hat Advanced Cluster Management のインストール時に自動的に作成され、Running. ==== Enabling backup operators for your hub clusters のステータスを表示します。
アクティブ/パッシブハブクラスターのバックアップ 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.1.2.2. 新しいバージョンのハブクラスターで復元操作を実行する リンクのコピーリンクがクリップボードにコピーされました!
バックアップが作成されたハブクラスターよりも新しいバージョンの Red Hat Advanced Cluster Management を使用するハブクラスターで復元操作を実行する場合でも、次の手順で復元操作を実行できます。
- 復元ハブクラスターで、バックアップが作成されたハブクラスターと同じバージョンの Operator をインストールします。
- 復元ハブクラスターでバックアップデータを復元します。
- 復元ハブクラスターで、アップグレード操作を使用して、使用するバージョンにアップグレードします。
1.1.3.1.3. 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 をインストールする方法の詳細は、STS を使用して ROSA に OADP をインストール を参照してください。
重要:
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.1.4. カスタム OADP バージョンのインストール リンクのコピーリンクがクリップボードにコピーされました!
MultiClusterHub リソースにアノテーションを設定すると、特定のニーズに合わせて OADP バージョンをカスタマイズできます。以下の手順を実行します。
バックアップおよび復元 Operator によってインストールされた OADP バージョンを上書きするには、
MultiClusterHubリソースで次のアノテーションを使用します。installer.open-cluster-management.io/oadp-subscription-spec: '{"channel": "stable-1.4"}'重要: このオプションを使用して、バックアップおよび復元 Operator によってデフォルトでインストールされたものとは異なる OADP バージョンを取得する場合は、このバージョンがハブクラスターによって使用される Red Hat OpenShift Container Platform バージョンでサポートされていることを確認してください。このオーバーライドオプションを使用すると、サポート対象外の設定になる可能性があるため、注意して使用してください。
たとえば、アノテーションを設定して OADP 1.5 バージョンをインストールします。
MultiClusterHubリソースは次の例のようになります。apiVersion: operator.open-cluster-management.io/v1 kind: MultiClusterHub metadata: annotations: installer.open-cluster-management.io/oadp-subscription-spec: '{"channel": "stable-1.5","installPlanApproval": "Automatic","name": "redhat-oadp-operator","source": "redhat-operators","sourceNamespace": "openshift-marketplace"}' name: multiclusterhub spec: {}-
cluster-backをtrueに設定して、MultiClusterHubリソースのcluster-backupオプションを有効にします。
1.1.3.1.5. DataProtectionApplication リソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
アクティブ/パッシブハブクラスターの DataProtectionApplication リソースのインスタンスを作成するには、以下の手順を実行します。
- Red Hat OpenShift Container Platform コンソールから、Operators > Installed Operators を選択します。
-
DataProtectionApplication の下の
Create instanceをクリックします。 -
OpenShift Container Platform コンソールを使用して設定を選択するか、
DataProtectionApplicationの例に記載されている YAML ファイルを使用して、Velero インスタンスを作成します。 -
DataProtectionApplicationnamespace をopen-cluster-management-backupに設定します。 DataProtectionApplicationリソースの仕様 (spec:) 値を適切に設定します。次に、Create をクリックします。デフォルトのバックアップストレージの場所を使用する場合は、
backupStorageLocationsセクションで値default: trueを設定します。以下のDataProtectionApplicationリソースの例を確認します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: dpa-sample spec: configuration: velero: defaultPlugins: - openshift - aws restic: enable: true backupLocations: - name: default velero: provider: aws default: true objectStorage: bucket: my-bucket prefix: my-prefix config: region: us-east-1 profile: "default" credential: name: cloud-credentials key: cloud snapshotLocations: - name: default velero: provider: aws config: region: us-west-2 profile: "default"
1.1.3.1.6. 非接続環境でのバックアップおよび復元コンポーネントの有効化 リンクのコピーリンクがクリップボードにコピーされました!
非接続環境で 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"}'redhat-operator-indexはカスタム名であり、非接続環境で Red Hat OpenShift Operator にアクセスするために定義および使用するCatalogSourceリソースの名前を表します。次のコマンドを実行して、catalogsourceを取得します。oc get catalogsource -A出力は次の例のような内容になります。
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
1.1.3.2. バックアップおよび復元 Operator の有効化 リンクのコピーリンクがクリップボードにコピーされました!
クラスターのバックアップおよび復元 Operator は、MultiClusterHub リソースの初回作成時に有効にできます。cluster-backup パラメーターは true に設定します。Operator を有効にすると、Operator リソースがインストールされます。
MultiClusterHub リソースがすでに作成されている場合には、MultiClusterHub リソースを編集して、クラスターバックアップ Operator をインストールまたはアンインストールできます。クラスターバックアップ Operator をアンインストールする場合は、cluster-backup を false に設定します。
バックアップおよび復元 Operator が有効にされている場合には、MultiClusterHub リソースは以下の YAML ファイルのようになります。
apiVersion: operator.open-cluster-management.io/v1
kind: MultiClusterHub
metadata:
name: multiclusterhub
namespace: open-cluster-management
spec:
availabilityConfig: High
enableClusterBackup: false
imagePullSecret: multiclusterhub-operator-pull-secret
ingress:
sslCiphers:
- ECDHE-ECDSA-AES256-GCM-SHA384
- ECDHE-RSA-AES256-GCM-SHA384
- ECDHE-ECDSA-AES128-GCM-SHA256
- ECDHE-RSA-AES128-GCM-SHA256
overrides:
components:
- enabled: true
name: multiclusterhub-repo
- enabled: true
name: search
- enabled: true
name: management-ingress
- enabled: true
name: console
- enabled: true
name: insights
- enabled: true
name: grc
- enabled: true
name: cluster-lifecycle
- enabled: true
name: volsync
- enabled: true
name: multicluster-engine
- enabled: true
name: cluster-backup
separateCertificateManagement: false
1.1.3.3. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- Velero を参照してください。
- サポートされている Velero ストレージプロバイダーのリストは、OpenShift Container Platform ドキュメントの AWS S3 互換バックアップストレージプロバイダー を参照してください。
- DataProtectionApplication リソースの詳細を参照してください。
1.1.4. バックアップのスケジュールと復元 リンクのコピーリンクがクリップボードにコピーされました!
バックアップをスケジュールおよび復元するには、以下の手順を実行します。
-
バックアップおよび復元 Operator
backupschedule.cluster.open-cluster-management.ioを使用してバックアップスケジュールを作成し、restore.cluster.open-cluster-management.ioリソースを使用してバックアップを復元します。 次のコマンドを実行して、
backupschedule.cluster.open-cluster-management.ioリソースを作成します。oc create -f cluster_v1beta1_backupschedule.yamlcluster_v1beta1_backupschedule.yamlリソースは、次のファイルのようになる場合があります。apiVersion: cluster.open-cluster-management.io/v1beta1 kind: BackupSchedule metadata: name: schedule-acm namespace: open-cluster-management-backup spec: veleroSchedule: 0 */2 * * *1 veleroTtl: 120h2 backupschedule.cluster.open-cluster-management.iospecプロパティーに関する以下の説明を確認してください。-
veleroScheduleは必須のプロパティーで、バックアップをスケジュールする cron ジョブを定義します。 -
veleroTtlは任意のプロパティーで、スケジュールされているバックアップリソースの有効期限を定義します。指定されていない場合には、Velero で設定された最大デフォルト値 (720h) が使用されます。
-
backupschedule.cluster.open-cluster-management.ioリソースの状態をチェックします。3 つのschedule.velero.ioリソースの定義が表示されます。以下のコマンドを実行します。oc get BackupSchedule -n open-cluster-management-backup注意: 復元操作は、復元シナリオ向けに別のハブクラスターで実行します。復元操作を開始するには、バックアップを復元するハブクラスターに
restore.cluster.open-cluster-management.ioリソースを作成します。注記: 新しいハブクラスターにバックアップを復元する場合は、バックアップを作成した以前のバブクラスターがシャットダウンされていることを確認します。実行中の場合には、前のハブクラスターは、マネージドクラスターの調整機能により、マネージドクラスターが使用できなくなったことが検出されるとすぐに、マネージドクラスターの再インポートが試行されます。
クラスターのバックアップおよび復元 Operator、backup
schedule.cluster.open-cluster-management.ioおよびrestore.cluster.open-cluster-management.ioリソースを使用して、バックアップまたは復元リソースを作成できます。cluster-backup-operator の例を参照してください。次のコマンドを実行して、
restore.cluster.open-cluster-management.ioリソースを作成します。oc create -f cluster_v1beta1_backupschedule.yamlリソースは以下のファイルのようになります。
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Restore metadata: name: restore-acm namespace: open-cluster-management-backup spec: veleroManagedClustersBackupName: latest veleroCredentialsBackupName: latest veleroResourcesBackupName: latest以下のコマンドを実行して Velero
Restoreリソースを表示します。oc get restore.velero.io -n open-cluster-management-backup次のコマンドを実行して、Red Hat Advanced Cluster Management
Restoreイベントを表示します。oc describe restore.cluster.open-cluster-management.io -n open-cluster-management-backup
パラメーターの説明と Restore YAML リソースの例は、Restoring a backup セクションで確認してください。
1.1.4.1. Extending backup data リンクのコピーリンクがクリップボードにコピーされました!
cluster.open-cluster-management.io/backup ラベルをリソースに追加することで、クラスターのバックアップおよび復元を使用してサードパーティーのリソースをバックアップできます。ラベルの値は、空の文字列を含む任意の文字列にすることができます。バックアップするコンポーネントを識別するのに役立つ値を使用してください。たとえば、コンポーネントが IDP ソリューションによって提供される場合は、cluster.open-cluster-management.io/backup: idp ラベルを使用します。
注意: マネージドクラスターのアクティブ化リソースが復元されたときにリソースを復元する場合は、cluster.open-cluster-management.io/backup ラベルに cluster-activation 値を使用します。マネージドクラスターのアクティブ化リソースを復元すると、マネージドクラスターは、復元が開始されたハブクラスターによってアクティブに管理されます。
1.1.4.2. Scheduling a cluster backup リンクのコピーリンクがクリップボードにコピーされました!
backupschedule.cluster.open-cluster-management.io リソースを作成すると、バックアップスケジュールが有効になります。以下の backupschedule.cluster.open-cluster-management.io サンプルを表示します。
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: BackupSchedule
metadata:
name: schedule-acm
namespace: open-cluster-management-backup
spec:
veleroSchedule: 0 */2 * * *
veleroTtl: 120h
backupschedule.cluster.open-cluster-management.io リソースを作成したら、以下のコマンドを実行してスケジュールされたクラスターバックアップのステータスを取得します。
oc get BackupSchedule -n open-cluster-management-backup
backupschedule.cluster.open-cluster-management.io リソースは、バックアップの生成に使用される schedule.velero.io リソースを 6 つ作成します。以下のコマンドを実行して、スケジュールされるバックアップのリストを表示します。
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.3. バックアップの競合について リンクのコピーリンクがクリップボードにコピーされました!
ハブクラスターのステータスがパッシブハブクラスターからプライマリーハブクラスターに、またはプライマリーハブクラスターからパッシブに変更され、異なるハブクラスターが同じストレージの場所にデータをバックアップすると、バックアップの競合が発生する可能性があります。
その結果、最新のバックアップは、プライマリーハブクラスターではなくなったハブクラスターによって生成されます。BackupSchedule.cluster.open-cluster-management.io リソースがまだ有効であるため、このハブクラスターは引き続きバックアップを生成します。
バックアップの競合を引き起こす可能性のある 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.4. バックアップの競合の防止 リンクのコピーリンクがクリップボードにコピーされました!
バックアップの競合を防止および報告するには、BackupSchedule.cluster.open-cluster-management.io リソースで BackupCollision 状態を使用します。コントローラーは、保管場所の最新のバックアップが現在のハブクラスターから生成されたかどうかを定期的に確認します。そうでない場合は、別のハブクラスターが最近バックアップデータを保存場所に書き込んだことになり、ハブクラスターが別のハブクラスターと競合していることを示します。
バックアップの競合シナリオでは、現在のハブクラスター BackupSchedule.cluster.open-cluster-management.io リソースの status が BackupCollision に設定されます。データの破損を防ぐために、このリソースは Schedule.velero.io リソースを削除します。バックアップポリシーは、BackupCollision を報告します。
同じシナリオでは、管理者は、どのハブクラスターがストレージの場所に書き込むかを検証します。管理者は、無効なハブクラスターから BackupSchedule.cluster.open-cluster-management.io リソースを削除する前に、この検証を行います。次に、管理者は、有効なプライマリーハブクラスターに新しい BackupSchedule.cluster.open-cluster-management.io リソースを作成し、バックアップを再開できます。
バックアップの競合があるかどうかを確認するには、次のコマンドを実行します。
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.
1.1.4.5. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
1.1.5. バックアップの復元 リンクのコピーリンクがクリップボードにコピーされました!
一般的な復元シナリオでは、バックアップが実行されるハブクラスターが利用できなくなり、バックアップデータを新しいハブクラスターに移動する必要があります。これには、新しいハブクラスターでクラスター復元操作を実行します。この場合、バックアップが作成されたのとは異なるハブクラスターで復元操作を実行します。
以前のスナップショットからデータを復元できるように、バックアップデータを取得したハブクラスターでデータを復元することもあります。その場合は、復元とバックアップ操作の両方が同じハブクラスターで実行されます。
ハブクラスターに restore.cluster.open-cluster-management.io リソースを作成したら、次のコマンドを実行して復元操作のステータスを取得します。
oc get restore -n open-cluster-management-backup
バックアップファイルに含まれるバックアップリソースが作成されたことも確認できます。
注記: Restore passive resources セクションで説明されているように、syncRestoreWithNewBackups オプションを使用して true に設定しない限り、restore.cluster.open-cluster-management.io リソースは 1 回実行されます。復元操作の完了後に同じ復元操作を再度実行する場合は、同じ spec オプションで新しい restore.cluster.open-cluster-management.io リソースを作成する必要があります。
復元操作は、バックアップ操作で作成された 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 つのタイプのバックアップファイルがすべて復元されています。
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: Restore
metadata:
name: restore-acm
namespace: open-cluster-management-backup
spec:
veleroManagedClustersBackupName: latest
veleroCredentialsBackupName: latest
veleroResourcesBackupName: latest
注記 Hive API によって作成されたマネージドクラスターのみが、マネージドクラスターのバックアップからの acm-managed-clusters バックアップが別のハブクラスターに復元されるときに、新しいハブクラスターに自動的に接続されます。他のすべてのマネージドクラスターは Pending Import 状態のままであり、新しいハブクラスターにインポートし直す必要があります。詳細は、インポートしたマネージドクラスターの復元 を参照してください。
1.1.5.1. 最初のプライマリーハブへのデータの復元 リンクのコピーリンクがクリップボードにコピーされました!
クラスター上のバックアップデータを復元する必要がある場合は、プライマリーハブクラスターまたは復元操作の前にユーザーリソースが作成されたハブクラスターを使用する代わりに、新しいクラスターを作成します。ハブクラスターの復元操作中に、復元されるバックアップデータの一部でない場合に、既存のリソースをクリーンアップするようにハブクラスターのバックアップの復元を設定できます。復元では、以前のバックアップによって作成されたリソースは消去されますが、ユーザーリソースは消去されません。その結果、このハブクラスター上でユーザーが作成したリソースは消去されないため、このハブクラスター上のデータには、復元されたリソースで使用可能なデータが反映されません。
パッシブハブでの復元操作のみを検証し、その後プライマリーハブクラスターの使用に戻る障害復旧テストは、プライマリーハブクラスターをパッシブクラスターとして使用できる状況の 1 つです。この復元テストシナリオでは、ハブバックアップシナリオのみをテストします。新しいリソースを作成するためにプライマリーハブクラスターは使用しません。代わりに、バックアップデータはプライマリーハブクラスターからパッシブハブクラスターに一時的に移動しました。すべてのリソースをこのハブクラスターに復元すると、最初のプライマリーハブクラスターを再びプライマリーハブクラスターにすることができます。この操作により、復元後の操作が実行し、マネージドクラスターがこのハブクラスターに戻されます。
1.1.5.2. 新規ハブクラスターの準備 リンクのコピーリンクがクリップボードにコピーされました!
ハブクラスターでバックアップデータを復元する必要がある場合は、プライマリーハブクラスターまたは復元操作の前に以前のユーザーがリソースを作成したハブクラスターを使用する代わりに、新しいハブクラスターを作成します。
障害復旧シナリオでは、バックアップをパッシブハブクラスターに復元するときに、障害発生中に失敗したハブクラスターと同じハブクラスターが必要になります。アプリケーション、ポリシー、追加のマネージドクラスターなど、その他のユーザーリソースは必要ありません。
このハブクラスターでバックアップを復元する場合、このハブクラスターによって管理されるマネージドクラスターがあると、復元操作によってそれらのクラスターがデタッチされ、クラスターリソースが削除される可能性があります。復元操作では、復元されたバックアップに含まれないリソースをクリーンアップするためにこれを行います。その結果、このハブクラスターのコンテンツは最初のハブクラスターと同じになります。この場合、マネージドクラスターのワークロードがデタッチアクションによってデタッチされるため、ユーザーデータが失われる可能性があります。
新しいハブクラスターで復元操作を実行する前に、ハブクラスターを手動で設定し、初期ハブクラスターと同じ 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.3. Cleaning the hub cluster after restore リンクのコピーリンクがクリップボードにコピーされました!
現在復元されているバックアップで既存のリソースが変更されている場合、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オプションは使用しないでください。細心の注意を払って最後の手段としてのみ使用してください。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.4. バックアップの確認中にパッシブリソースを復元する リンクのコピーリンクがクリップボードにコピーされました!
新しいバックアップが利用可能かどうかを引き続き確認し、それらを自動的に復元しながら、restore-passive-sync サンプルを使用してパッシブデータを復元します。新しいバックアップを自動的に復元するには、syncRestoreWithNewBackups パラメーターを true に設定する必要があります。また、最新のパッシブデータだけを復元する必要もあります。サンプルの例は、このセクションの最後にあります。
VeleroResourcesBackupName および VeleroCredentialsBackupName パラメーターを latest に設定し、VeleroManagedClustersBackupName パラメーターを省略して スキップ します。VeleroManagedClustersBackupName が latest に設定された直後に、マネージドクラスターは新しいハブクラスターでアクティベートされ、プライマリーハブクラスターになります。
アクティベートされたマネージドクラスターがプライマリーハブクラスターになると、復元リソースが Finished に設定され、true に設定されていても syncRestoreWithNewBackups は無視されます。
デフォルトでは、コントローラーは syncRestoreWithNewBackups が true に設定されると、30 分ごとに新規バックアップをチェックします。新しいバックアップが見つかった場合は、バックアップされたリソースを復元します。restoreSyncInterval パラメーターを更新してチェックの期間を変更できます。
たとえば、10 分ごとにバックアップをチェックする次のリソースを参照してください。
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: Restore
metadata:
name: restore-acm-passive-sync
namespace: open-cluster-management-backup
spec:
syncRestoreWithNewBackups: true # restore again when new backups are available
restoreSyncInterval: 10m # check for new backups every 10 minutes
cleanupBeforeRestore: CleanupRestored
veleroManagedClustersBackupName: skip
veleroCredentialsBackupName: latest
veleroResourcesBackupName: latest
1.1.5.5. Restoring passive resources リンクのコピーリンクがクリップボードにコピーされました!
パッシブ設定でハブクラスターリソースを復元するには、restore-acm-passive サンプルを使用します。パッシブデータは、シークレット、ConfigMap、アプリケーション、ポリシー、およびすべてのマネージドクラスターカスタムリソースなどのバックアップデータで、マネージドクラスターとハブクラスター間の接続をアクティブ化しません。バックアップリソースは、認証情報のバックアップおよび復元リソースによりハブクラスターで復元されます。
以下のサンプルを参照してください。
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: Restore
metadata:
name: restore-acm-passive
namespace: open-cluster-management-backup
spec:
cleanupBeforeRestore: CleanupRestored
veleroManagedClustersBackupName: skip
veleroCredentialsBackupName: latest
veleroResourcesBackupName: latest
1.1.5.6. アクティベーションリソースの復元 リンクのコピーリンクがクリップボードにコピーされました!
パッシブハブクラスターにアクティベーションデータを復元する前に、バックアップが作成された以前のハブクラスターをシャットダウンします。プライマリーハブクラスターがまだ実行中の場合は、このハブクラスターで実行されている調整手順に基づいて、使用できなくなったマネージドクラスターへの再接続を試行します。
ハブクラスターでクラスターを管理する場合は、restore-acm-passive-activate サンプルを使用します。この場合、パッシブリソースを使用するハブクラスターで他のデータがすでに復元されていることを前提とします。
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: Restore
metadata:
name: restore-acm-passive-activate
namespace: open-cluster-management-backup
spec:
cleanupBeforeRestore: CleanupRestored
veleroManagedClustersBackupName: latest
veleroCredentialsBackupName: skip
veleroResourcesBackupName: skip
パッシブリソースを復元した方法に応じて、アクティベーションリソースを復元するいくつかのオプションがあります。
-
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.7. マネージドクラスターのアクティベーションデータの復元 リンクのコピーリンクがクリップボードにコピーされました!
cluster.open-cluster-management.io/backup: cluster-activation ラベルを使用すると、マネージドクラスターのアクティベーションデータまたはその他のアクティベーションデータリソースは、マネージドクラスターのバックアップおよび resource-generic バックアップにより保存されます。アクティベーションデータが新しいハブクラスターに復元すると、マネージドクラスターは、復元が実行するハブクラスターによりアクティブに管理されます。Operator の使用方法については、バックアップのスケジュールと復元 を参照してください。
1.1.5.8. 全リソースの復元 リンクのコピーリンクがクリップボードにコピーされました!
一度にすべてのデータを復元し、ハブクラスターがマネージドクラスターを 1 つのステップで管理するようにする場合は、restore-acm サンプルを使用します。ハブクラスターに restore.cluster.open-cluster-management.io リソースを作成したら、次のコマンドを実行して復元操作のステータスを取得します。
oc get restore -n open-cluster-management-backup
サンプルは、次のリソースに酷似している可能性があります。
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: Restore
metadata:
name: restore-acm
namespace: open-cluster-management-backup
spec:
cleanupBeforeRestore: CleanupRestored
veleroManagedClustersBackupName: latest
veleroCredentialsBackupName: latest
veleroResourcesBackupName: latest
ハブクラスターから、バックアップファイルに含まれるバックアップされたリソースが作成されていることを確認します。
1.1.5.9. インポートされたマネージドクラスターの復元 リンクのコピーリンクがクリップボードにコピーされました!
Hive API を使用してプライマリーハブクラスターに接続されたマネージドクラスターのみが、アクティベーションデータが復元される新しいハブクラスターに自動的に接続されます。これらのクラスターは、Clusters タブの Create cluster ボタンを使用するか、CLI を通じて、Hive API によってプライマリーハブクラスター上に作成されています。Import cluster ボタンを使用して最初のハブクラスターに接続されたマネージドクラスターは、アクティベーションデータが復元されると Pending Import として表示され、新しいハブクラスターにインポートし直す必要があります。
Hive がマネージドクラスター kubeconfig をハブクラスターのマネージドクラスター namespace に格納するため、Hive マネージドクラスターを新しいハブクラスターに接続できます。これは、新しいハブクラスターでバックアップおよび復元されます。次に、インポートコントローラーは、復元された設定を使用してマネージドクラスターのブートストラップ kubeconfig を更新します。これは、Hive API を使用して作成されたマネージドクラスターでのみ使用できます。インポートされたクラスターでは使用できません。
インポートされたクラスターを新しいハブクラスターに再接続するには、復元操作の開始後に auto-import-secret リソースを手動で作成します。詳細は、自動インポートシークレットを使用したクラスターのインポート を参照してください。
Pending Import 状態のクラスターごとに、マネージドクラスターの namespace に auto-import-secret リソースを作成します。インポートコンポーネントが新しいハブクラスターで自動インポートを開始するのに十分な権限を持つ kubeconfig またはトークンを使用します。マネージドクラスターに接続するには、トークンを使用して各マネージドクラスターにアクセスできる必要があります。トークンには、klusterlet ロールバインディングまたは同じアクセス権限を持つロールが必要です。
1.1.5.10. 他の復元サンプルの使用 リンクのコピーリンクがクリップボードにコピーされました!
次の復元セクションを参照して、さまざまな種類のバックアップファイルを復元するための YAML の例を確認してください。
3 種類のバックアップリソースをすべて復元します。
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Restore metadata: name: restore-acm namespace: open-cluster-management-backup spec: veleroManagedClustersBackupSchedule: latest veleroCredentialsBackupSchedule: latest veleroResourcesBackupSchedule: latestマネージドクラスターリソースのみを復元します。
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Restore metadata: name: restore-acm namespace: open-cluster-management-backup spec: veleroManagedClustersBackupName: latest veleroCredentialsBackupName: skip veleroResourcesBackupName: skipacm-managed-clusters-schedule-20210902205438バックアップを使用して、マネージドクラスターのリソースのみを復元します。apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Restore metadata: name: restore-acm namespace: open-cluster-management-backup spec: veleroManagedClustersBackupName: acm-managed-clusters-schedule-20210902205438 veleroCredentialsBackupName: skip veleroResourcesBackupName: skip注記:
-
restore.cluster.open-cluster-management.ioリソースは 1 回実行されます。復元操作が完了したら、オプションで同じハブクラスターで別の復元操作を実行できます。新しい復元操作を実行するには、restore.cluster.open-cluster-management.ioリソースを新規作成する必要があります。 -
複数の
restore.cluster.open-cluster-management.ioを作成できますが、同時に実行できるのは 1 つのみです。
-
1.1.5.11. 復元イベントの表示 リンクのコピーリンクがクリップボードにコピーされました!
以下のコマンドを使用して、復元イベントに関する情報を取得します。
oc describe -n open-cluster-management-backup <restore-name>
イベント一覧は以下の例のようになります。
Spec:
Cleanup Before Restore: CleanupRestored
Restore Sync Interval: 4m
Sync Restore With New Backups: true
Velero Credentials Backup Name: latest
Velero Managed Clusters Backup Name: skip
Velero Resources Backup Name: latest
Status:
Last Message: Velero restores have run to completion, restore will continue to sync with new backups
Phase: Enabled
Velero Credentials Restore Name: example-acm-credentials-schedule-20220406171919
Velero Resources Restore Name: example-acm-resources-schedule-20220406171920
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Prepare to restore: 76m Restore controller Cleaning up resources for backup acm-credentials-hive-schedule-20220406155817
Normal Prepare to restore: 76m Restore controller Cleaning up resources for backup acm-credentials-cluster-schedule-20220406155817
Normal Prepare to restore: 76m Restore controller Cleaning up resources for backup acm-credentials-schedule-20220406155817
Normal Prepare to restore: 76m Restore controller Cleaning up resources for backup acm-resources-generic-schedule-20220406155817
Normal Prepare to restore: 76m Restore controller Cleaning up resources for backup acm-resources-schedule-20220406155817
Normal Velero restore created: 74m Restore controller example-acm-credentials-schedule-20220406155817
Normal Velero restore created: 74m Restore controller example-acm-resources-generic-schedule-20220406155817
Normal Velero restore created: 74m Restore controller example-acm-resources-schedule-20220406155817
Normal Velero restore created: 74m Restore controller example-acm-credentials-cluster-schedule-20220406155817
Normal Velero restore created: 74m Restore controller example-acm-credentials-hive-schedule-20220406155817
Normal Prepare to restore: 64m Restore controller Cleaning up resources for backup acm-resources-schedule-20220406165328
Normal Prepare to restore: 62m Restore controller Cleaning up resources for backup acm-credentials-hive-schedule-20220406165328
Normal Prepare to restore: 62m Restore controller Cleaning up resources for backup acm-credentials-cluster-schedule-20220406165328
Normal Prepare to restore: 62m Restore controller Cleaning up resources for backup acm-credentials-schedule-20220406165328
Normal Prepare to restore: 62m Restore controller Cleaning up resources for backup acm-resources-generic-schedule-20220406165328
Normal Velero restore created: 61m Restore controller example-acm-credentials-cluster-schedule-20220406165328
Normal Velero restore created: 61m Restore controller example-acm-credentials-schedule-20220406165328
Normal Velero restore created: 61m Restore controller example-acm-resources-generic-schedule-20220406165328
Normal Velero restore created: 61m Restore controller example-acm-resources-schedule-20220406165328
Normal Velero restore created: 61m Restore controller example-acm-credentials-hive-schedule-20220406165328
Normal Prepare to restore: 38m Restore controller Cleaning up resources for backup acm-resources-generic-schedule-20220406171920
Normal Prepare to restore: 38m Restore controller Cleaning up resources for backup acm-resources-schedule-20220406171920
Normal Prepare to restore: 36m Restore controller Cleaning up resources for backup acm-credentials-hive-schedule-20220406171919
Normal Prepare to restore: 36m Restore controller Cleaning up resources for backup acm-credentials-cluster-schedule-20220406171919
Normal Prepare to restore: 36m Restore controller Cleaning up resources for backup acm-credentials-schedule-20220406171919
Normal Velero restore created: 36m Restore controller example-acm-credentials-cluster-schedule-20220406171919
Normal Velero restore created: 36m Restore controller example-acm-credentials-schedule-20220406171919
Normal Velero restore created: 36m Restore controller example-acm-resources-generic-schedule-20220406171920
Normal Velero restore created: 36m Restore controller example-acm-resources-schedule-20220406171920
Normal Velero restore created: 36m Restore controller example-acm-credentials-hive-schedule-20220406171919
1.1.5.12. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- 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リソースでmanagedserviceaccountenabledパラメーターをtrueに設定して、マネージドサービスアカウントコンポーネントを有効にします。以下の例を参照してください。apiVersion: multicluster.openshift.io/v1 kind: MultiClusterEngine metadata: name: multiclusterhub spec: overrides: components: - enabled: true name: managedserviceaccountuseManagedServiceAccountパラメーターをtrueに設定して、BackupSchedule.cluster.open-cluster-management.ioリソースの自動インポート機能を有効にします。以下の例を参照してください。apiVersion: cluster.open-cluster-management.io/v1beta1 kind: BackupSchedule metadata: name: schedule-acm-msa namespace: open-cluster-management-backup spec: veleroSchedule: veleroTtl: 120h useManagedServiceAccount: trueデフォルトのトークン有効期間は、ライフサイクル全体にわたってトークンを保存するすべてのバックアップに対してトークンが有効になる可能性を高くするために、
veleroTtlの値の 2 倍に設定されます。場合によっては、オプションのmanagedServiceAccountTTLプロパティーの値を設定することで、トークンの有効期間を制御する必要がある場合があります。生成されたトークンのデフォルトのトークン有効期限を更新する必要がある場合は、注意して
managedServiceAccountTTLを使用してください。トークンの有効期限をデフォルト値から変更すると、バックアップのライフサイクル中に有効期限が切れるように設定されたトークンを使用してバックアップが作成される可能性があります。その結果、インポート機能はマネージドクラスターでは機能しません。重要: トークンの有効期間を制御する必要がない限り、
managedServiceAccountTTLを使用しないでください。managedServiceAccountTTLプロパティーの使用例は、次の例を参照してください。apiVersion: cluster.open-cluster-management.io/v1beta1 kind: BackupSchedule metadata: name: schedule-acm-msa namespace: open-cluster-management-backup spec: veleroSchedule: veleroTtl: 120h useManagedServiceAccount: true managedServiceAccountTTL: 300h
自動インポート機能を有効にすると、バックアップコンポーネントは以下を作成して、インポートされたマネージドクラスターの処理を開始します。
-
managed-serviceaccountという名前のManagedServiceAddon。 -
auto-import-accountという名前のManagedServiceAccount。 -
マネージドクラスターで
ManagedServiceAccountトークンのklusterlet-bootstrap-kubeconfigRoleBindingを設定するための、各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を設定する必要があります。以下の例を参照してください。apiVersion: cluster.open-cluster-management.io/v1 kind: ManagedCluster metadata: name: managed-cluster-name spec: hubAcceptsClient: true leaseDurationSeconds: 60 managedClusterClientConfigs: url: <apiserver>クラスターがハブクラスターにインポートされると、
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 に設定することで、クラスターの自動インポート機能を無効にすることができます。以下の例を参照してください。
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: BackupSchedule
metadata:
name: schedule-acm-msa
namespace: open-cluster-management-backup
spec:
veleroSchedule:
veleroTtl: 120h
useManagedServiceAccount: false
デフォルト値は false です。値を false に設定した後、バックアップ Operator は、ManagedServiceAddon、ManagedServiceAccount、および ManifestWork を含む、作成されたすべてのリソースを削除します。リソースを削除すると、ハブクラスターとマネージドクラスターの自動インポートトークンが削除されます。
1.1.6.4. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- Managed Service Account の詳細は、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-backupnamespace に自動的にインストールできます。namespace に OADP Operator を手動でインストールすることもできます。 -
手動インストール用に選択した
OADP-channelは、Red Hat Advanced Cluster Management のバックアップおよび復元 Operator Helm チャートによって設定されたバージョンと一致するか、それを超えている必要があります。 -
OADP Operator と Velero Custom Resource Definition (CRD) は
cluster-scopedであるため、同じクラスター上に複数のバージョンを持つことはできません。open-cluster-management-backupnamespace とその他の namespace に同じバージョンをインストールする必要があります。 次のテンプレートを使用して、可用性を確認し、OADP のインストールを検証します。
-
oadp-operator-exists: このテンプレートを使用して、OADP Operator がopen-cluster-management-backupnamespace にインストールされているかどうかを確認します。 -
oadp-channel-validation: このテンプレートを使用して、open-cluster-management-backupnamespace の OADP Operator のバージョンが、Red Hat Advanced Cluster Management バックアップおよび復元 Operator によって設定されたバージョンと一致するか、それを超えていることを確認します。 -
custom-oadp-channel-validation: このテンプレートを使用して、他の namespace の OADP Operator がopen-cluster-management-backupnamespace のバージョンと一致するかどうかを確認します。
-
-
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リソースがプライマリーハブクラスターで無効になっているか、スケジュールされたバックアップを作成できないことを示しています。 -
BackupSchedulecron ジョブ定義で新しいバックアップが作成されると想定されており、プライマリーハブクラスターのバックアップスケジュールで新しいバックアップが生成されなかった場合、backup-schedule-cron-enabledポリシーテンプレートは違反になります。これは、BackupScheduleが存在しない、一時停止されている、またはBackupSchedulecron ジョブプロパティーが更新されてバックアップの実行時間が長くなった場合に発生する可能性があります。新しいバックアップセットが作成されるまで、テンプレートは違反状態になります。 テンプレートの検証は次のように機能します。
-
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シークレットがlocal-cluster以外のマネージドクラスターの namespace に作成されているかどうかを確認します。バックアップコントローラーにより、インポートされたマネージドクラスターが定期的にスキャンされます。マネージドクラスターが検出されるとすぐに、バックアップコントローラーはマネージドクラスターの namespace にManagedServiceAccountリソースを作成します。このプロセスにより、マネージドクラスター上でトークンの作成が開始されます。ただし、この操作の時点でマネージドクラスターにアクセスできない場合、ManagedServiceAccountはトークンを作成できません。たとえば、マネージドクラスターが休止状態の場合、トークンを作成できません。したがって、この期間中にハブのバックアップが実行されると、マネージドクラスターを自動インポートするためのトークンがバックアップに不足します。
-
自動インポートのバックアップラベル検証
-
auto-import-backup-labelテンプレートは、local-cluster以外のマネージドクラスターの 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 を指定します。
spec:
backupLocations:
- velero:
config:
kmsKeyId: 502b409c-4da1-419f-a16e-eif453b3i49f
profile: default
region: us-east-1
他のストレージプロバイダーの設定可能なすべてのパラメーターについては、Velero がサポートするストレージプロバイダー を参照してください。
1.1.7.2. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
- バックアップストレージの場所の YAML を参照してください。
- Velero のサポート対象ストレージプロバイダー を参照してください。
- バックアップまたは復元設定の検証 に戻ってください。
1.1.8. 高度な設定のバックアップと復元 リンクのコピーリンクがクリップボードにコピーされました!
次のセクションを参照して、バックアップと復元をさらに詳細に設定できます。
1.1.8.1. リソース要求および制限のカスタマイズ リンクのコピーリンクがクリップボードにコピーされました!
Velero の初回インストール時に、Velero Pod は以下のサンプルで定義されるデフォルトの CPU およびメモリー制限に設定されます。
resources:
limits:
cpu: "1"
memory: 256Mi
requests:
cpu: 500m
memory: 128Mi
前のサンプルの制限は一部のシナリオでうまく機能しますが、クラスターが多数のリソースをバックアップする場合には更新する必要がある場合があります。たとえば、2000 個のクラスターを管理するハブクラスターでバックアップを実行すると、メモリー不足 (OOM) エラーが原因で、Velero Pod が失敗します。以下の設定では、このシナリオでバックアップを完了できます。
limits:
cpu: "2"
memory: 1Gi
requests:
cpu: 500m
memory: 256Mi
Velero Pod リソースの制限および要求を更新するには、DataProtectionApplication リソースを更新し、Velero Pod の resourceAllocation テンプレートを挿入する必要があります。以下のサンプルを参照してください。
apiVersion: oadp.openshift.io/v1alpha1
kind: DataProtectionApplication
metadata:
name: velero
namespace: open-cluster-management-backup
spec:
...
configuration:
...
velero:
podConfig:
resourceAllocations:
limits:
cpu: "2"
memory: 1Gi
requests:
cpu: 500m
memory: 256Mi
1.1.8.2. 関連情報 リンクのコピーリンクがクリップボードにコピーされました!
-
DataProtectionApplicationパラメーターの詳細は、Red Hat OpenShift Container Platform ドキュメントの デフォルトの Velero クラウドプロバイダーのプラグイン トピックを参照してください。 - クラスターの使用状況に基づくバックアップおよび復元の CPU およびメモリー要件の詳細は、OpenShift Container Platform ドキュメントの 設定に必要な CPU とメモリー トピックを参照してください。