ワークロードをバックアップする

このドキュメントでは、Google Distributed Cloud(GDC)エアギャップ環境でクラスタ ワークロードの手動バックアップを作成し、既存のバックアップを表示して削除する方法について説明します。

始める前に

アプリケーション オペレーター(AO)ユーザーは、既存のバックアップ プランからのみ手動バックアップを実行できます。

IAM ロールをリクエストする

バックアップを作成、表示、削除するには、組織 IAM 管理者またはプロジェクト IAM 管理者に次のいずれかのロールの付与を依頼してください。

  • ユーザー クラスタ バックアップ管理者user-cluster-backup-admin): ユーザー クラスタ内のバックアップ プランや復元プランなどのバックアップ リソースを作成、取得、一覧表示、監視、更新、パッチ適用、削除します。このロールをリクエストするには、組織 IAM 管理者にお問い合わせください。

  • バックアップ作成者backup-creator): 手動バックアップ リクエストと手動復元リクエストを作成、取得、一覧表示、監視、更新、パッチ適用、削除します。このロールをリクエストするには、プロジェクト IAM 管理者にお問い合わせください。

手動バックアップの作成

バックアップ プランでバックアップのスケジュールが定義されている場合、バックアップはそのスケジュールに従って自動的に作成されます。バックアップ プランのスケジュール外でバックアップを手動で作成することもできます。たとえば、アプリケーションをアップグレードする前に、ワークロードをバックアップできます。バックアップには、ノード構成、ノードプール、初期クラスタサイズ、有効な機能など、クラスタ構成情報は含まれません。

バックアップには 2 つの形式のデータが含まれます。

  • 構成のバックアップ: バックアップを実行するクラスタの API サーバーから抽出された一連の Kubernetes リソースの説明。
  • ボリュームのバックアップ: PersistentVolumeClaims のバックアップ。

コンソール

  1. GDC コンソールにログインします。
  2. ナビゲーション メニューで [クラスタのバックアップ] をクリックします。
  3. [バックアップ プラン] タブをクリックします。
  4. バックアップに使用するプランをクリックします。
  5. [バックアップを開始] をクリックします。
  6. バックアップ名と説明(省略可)を入力します。
  7. バックアップを保持する日数を設定します。この日数に達すると、バックアップは自動的に削除されます。
  8. バックアップを削除できない日数を設定します。
  9. [開始] をクリックします。

API

手動バックアップでは、バックアップ構成の既存のバックアップ プランを参照する必要があります。バックアップは、ManualClusterBackupRequest を発行して作成する必要があります。

ManualClusterBackupRequest の例を次に示します。

apiVersion: backup.gdc.goog/v1
kind: ManualClusterBackupRequest
metadata:
  name: manualbackuprequest-test
  namespace: PROJECT_NAME
spec:
  clusterBackupName: "backup-test"
  clusterBackupPlanRef: "backupplan-test"
  deleteLockDays: 5
  retainDays: 6

PROJECT_NAME は、GDC プロジェクトの名前に置き換えます。

この例には次の値が含まれています。

説明
clusterBackupName 作成するバックアップの名前。
clusterBackupPlanRef バックアップの構成に使用する ClusterBackupPlan の名前。バックアップ プランは、 ManualClusterBackupRequest と同じ Namespace に存在する必要があります。
deleteLockDays バックアップの作成後に指定した日数の間、バックアップの削除をブロックします。これにより、retentionPolicyClusterBackupPlan でオーバーライドされます。
retainDays バックアップの作成後に 指定した日数に達すると、バックアップを削除します。この値は、ClusterBackupPlanretentionPolicy をオーバーライドします。 保持ポリシーは、ストレージ ロケーションの保持ポリシーをオーバーライドすることはできません。また、90 日を超えることはできません。

バックアップを表示する

ユーザー クラスタ バックアップ管理者(user-cluster-backup-admin)ロールを持つユーザーは、組織内のすべてのバックアップを表示できます。 バックアップ作成者(backup-creator)ロールを持つユーザーは、プロジェクト内のすべてのバックアップを表示できます。

