本页面介绍如何创建 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 中执行以下任务:
转到 Cloud Console 中的 Google Kubernetes Engine 页面。
在导航菜单中,点击 Backup for GKE。
点击创建恢复方案。
在为方案命名并选择集群部分中,完成以下操作,然后点击下一步:
- 输入恢复方案名称和可选说明。
- 为与要恢复的备份相对应的现有集群选择一个备份方案。
- 选择要恢复备份的目标集群。
在选择命名空间型资源部分,完成以下操作,然后点击下一步:
- 选择要恢复的命名空间:
- 点击所有命名空间型资源,恢复备份中的所有命名空间型资源。
- 点击选定的命名空间型资源,指定要恢复的备份中的命名空间。
- 点击选定的受保护应用,通过指定命名空间和应用名称来添加资源。
- 选择如何处理冲突:
- 如果目标集群中已存在计划从备份恢复的任何命名空间,请点击发生冲突时失败(非破坏性)来使恢复失败。
- 如果目标集群中已存在计划从备份恢复的任何命名空间,请点击回滚(破坏性)以删除现有命名空间。
- 选择如何恢复卷数据:
- 点击预配新卷并从备份恢复卷数据,在新的永久性磁盘上从备份恢复卷数据。
- 点击不恢复卷数据以预配新的永久性卷。如果目标集群包含满足
PersistentVolumeClaim
要求的无界限永久性卷,则集群将绑定到该卷。 - 点击重复使用包含您的数据的现有卷,以恢复卷备份数据。任何
PersistentVolumeClaims
都会绑定到引用现有永久性磁盘的卷。
- 选择要恢复的命名空间:
(可选)在选择集群级资源部分中,完成以下内容,然后点击下一步:
- 点击添加 GroupKind,添加更多集群级资源。
- 点击覆盖目标集群中的资源复选框,以删除目标集群中已存在的资源,并从备份恢复副本。
(可选)在添加替换规则部分中,完成以下操作,然后点击下一步:
- 点击添加规则。
- 输入命名空间列表以匹配这些命名空间中的资源,或者选中排除命名空间型资源复选框,从规则定义中排除命名空间型资源。
- 点击添加 GroupKind,然后输入对象种类和(可选)API 组,以匹配这些类型中的资源。
- 输入 JSON 路径,用于标识要应用替换的匹配资源中的字段。
- 输入新值以替换匹配属性的当前值,或者选中替换特定值(使用正则表达式)复选框。然后键入模式,与这些资源的当前值进行比较。
- 点击完成。
点击创建方案。
查看恢复方案
使用 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 中执行以下任务:
转到 Cloud Console 中的 Google Kubernetes Engine 页面。
在导航菜单中,点击 Backup for GKE。
点击恢复方案标签页。
展开备份方案,然后点击恢复方案名称。
点击详情标签页以查看其详细信息。
更新恢复方案
使用 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 中执行以下任务:
转到 Cloud Console 中的 Google Kubernetes Engine 页面。
在导航菜单中,点击 Backup for GKE。
点击恢复方案标签页。
展开集群,然后点击方案名称。
点击 delete 删除方案。
输入恢复方案名称,然后点击确认对话框中的删除恢复方案。
后续步骤
- 详细了解如何恢复备份。