2.11. バックアップおよび復元用のハブクラスターの設定
GitOps ZTP を使用して、BareMetalHost
リソースをバックアップするための一連のポリシーを設定できます。これにより、障害が発生したハブクラスターからデータを回復し、Red Hat Advanced Cluster Management (RHACM) を使用して代替クラスターをデプロイできます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
権限を持つユーザーとしてログインしている。
手順
cluster.open-cluster-management.io/backup=cluster-activation
ラベルをinfraenvs.agent-install.openshift.io
ラベルの付いたすべてのBareMetalHost
リソースに追加するポリシーを作成します。ポリシーをBareMetalHostBackupPolicy.yaml
として保存します。以下の例では、
cluster.open-cluster-management.io/backup
ラベルを、infraenvs.agent-install.openshift.io
ラベルの付いたすべてのBareMetalHost
リソースに追加します。ポリシーの例
apiVersion: policy.open-cluster-management.io/v1 kind: Policy metadata: name: bmh-cluster-activation-label annotations: policy.open-cluster-management.io/description: Policy used to add the cluster.open-cluster-management.io/backup=cluster-activation label to all BareMetalHost resources spec: disabled: false policy-templates: - objectDefinition: apiVersion: policy.open-cluster-management.io/v1 kind: ConfigurationPolicy metadata: name: set-bmh-backup-label spec: object-templates-raw: | {{- /* Set cluster-activation label on all BMH resources */ -}} {{- $infra_label := "infraenvs.agent-install.openshift.io" }} {{- range $bmh := (lookup "metal3.io/v1alpha1" "BareMetalHost" "" "" $infra_label).items }} - complianceType: musthave objectDefinition: kind: BareMetalHost apiVersion: metal3.io/v1alpha1 metadata: name: {{ $bmh.metadata.name }} namespace: {{ $bmh.metadata.namespace }} labels: cluster.open-cluster-management.io/backup: cluster-activation 1 {{- end }} remediationAction: enforce severity: high --- apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Placement metadata: name: bmh-cluster-activation-label-pr spec: predicates: - requiredClusterSelector: labelSelector: matchExpressions: - key: name operator: In values: - local-cluster --- apiVersion: policy.open-cluster-management.io/v1 kind: PlacementBinding metadata: name: bmh-cluster-activation-label-binding placementRef: name: bmh-cluster-activation-label-pr apiGroup: cluster.open-cluster-management.io kind: Placement subjects: - name: bmh-cluster-activation-label apiGroup: policy.open-cluster-management.io kind: Policy --- apiVersion: cluster.open-cluster-management.io/v1beta2 kind: ManagedClusterSetBinding metadata: name: default namespace: default spec: clusterSet: default
- 1
cluster.open-cluster-management.io/backup: cluster-activation
ラベルをBareMetalHost
リソースに適用すると、RHACM クラスターはそれらのリソースをバックアップします。ハブアクティベーションリソースを復元する際に、アクティブなクラスターが使用できなくなった場合は、BareMetalHost
リソースを復元できます。
以下のコマンドを実行してポリシーを適用します。
$ oc apply -f BareMetalHostBackupPolicy.yaml
検証
以下のコマンドを実行して、ラベル
infraenvs.agent-install.openshift.io
を持つすべてのBareMetalHost
リソースを検索します。$ oc get BareMetalHost -A -l infraenvs.agent-install.openshift.io
出力例
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE baremetal-ns baremetal-name false 50s
以下のコマンドを実行して、ポリシーがラベル
cluster.open-cluster-management.io/backup=cluster-activation
をこれらのリソースすべてに適用していることを確認します。$ oc get BareMetalHost -A -l infraenvs.agent-install.openshift.io,cluster.open-cluster-management.io/backup=cluster-activation
出力例
NAMESPACE NAME STATE CONSUMER ONLINE ERROR AGE baremetal-ns baremetal-name false 50s
出力には前の手順と同じリストを表示する必要があります。このリストには、ラベル
infraenvs.agent-install.openshift.io
が付いたすべてのBareMetalHost
リソースがリスト表示されています。これにより、infraenvs.agent-install.openshift.io
ラベルが付いたすべてのBareMetalHost
リソースにも、cluster.open-cluster-management.io/backup: cluster-activation
ラベルがあることが確認されます。以下の例は、
infraenvs.agent-install.openshift.io
ラベルの付いたBareMetalHost
リソースを示しています。リソースに、作成したポリシーによって追加されたcluster.open-cluster-management.io/backup: cluster-activation
ラベルも必要です。apiVersion: metal3.io/v1alpha1 kind: BareMetalHost metadata: labels: cluster.open-cluster-management.io/backup: cluster-activation infraenvs.agent-install.openshift.io: value name: baremetal-name namespace: baremetal-ns
Red Hat Advanced Cluster Management を使用して、マネージドクラスターを復元できるようになりました。
クラスターアクティベーションデータの復元の一環として BareMetalHosts
リソースを復元する場合、BareMetalHosts
ステータスを復元する必要があります。次の RHACM Restore
リソースの例では、BareMetalHosts
を含むアクティベーションリソースを復元し、BareMetalHosts
リソースのステータスも復元します。
apiVersion: cluster.open-cluster-management.io/v1beta1 kind: Restore metadata: name: restore-acm-bmh namespace: open-cluster-management-backup spec: cleanupBeforeRestore: CleanupRestored veleroManagedClustersBackupName: latest 1 veleroCredentialsBackupName: latest veleroResourcesBackupName: latest restoreStatus: includedResources: - BareMetalHosts2