復元中にリソースの復元順序を指定する


このページでは、復元オペレーション中に Backup for GKE がさまざまな GroupKind を復元する順序を指定する方法について説明します。

概要

デフォルトでは、Backup for GKE は、リソース間の依存関係要件を満たす順序で、よく知られた GroupKind を復元します。ただし、特定の順序で復元する必要があるリソースが他にもある場合は、復元順序機能を使用して、影響を受けるリソース間の依存関係を定義することで、必要な順序を指定できます。

復元プランの作成または更新オペレーション中に、カスタム GroupKind の依存関係のリストを指定できます。2 つのカスタム リソース間の依存関係を表すため、次の 2 つの GroupKind を指定します。

  • 条件を満たす GroupKind: この GroupKind は依存関係を満たしており、必要な GroupKind の前に復元する必要があります。Google Cloud コンソールでは、この GroupKind が [1 つめの API グループ] フィールドと [1 つめのオブジェクトの種類] フィールドとして表示されます。
  • 必要な GroupKind: この GroupKind は、条件を満たす GroupKind が最初に復元されることに依存します。Google Cloud コンソールでは、この GroupKind が [2 つめの API グループ] フィールドと [2 つめのオブジェクトの種類] フィールドとして表示されます。

Backup for GKE は、カスタム依存関係のリストとデフォルトの依存関係を組み合わせて GroupKind 復元順序を生成します。

デフォルトの依存関係

次の表に、条件を満たす GroundKind リソースと必要な GroundKind リソースとの、デフォルトのペア設定依存関係を一覧で示します。Backup for GKE は、復元順序を定義するとき、必要な GroupKind を復元する前に、条件を満たす GroundKind をすべて復元します。たとえば、Backup for GKE は常に、PersistentVolumeClaims の前にすべての storage.k8s.io/StorageClass を復元します。

デフォルトの復元順序では、すべての名前空間付きリソースの前に名前空間を復元したり、CustomResources の前に CustomResourceDefinitions を復元したりするなど、基本的なケースも処理されます。

条件を満たす GroundKind リソース 必要な GroundKind リソース
flowcontrol.apiserver.k8s.io/PriorityLevelConfiguration flowcontrol.apiserver.k8s.io/FlowSchema
storage.k8s.io/StorageClass PersistentVolumeClaim
PersistentVolumeClaim
  • Pod
  • デプロイ
  • ReplicationController
  • ReplicaSet
  • StatefulSet
  • DaemonSet
  • CronJob
  • ジョブ
ServiceAccount
  • Pod
  • デプロイ
  • ReplicationController
  • ReplicaSet
  • StatefulSet
  • DaemonSet
  • CronJob
  • ジョブ

リソースの復元順序を定義する

カスタム GroupKind の依存関係を復元プランに追加する手順は次のとおりです。Backup for GKE によってすでに処理されているため、指定する必要のない GroupKind 依存関係については、デフォルトの依存関係のリストをご覧ください。

gcloud

  1. YAML ファイルを作成して復元順序を定義します。次の YAML 例を使用できます。

    次の例は、stable.example.com/Firststable.example.com/Second の前に、stable.example.com/Secondstable.example.com/Third の前に復元する必要があることを示しています。

      restoreOrder:
        groupKindDependencies:
        - satisfying:
            resourceGroup: stable.example.com
            resourceKind: First
          requiring:
            resourceGroup: stable.example.com
            resourceKind: Second
        - satisfying:
            resourceGroup: stable.example.com
            resourceKind: Second
          requiring:
            resourceGroup: stable.example.com
            resourceKind: Third
    
  2. 作成した復元順序ファイルを使用して、復元順序を定義します。

    gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
        --project=PROJECT_ID \
        --location=LOCATION \
        --restore_order_file=RESTORE_ORDER_FILE
    

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

  • RESTORE_PLAN: 更新する復元プランの名前。
  • PROJECT_ID: Google Cloud プロジェクトの ID。
  • LOCATION: 親復元プランのコンピューティング リージョン。
  • RESTORE_ORDER_FILE: 前の例に示すように、GroupKind の依存関係を含む YAML ファイルのパス。

コンソール

Google Cloud コンソールで既存の復元プランに順序を追加するには、次の手順に沿います。

  1. Google Cloud コンソールで、Google Kubernetes Engine のページに移動します。

    Google Kubernetes Engine に移動

  2. ナビゲーション メニューで [Backup for GKE] をクリックします。

  3. [復元プラン] タブをクリックします。

  4. 復元プランの名前をクリックします。

  5. [詳細] タブをクリックします。

  6. [復元の順序] の横にある [編集] をクリックします。

  7. [順序のセットを追加] をクリックします。

  8. [項目 1] セクションに、リソースの復元の順序として「1 つめの API グループ 1」、「1 つめのオブジェクトの種類 1」、「2 つめの API グループ 2」、「2 つめオブジェクトの種類 2」と入力します。

  9. [変更を保存] をクリックします。

次のステップ