1.3. Operator アーキテクチャーのバックアップと復元
Operator は、プロセスに使用されている backupSchedule.cluster.open-cluster-management.io
リソース (Red Hat Advanced Cluster Management のバックアップスケジュールの設定に使用) と restore.cluster.open-cluster-management.io
リソース (バックアップの処理と復元に使用) を定義します。Operator は、対応する Velero リソースを作成し、リモートクラスターと、復元を必要とする他のハブクラスターリソースのバックアップに必要なオプションを定義します。次の図を表示します。
1.3.1. バックアップされるリソース
クラスターのバックアップと復元の Operator ソリューションは、マネージドクラスター、アプリケーション、ポリシーなど、すべてのハブクラスターリソースのバックアップと復元のサポートを提供します。このソリューションを使用して、基本的なハブクラスターのインストールを拡張するサードパーティーリソースをバックアップできます。このバックアップソリューションを使用すると、cron ベースのバックアップスケジュールを定義できます。これは、指定された時間間隔で実行し、ハブクラスターのコンテンツの最新バージョンを継続的にバックアップします。
ハブクラスターを交換する必要がある場合、またはハブクラスターに障害が発生したときに災害シナリオにある場合は、新しいハブクラスターをデプロイし、バックアップデータを新しいハブクラスターに移動できます。
バックアップデータを識別するために、次のクラスターバックアップおよび復元プロセスの順序付きリストを表示します。
-
MultiClusterHub
namespace のすべてのリソースを除外します。これは、現在のハブクラスター ID にリンクされているため、バックアップする必要のないインストールリソースのバックアップを回避するためです。 -
API バージョンの接尾辞が
.open-cluster-management.io
のすべての CRD をバックアップします。この接尾辞は、すべての Red Hat Advanced Cluster Management リソースがバックアップされることを示します。 -
API グループ (
argoproj.io
、app.k8s.io
、core.observatorium.io
、hive.openshift.io
) からすべての CRD をバックアップします。 -
API グループ (
admission.cluster.open-cluster-management.io
、admission.work.open-cluster-management.io
、internal.open-cluster-management.io
、operator.open-cluster-management.io
,work.open-cluster-management.io
、search.open-cluster-management.io
、admission.hive.openshift.io
、velero.io
) からすべての CRD を除外します。 -
含まれる API グループの一部である CRD (
clustermanagementaddon
、observabilityaddon
、applicationmanager
、certpolicycontroller
、iampolicycontroller
、policycontroller
、searchcollector
、workmanager
、backupschedule
、restore
、clusterclaim.cluster.open-cluster-management.io
) を除外しますが、これらは必要ないか、所有者リソースによって再作成されます。これらもバックアップされます。 -
ラベル (
cluster.open-cluster-management.io/type
、hive.openshift.io/secret-type
、cluster.open-cluster-management.io/backup
) のいずれかを使用してシークレットと ConfigMap をバックアップします。 バックアップが必要で、前述の基準に含まれていないその他のリソースには、
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 クラスターをデプロイする場合は、cluster.open-cluster-management.io/backup
ラベルをClusterDeployment
で使用されるシークレットに手動で追加する必要があります。バックアップしたくない特定のリソースを除外します。たとえば、バックアッププロセスから Velero リソースを除外するには、次の例を参照してください。
apiVersion: my.group/v1alpha1 kind: MyResource metadata: labels: velero.io/exclude-from-backup: "true"
1.3.2. マネージドクラスターのアクティブ化時に復元されるリソース
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
cluster.open-cluster-management.io/backup: cluster-activation
ラベルを使用して識別され、acm-resources-generic-schedule
バックアップによって保存されるアクティベーションデータリソースとは別に、クラスターのバックアップおよび復元 Operator には、デフォルトでは、アクティベーションセット内のいくつかのリソースが含まれます。次のリソースは、acm-managed-clusters-schedule
バックアップによってバックアップされます。
-
managedcluster.cluster.open-cluster-management.io
-
managedcluster.clusterview.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.3.3. リソース要求および制限のカスタマイズ
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
-
DataProtectionApplication
パラメーターの詳細は、Red Hat OpenShift Container Platform ドキュメントの Default Velero cloud provider plugins トピックを参照してください。 - クラスターの使用状況に基づくバックアップおよび復元の CPU およびメモリー要件 の詳細は、OpenShift Container Platform ドキュメントの設定の CPU およびメモリー要件トピックを参照してください。