指定恢复期间的资源恢复顺序


本页面介绍了如何指定在恢复操作期间,Backup for GKE 恢复不同 GroupKind 的顺序。

概览

默认情况下,Backup for GKE 会按照能够满足资源之间的依赖项要求的顺序恢复常见的 GroupKind。但是,如果有其他资源需要按特定顺序恢复,则可以使用恢复排序功能,通过定义受影响资源之间的依赖项来指定所需的顺序。

在创建或更新恢复方案期间,您可以指定自定义 GroupKind 依赖项列表。如要表示两个自定义资源之间的依赖项,可以指定以下两个 GroupKind:

  • 满足 GroupKind:此 GroupKind 需满足依赖项要求,且必须在要求 GroupKind 之前恢复。在 Google Cloud 控制台中,此 GroupKind 被称为第一个 API 组第一个对象种类字段。
  • 要求 GroupKind:此 GroupKind 依赖于需首先恢复的满足 GroupKind。在 Google Cloud 控制台中,此 GroupKind 被称为第二个 API 组第二个对象种类字段。

Backup for GKE 会获取自定义依赖项和默认依赖项列表,并将它们组合来生成 GroupKind 恢复顺序。

默认依赖项

下表列出了满足 GroupKind 资源和要求 GroupKind 资源之间成对的默认依赖项。在定义恢复顺序时,Backup for GKE 会先恢复所有满足 GroupKind,然后再恢复要求 GroupKind。例如,Backup for GKE 始终会先恢复所有 storage.k8s.io/StorageClass,然后再恢复 PersistentVolumeClaims

默认恢复顺序也适用于一些基本场景,例如,先恢复命名空间,再恢复所有命名空间级资源;先恢复 CustomResourceDefinitions,再恢复所有 CustomResources

满足 GroupKind 资源 要求 GroupKind 资源
flowcontrol.apiserver.k8s.io/PriorityLevelConfiguration flowcontrol.apiserver.k8s.io/FlowSchema
storage.k8s.io/StorageClass PersistentVolumeClaim
PersistentVolumeClaim
  • Pod
  • Deployment
  • ReplicationController
  • ReplicaSet
  • StatefulSet
  • DaemonSet
  • CronJob
  • 作业
ServiceAccount
  • Pod
  • Deployment
  • ReplicationController
  • ReplicaSet
  • StatefulSet
  • DaemonSet
  • CronJob
  • 作业

定义资源恢复顺序

请按照以下说明将自定义 GroupKind 依赖项添加到恢复方案。如要查看已由 Backup for GKE 处理且无需指定的所有 GroupKind 依赖项,您可以查看默认依赖项列表。

gcloud

  1. 创建一个 YAML 文件来定义恢复顺序。您可以使用以下 YAML 示例文件。

    在以下示例中,stable.example.com/First 必须在 stable.example.com/Second 之前恢复,而 stable.example.com/Second 又必须在 stable.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 项”部分,按资源的恢复顺序,依次输入第一个 API 组 1第一个对象种类 1 以及第二个 API 组 2第二个对象种类 2

  9. 点击保存更改

后续步骤