このページでは、Google Distributed Cloud(GDC)エアギャップでバックアップのきめ細かい復元を作成する方法について説明します。
きめ細かい復元機能を使用すると、バックアップからリソースのサブセットを復元できます。この機能を使用すると、復元プランで定義された復元スコープを調整できます。
始める前に
バックアップのきめ細かい復元を作成するには、次のものが必要です。
- 既存のバックアップ。詳細については、一連のバックアップを計画するをご覧ください。
必要な ID とアクセスロール:
- PA ユーザーの場合:
- ユーザー クラスタ バックアップ管理者: ユーザー クラスタのバックアップ プランや復元プランなどのバックアップ リソースを管理します。組織 IAM 管理者に、ユーザー クラスタ バックアップ管理者(
user-cluster-backup-admin
)ロールを付与するよう依頼します。
- ユーザー クラスタ バックアップ管理者: ユーザー クラスタのバックアップ プランや復元プランなどのバックアップ リソースを管理します。組織 IAM 管理者に、ユーザー クラスタ バックアップ管理者(
- AO ユーザーの場合:
- バックアップ作成者: 手動バックアップの作成と復元を行います。プロジェクト IAM 管理者に、バックアップ作成者(
backup-creator
)ロールを付与するよう依頼します。
- バックアップ作成者: 手動バックアップの作成と復元を行います。プロジェクト IAM 管理者に、バックアップ作成者(
- 詳細については、ロールの定義をご覧ください。
- PA ユーザーの場合:
きめ細かい復元を作成する
きめ細かいフィルタを使用して復元を作成する手順は次のとおりです。
きめ細かい復元フィルタを作成します。次の YAML の例を使用できます。
inclusionFilters: - groupKind: group: foo.io kind: Bar name: name1 namespace: ns1 exclusionFilters: - labels: key1: value1 key2: value2
既存の
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-vars
の ConfigMap
リソースを復元します。そのために、きめ細かい復元 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:value1
と key2:value2
の両方を持つリソースを復元します。きめ細かい復元 inclusionFilters
を使用してリソースを選択します。
filter:
inclusionFilters:
- labels:
key1: value1
key2: value2
一部の GroupKind のリソースをすべて除外する
この例では、ConfigMap
と storage.k8s.io/StorageClass
の groupKind
リソースを除く、使用可能なすべてのリソースを復元します。この 2 つの GroupKind を除外するには、きめ細かい復元 exclusionFilters
を使用します。
filter:
exclusionFilters:
- groupKind:
kind: ConfigMap
- groupKind:
group: storage.k8s.io
kind: StorageClass