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-activation1 {{- 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
veleroCredentialsBackupName: latest
veleroResourcesBackupName: latest
restoreStatus:
includedResources:
- BareMetalHosts