执行跨项目恢复


本页面介绍了如何使用 Backup for GKE 服务在 Google Kubernetes Engine (GKE) 中执行跨项目恢复。

概览

借助 Backup for GKE 跨项目恢复,您可以将一个项目中的备份恢复到目标项目中的集群。您可以将备份存储在专用项目中,然后将这些备份恢复到其他项目中的集群。

限制

您无法迁移现有恢复方案来执行跨项目恢复。

价格

如需了解价格详情,请参阅跨项目备份和恢复的价格

准备工作

  1. 在开始之前,请确保您已执行以下任务:

    • 启用 Google Kubernetes Engine API。
    • 启用 Google Kubernetes Engine API
    • 如果您要使用 Google Cloud CLI 执行此任务,请安装初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行 gcloud components update 以获取最新版本。
  2. 在包含要恢复到的集群的项目中启用 Backup for GKE API。如需了解详情,请参阅启用 Backup for GKE API

  3. 在要恢复到的集群中启用 Backup for GKE 插件。如需了解详情,请参阅为集群启用 Backup for GKE

所需的角色

如需获取创建和管理跨项目恢复所需的权限,请让您的管理员为您授予 Backup for GKE Backup Admin (roles/gkebackup.backupAdmin),这是项目的 Backup for GKE Admin (roles/gkebackup.admin) IAM 角色的子集。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

设置服务账号

如果需要,请按项目创建服务账号,以对项目执行操作。

  1. 使用 Google Cloud CLI 运行 gcloud beta services identity create 命令,创建服务账号:

    gcloud beta services identity create --service=gkebackup.googleapis.com --project=RESTORE_PROJECT_ID
    gcloud projects add-iam-policy-binding RESTORE_PROJECT_ID --member=serviceAccount:service-RESTORE_PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com --role=roles/gkebackup.serviceAgent
    

    替换以下内容:

    • RESTORE_PROJECT_ID:要恢复的 Google Cloud 项目的字母数字名称。例如 restore-project-id

    • RESTORE_PROJECT_NUMBER:您的 Google Cloud 项目的唯一数字标识符。例如 123456789012

  2. 运行 gcloud projects add-iam-policy-binding 命令,以允许恢复项目的代理访问备份项目中的 gkebackup.googleapis.com

    gcloud projects add-iam-policy-binding BACKUP_PROJECT_ID --member serviceAccount:service-RESTORE_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com --role "roles/gkebackup.crossProjectServiceAgent"
    

    替换以下内容:

    • BACKUP_PROJECT_ID:包含备份的 Google Cloud 项目的字母数字名称。例如 backup-project-id

    • RESTORE_PROJECT_NUMBER:您要使用备份恢复的 Google Cloud 项目的唯一数字标识符。例如 123456789012

创建恢复通道

您必须在要恢复的备份所在的同一项目和区域中创建恢复通道,并在该通道中配置目标项目。这样,您便可以将原始项目和区域中的备份恢复到目标项目。

gcloud

如需创建恢复通道,请使用 Google Cloud CLI 运行 gcloud beta container backup-restore restore-channels create 命令:

gcloud beta container backup-restore restore-channels create RESTORE_CHANNEL_NAME \
 --project=BACKUP_PROJECT_ID \
 --location=BACKUP_LOCATION \
 --destination-project=projects/RESTORE_PROJECT_NUMBER

替换以下内容:

  • RESTORE_CHANNEL_NAME:您要创建的恢复通道的名称。

  • BACKUP_PROJECT_ID:将在其中存储备份的Google Cloud 项目的字母数字名称。例如 backup-project-id

  • BACKUP_LOCATION:将存储备份的区域。例如 us-central1

  • RESTORE_PROJECT_NUMBER:您要将备份恢复到的项目的唯一数字标识符。 例如 123456789012

控制台

如需在 Google Cloud 控制台中创建恢复通道,请按照以下说明操作:

  1. 前往 Google Cloud 控制台中的 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 资源管理菜单中,点击 Backup for GKE

  3. 点击恢复通道标签页。

  4. 恢复通道标签页中,点击创建恢复通道

创建恢复方案

创建恢复通道后,您必须创建恢复方案。如果您使用的恢复方案位于其他项目中,则该方案会自动绑定到现有恢复通道。恢复方案中的 restore_channel 字段会显示恢复方案绑定到的恢复通道。

准备工作

在创建恢复方案之前,请参阅规划一组恢复

创建恢复方案

使用 Google Cloud 控制台在恢复项目中创建恢复方案:

  1. 在 Google Cloud 控制台中,前往 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 资源管理菜单中,点击 Backup for GKE

  3. 确保您位于要在其中创建恢复方案的项目中。

  4. 点击创建恢复方案

  5. 点击配置跨项目恢复框。

  6. 备份项目字段中,选择包含备份方案和备份的项目。

  7. 备份方案字段中,选择相应的备份方案。

  8. 恢复项目字段中,选择包含恢复方案和恢复操作的项目。如果未找到任何恢复通道,请点击创建恢复通道,按照提示创建恢复通道,然后点击创建

  9. 点击查看恢复通道详细信息

  10. 点击验证权限

  11. 按照 Backup for GKE 文档中关于如何创建恢复方案的说明完成剩余步骤。

查看恢复通道

以下部分介绍了查看恢复通道的方法。

查看项目和区域中的所有恢复通道

gcloud

如需查看项目和区域中的所有恢复通道,请使用 Google Cloud CLI 运行 gcloud beta container backup-restore restore-channels list 命令:

  gcloud beta container backup-restore restore-channels list \
  --project=BACKUP_PROJECT_ID \
  --location=BACKUP_LOCATION

