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

Google Distributed Cloud(GDC)エアギャップの手動バックアップを使用すると、アプリケーションのアップグレード前に Kubernetes クラスタのコンテナ ワークロードと永続ボリュームを保護できます。既存のプランから、オンデマンド コピーの作成、ステータスの検査、古いエントリの削除を行うことができます。

始める前に

アプリケーション オペレーター(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 バックアップの作成後、指定した日数だけバックアップの削除をブロックします。これは、ClusterBackupPlan の retentionPolicy をオーバーライドします。
retainDays バックアップの作成後、指定した日数に達するとバックアップを削除します。この値は、ClusterBackupPlan の retentionPolicy をオーバーライドします。保持ポリシーは、ストレージ ロケーションの保持ポリシーをオーバーライドしません。また、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: クラスタからバックアップ カスタム リソースを削除し、そのバックアップに関連付けられているすべてのアーティファクト(ボリューム データを含む)をバックアップのストレージ ロケーションから削除するリソース。

次のステップ