规划一组恢复


本页面介绍如何创建 Backup for GKE 恢复方案,该方案用于在 Google Kubernetes Engine (GKE) 中恢复备份。

恢复方案是为相应备份行预配置的恢复场景。恢复方案可以向管理员分配使用这些配置的权限。发生突发事件时,这些用户可以快速且独立地恢复备份。例如,已部署应用中的软件更新可能会使永久性数据损坏,从而将应用命名空间置于无效状态,这需要恢复。

在恢复期间,您可以选择应用替换规则,用于匹配一组资源并针对新值替换这些资源上属性的当前值。

准备工作

规划一组备份

创建恢复方案

您可以使用 Google Cloud CLI 或 Google Cloud Console 为备份创建恢复方案。

gcloud

如需创建恢复方案,请运行以下命令:

gcloud alpha container backup-restore restore-plans create RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN \
    --cluster=projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER \
    --cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY \
    --namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE \
    --all-namespaces

替换以下内容:

  • RESTORE_PLAN:您要创建的恢复方案的名称。
  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • LOCATION:资源的计算区域,例如 us-central1。该位置必须与目标集群所在的地区相同。仅针对集群位置,您可以为地区级集群指定 locations/LOCATION,为集群指定 zones/ZONE
  • BACKUP_PLAN:可以使用此恢复方案恢复的备份来源。
  • CLUSTER:您要将备份恢复到的目标集群。
  • CLUSTER_RESOURCE_CONFLICT_POLICY:定义如何处理集群级资源的恢复时间冲突。例如,计划从备份恢复的目标集群中可能存在同一集群级资源。请设置为以下方式之一:

    • USE_EXISTING_VERSION:发生冲突时,使资源的现有版本保持不变。
    • USE_BACKUP_VERSION:出现冲突时,使用备份中的版本覆盖现有版本。
  • NAMESPACED_RESOURCE_RESTORE_MODE:定义如何处理命名空间型资源的恢复时间冲突。命名空间型资源始终按按命名空间或按 ProtectedApplication 在组中恢复。请设置为以下方式之一:

    • DELETE_AND_RESTORE:当目标集群包含计划要恢复到集群中的同一组资源时,系统会删除现有资源组,然后再恢复新资源。
    • FAIL_ON_CONFLICT:如果目标集群中已存在计划要从备份恢复的任何资源组,则恢复将失败。
  • --all-namespaces:恢复备份中的所有命名空间资源。或者,使用应用列表指定 --selected-applications,使用命名空间列表指定 --selected-namespaces

如需查看完整的选项列表,请运行以下命令:

gcloud alpha container backup-restore restore-plans create --help

控制台

在 Cloud Console 中执行以下任务:

  1. 转到 Cloud Console 中的 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 在导航菜单中,点击 Backup for GKE

  3. 点击创建恢复方案

  4. 为方案命名并选择集群部分中,完成以下操作,然后点击下一步

    1. 输入恢复方案名称和可选说明。
    2. 为与要恢复的备份相对应的现有集群选择一个备份方案。
    3. 选择要恢复备份的目标集群。
  5. 选择命名空间型资源部分,完成以下操作,然后点击下一步

    1. 选择要恢复的命名空间:
      1. 点击所有命名空间型资源,恢复备份中的所有命名空间型资源。
      2. 点击选定的命名空间型资源,指定要恢复的备份中的命名空间。
      3. 点击选定的受保护应用,通过指定命名空间和应用名称来添加资源。
    2. 选择如何处理冲突:
      1. 如果目标集群中已存在计划从备份恢复的任何命名空间,请点击发生冲突时失败(非破坏性)来使恢复失败。
      2. 如果目标集群中已存在计划从备份恢复的任何命名空间,请点击回滚(破坏性)以删除现有命名空间。
    3. 选择如何恢复卷数据:
      1. 点击预配新卷并从备份恢复卷数据,在新的永久性磁盘上从备份恢复卷数据。
      2. 点击不恢复卷数据以预配新的永久性卷。如果目标集群包含满足 PersistentVolumeClaim 要求的无界限永久性卷,则集群将绑定到该卷。
      3. 点击重复使用包含您的数据的现有卷,以恢复卷备份数据。任何 PersistentVolumeClaims 都会绑定到引用现有永久性磁盘的卷。
  6. (可选)在选择集群级资源部分中,完成以下内容,然后点击下一步

    1. 点击添加 GroupKind,添加更多集群级资源。
    2. 点击覆盖目标集群中的资源复选框,以删除目标集群中已存在的资源,并从备份恢复副本。
  7. (可选)在添加替换规则部分中,完成以下操作,然后点击下一步

    1. 点击添加规则
    2. 输入命名空间列表以匹配这些命名空间中的资源,或者选中排除命名空间型资源复选框,从规则定义中排除命名空间型资源。
    3. 点击添加 GroupKind,然后输入对象种类和(可选)API 组,以匹配这些类型中的资源。
    4. 输入 JSON 路径,用于标识要应用替换的匹配资源中的字段。
    5. 输入新值以替换匹配属性的当前值,或者选中替换特定值(使用正则表达式)复选框。然后键入模式,与这些资源的当前值进行比较。
    6. 点击完成
  8. 点击创建方案

查看恢复方案

使用 gcloud CLI 或 Cloud Console 查看恢复方案及其详细信息。

gcloud

如需列出项目和位置中的所有恢复方案,请运行以下命令:

gcloud alpha container backup-restore restore-plans list \
    --project=PROJECT_ID \
    --location=LOCATION

仅针对 list 命令,您可以提供 - 作为任何参数(PROJECT_ID 除外)的值。- 值充当通配符。如果您未指定命令行选项或未设置属性,则 - 值是任何参数的默认值。

如需查看完整的选项列表,请运行以下命令:

gcloud alpha container backup-restore restore-plans list --help

如需查看恢复方案的详细信息,请运行以下命令:

gcloud alpha container backup-restore restore-plans describe RESTORE_PLAN \
     --project=PROJECT_ID \
     --location=LOCATION

控制台

在 Cloud Console 中执行以下任务:

  1. 转到 Cloud Console 中的 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 在导航菜单中,点击 Backup for GKE

  3. 点击恢复方案标签页。

  4. 展开备份方案,然后点击恢复方案名称。

  5. 点击详情标签页以查看其详细信息。

更新恢复方案

使用 gcloud CLI 更新恢复方案及其详细信息。

如需更新恢复方案(例如通过添加新的说明),请运行以下命令:

gcloud alpha container backup-restore restore-plans update RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --description=DESCRIPTION

如需查看完整的选项列表,请运行以下命令:

gcloud alpha container backup-restore restore-plans update --help

删除恢复方案

您可以使用 gcloud CLI 或 Cloud Console 删除恢复方案。删除恢复方案也会删除任何子恢复方案。

gcloud

如需删除备份方案,请运行以下命令:

gcloud alpha container backup-restore restores delete RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION

如需查看选项的完整列表,请参阅 gcloud alpha container backup-restore restores delete 文档。

控制台

在 Cloud Console 中执行以下任务:

  1. 转到 Cloud Console 中的 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 在导航菜单中,点击 Backup for GKE

  3. 点击恢复方案标签页。

  4. 展开集群,然后点击方案名称。

  5. 点击 删除方案

  6. 输入恢复方案名称,然后点击确认对话框中的删除恢复方案

后续步骤