コンソール

  1. GDC コンソールにログインします。
  2. ナビゲーション メニューで [クラスタのバックアップ] をクリックします。
  3. [プロジェクトを選択] をクリックして、ロールに応じて組織またはプロジェクトを選択します。
    • ユーザー クラスタ バックアップ管理者: 組織を選択して組織内のすべてのバックアップを表示するか、プロジェクトを選択してプロジェクト内のすべてのバックアップを表示します。
    • バックアップ作成者: プロジェクトを選択して、プロジェクト内のすべてのバックアップを表示します。
  4. [バックアップ] タブをクリックします。
  5. リスト内のバックアップをクリックして詳細を表示します。

kubectl

バックアップのリストを表示します。

kubectl get clusterBackups

出力例:

NAME            STATE
backup-test   Succeeded

バックアップを削除する

バックアップは、Kubernetes API サーバーとの通常のやり取りでは削除できません。バックアップを削除するには、GDC コンソールを使用するか、DeleteClusterBackupRequest を発行します。

コンソール

[バックアップ] タブからバックアップを削除します。

  1. GDC コンソールにログインします。
  2. ナビゲーション メニューで [クラスタのバックアップ] をクリックします。
  3. [プロジェクトを選択] をクリックして、ロールに応じて組織またはプロジェクトを選択します。
    • ユーザー クラスタ バックアップ管理者: 組織を選択して組織内のすべてのバックアップを表示するか、プロジェクトを選択してプロジェクト内のすべてのバックアップを表示します。
    • バックアップ作成者: プロジェクトを選択して、プロジェクト内のすべてのバックアップを表示します。
  4. [バックアップ] タブをクリックします。
  5. 削除するバックアップのその他メニュー アイコンをクリックします。
  6. テキスト フィールドにバックアップの名前を入力します。
  7. [バックアップを削除] ボタンをクリックして、このバックアップの削除を完了します。

または、バックアップ プランを表示しているときにバックアップ名をクリックして、バックアップを削除します。

  1. GDC コンソールにログインします。
  2. ナビゲーション メニューで [クラスタのバックアップ] をクリックします。
  3. [**プロジェクトを選択**] をクリックして、ロールに応じて組織またはプロジェクトを選択します。
    • ユーザー クラスタ バックアップ管理者: 組織を選択して組織内のすべてのバックアップ プランを表示するか、プロジェクトを選択してプロジェクト内のすべてのバックアップ プランを表示します。
    • バックアップ作成者: プロジェクトを選択して、プロジェクト内のすべてのバックアップ プランを表示します。
  4. [バックアップ プラン] タブをクリックします。
  5. 削除するバックアップを含むバックアップ プランの名前をクリックします。
  6. [バックアップ] タブをクリックします。
  7. 削除するバックアップの名前をクリックします。
  8. [バックアップを削除] ボタンをクリックします。
  9. テキスト フィールドにバックアップの名前を入力します。
  10. [削除] ボタンをクリックして、このバックアップの削除を完了します。

kubectl

DeleteClusterBackupRequest リクエストを送信します。

apiVersion: backup.gdc.goog/v1
kind: DeleteClusterBackupRequest
metadata:
  name: deletebackuprequest-test
  namespace: PROJECT_NAME
spec:
  clusterBackupRef: "backup-test"

PROJECT_NAME は、GDC プロジェクトの名前に置き換えます。

この例には次の値が含まれています。

  • backupName: 削除するバックアップの名前。このバックアップは、DeleteClusterBackupRequest と同じ Namespace に存在する必要があります。
  • DeleteClusterBackupRequest: クラスタからバックアップ カスタム リソースを削除し、ボリュームデータを含む、そのバックアップに関連付けられたすべてのアーティファクトをバックアップのストレージ ロケーションから削除するリソース。

次のステップ