きめ細かい復元を作成する

このページでは、Google Distributed Cloud(GDC)エアギャップでバックアップのきめ細かい復元を作成する方法について説明します。

きめ細かい復元機能を使用すると、バックアップからリソースのサブセットを復元できます。この機能を使用すると、復元プランで定義された復元スコープを調整できます。

始める前に

バックアップのきめ細かい復元を作成するには、次のものが必要です。

  • 既存のバックアップ。詳細については、一連のバックアップを計画するをご覧ください。
  • 必要な ID とアクセスロール:

    • PA ユーザーの場合:
      • ユーザー クラスタ バックアップ管理者: ユーザー クラスタのバックアップ プランや復元プランなどのバックアップ リソースを管理します。組織 IAM 管理者に、ユーザー クラスタ バックアップ管理者(user-cluster-backup-admin)ロールを付与するよう依頼します。
    • AO ユーザーの場合:
      • バックアップ作成者: 手動バックアップの作成と復元を行います。プロジェクト IAM 管理者に、バックアップ作成者(backup-creator)ロールを付与するよう依頼します。
    • 詳細については、ロールの定義をご覧ください。

きめ細かい復元を作成する

きめ細かいフィルタを使用して復元を作成する手順は次のとおりです。

  1. きめ細かい復元フィルタを作成します。次の YAML の例を使用できます。

    inclusionFilters:
      - groupKind:
          group: foo.io
          kind: Bar
        name: name1
        namespace: ns1
    exclusionFilters:
      - labels:
          key1: value1
          key2: value2
    
  2. 既存の Backups からの復元を計画する ManualRestoreRequest カスタム リソースを作成します。ManualRestoreRequest の例を次に示します。

    apiVersion: backup.gdc.goog/v1
    kind: ManualRestoreRequest
    metadata:
      name: RESTORE_NAME
      namespace: PROJECT_NAMESPACE
    spec:
      restoreName: RESTORE_NAME
      restorePlanName: RESTORE_PLAN
      backupName: BACKUP_NAME
      filter:
        FINE_GRAINED_RESTORE_FILTERS
    

次のように置き換えます。

  • RESTORE_NAME: 作成する復元の名前。
  • PROJECT_NAMESPACE: GDC プロジェクトの名前。
  • RESTORE_PLAN: この復元の派生元である復元プランの名前。
  • BACKUP_NAME: 復元するバックアップ。このバックアップは、復元プランが参照するバックアップ プランに関連付けられている必要があります。詳細については、一連の復元を計画するをご覧ください。
  • FINE_GRAINED_RESTORE_FILTER: きめ細かい復元フィルタ。例については、きめ細かい復元フィルタの例をご覧ください。

きめ細かい復元フィルタの例

以下の例は、Google Cloud CLI で使用される YAML 形式で記載しています。

単一の名前空間スコープのリソースを復元する

この例では、Namespace webserver で名前 nginx-varsConfigMap リソースを復元します。そのために、きめ細かい復元 inclusionFilters を使用してリソースを選択します。コアグループのリソースを選択する場合は、group フィールドに空の文字列を使用します。

filter:
  inclusionFilters:
  - groupKind:
      kind: ConfigMap
    name: nginx-vars
    namespace: webserver

単一クラスタ スコープのリソースを除外する

この例では、名前が sc1 の 1 つの groupKind リソースを除く、使用可能なすべてのリソースを復元します。そのため、きめ細かい復元 exclusionFilters を使用して、そのリソースを除外します。

filter:
  exclusionFilters:
  - groupKind:
      group: storage.k8s.io
      kind: StorageClass
    name: sc1

2 つのラベルを使用してリソースを復元する

この例では、ラベル key1:value1key2:value2 の両方を持つリソースを復元します。きめ細かい復元 inclusionFilters を使用してリソースを選択します。

filter:
  inclusionFilters:
  - labels:
      key1: value1
      key2: value2

一部の GroupKind のリソースをすべて除外する

この例では、ConfigMapstorage.k8s.io/StorageClassgroupKind リソースを除く、使用可能なすべてのリソースを復元します。この 2 つの GroupKind を除外するには、きめ細かい復元 exclusionFilters を使用します。

filter:
  exclusionFilters:
  - groupKind:
      kind: ConfigMap
  - groupKind:
      group: storage.k8s.io
      kind: StorageClass

次のステップ