替换以下内容:

  • BACKUP_PROJECT_ID:将在其中存储备份的Google Cloud 项目的字母数字名称。例如 backup-project-id

  • BACKUP_LOCATION:将存储备份的区域。例如 us-central1

控制台

如需在 Google Cloud 控制台中查看所有恢复通道,请按照以下说明操作:

  1. 前往备份项目的 Google Cloud 控制台中的 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 资源管理菜单中,点击 Backup for GKE

  3. 点击恢复通道标签页。

  4. 如需选择要查看的项目,请使用项目菜单。

  5. 如需选择恢复通道的区域,请使用区域菜单。

    控制台会显示一个表格,其中包含所选项目和区域的所有恢复通道。

查看恢复渠道的详细信息

gcloud

如需查看恢复通道的详细信息,请使用 Google Cloud CLI 运行 gcloud beta container backup-restore restore-channels describe 命令:

  gcloud beta container backup-restore restore-channels describe RESTORE_CHANNEL_NAME \
    --project=BACKUP_PROJECT_ID \
    --location=BACKUP_LOCATION

替换以下内容:

  • RESTORE_CHANNEL_NAME:您要查看的恢复通道的名称。

  • BACKUP_PROJECT_ID:将在其中存储备份的Google Cloud 项目的字母数字名称。例如 backup-project-id

  • BACKUP_LOCATION:将存储备份的区域。例如 us-central1

控制台

如需在 Google Cloud 控制台中查看恢复通道的详细信息,请按照以下说明操作:

  1. 在备份项目的 Google Cloud 控制台中,前往 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 资源管理菜单中,点击 Backup for GKE

  3. 点击恢复通道标签页。

  4. 如需选择要查看的项目,请使用项目菜单。

  5. 如需选择恢复通道的区域,请使用区域菜单。

  6. 点击要查看的恢复通道的名称。

    Google Cloud 控制台会显示所选恢复通道的详细信息。

查看绑定到恢复通道的恢复方案

如需查看绑定到恢复通道的恢复方案,请使用 Google Cloud CLI 运行 gcloud beta container backup-restore restore-plan-bindings list 命令:

  gcloud beta container backup-restore restore-plan-bindings list \
   --restore-channel=RESTORE_CHANNEL_NAME \
   --project=BACKUP_PROJECT_ID \
   --location=BACKUP_LOCATION

替换以下内容:

  • RESTORE_CHANNEL_NAME:您要查看的恢复通道的名称。

  • BACKUP_PROJECT_ID:将在其中存储备份的Google Cloud 项目的字母数字名称。例如 backup-project-id

  • BACKUP_LOCATION:将存储备份的区域。例如 us-central1

管理恢复渠道

以下部分介绍了如何管理恢复通道。

更新恢复渠道

请按照以下说明更新恢复通道。请注意,您只能更新现有恢复通道的说明。所有其他字段均无法修改。

gcloud

如需更新恢复通道的说明,请使用 Google Cloud CLI 运行 gcloud beta container backup-restore restore-channels update 命令:

gcloud beta container backup-restore restore-channels update RESTORE_CHANNEL_NAME \
--project=BACKUP_PROJECT_ID \
--location=BACKUP_LOCATION \
--description=DESCRIPTION

替换以下内容:

  • RESTORE_CHANNEL_NAME:您要更新的恢复通道的名称。

  • BACKUP_PROJECT_ID:将在其中存储备份的Google Cloud 项目的字母数字名称。例如 backup-project-id

  • BACKUP_LOCATION:将存储备份的区域。例如 us-central1

  • DESCRIPTION:恢复通道的更新说明。

控制台

如需在 Google Cloud 控制台中更新恢复通道,请按照以下说明操作:

  1. 在备份项目的 Google Cloud 控制台中,前往 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 资源管理菜单中,点击 Backup for GKE

  3. 点击恢复通道标签页。

  4. 恢复通道页面中,点击要更新的恢复通道。请注意,您只能更新现有恢复通道的说明。所有其他字段均无法修改。

    系统会显示恢复通道详细信息页面。

  5. 点击验证权限

  6. 恢复通道详细信息部分中,点击 修改说明图标。

    此时会显示修改说明对话框。

  7. 说明字段中,输入恢复通道的更新说明,然后点击保存更改

删除恢复渠道

请按照以下说明删除恢复通道。请注意,只有在恢复通道未绑定任何恢复方案时,才能将其删除。如果该恢复通道绑定了任何恢复方案,您需要先删除这些恢复方案,然后再尝试删除该恢复通道。

gcloud

如需删除恢复通道,请使用 Google Cloud CLI 运行 gcloud beta container backup-restore backup-channels delete 命令:

  gcloud beta container backup-restore backup-channels delete RESTORE_CHANNEL_NAME \
  --project=BACKUP_PROJECT_ID \
  --location=BACKUP_LOCATION

替换以下内容:

  • RESTORE_CHANNEL_NAME:要删除的恢复通道的名称。

  • BACKUP_PROJECT_ID:将在其中存储备份的Google Cloud 项目的字母数字名称。例如 backup-project-id

  • BACKUP_LOCATION:将存储备份的区域。例如 us-central1

控制台

如需在 Google Cloud 控制台中删除恢复通道,请按照以下说明操作:

  1. 在备份项目的 Google Cloud 控制台中,前往 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 资源管理菜单中,点击 Backup for GKE

  3. 点击恢复通道标签页。

  4. 恢复通道页面中,点击要删除的恢复通道。

  5. 点击删除通道

    系统会显示一个对话框,要求您确认是否要删除恢复通道。

  6. 恢复通道名称字段中,输入恢复通道的名称以确认删除。

  7. 点击确认

后续步骤