本页面介绍了如何使用 Backup for GKE 服务在 Google Kubernetes Engine (GKE) 中执行跨项目备份。
概览
借助跨项目备份,您可以将备份项目生命周期与集群项目分离。您可以将访问权限控制的备份单独存储在与集群项目不同的项目中。
限制
您无法迁移现有备份方案来执行跨项目备份。
价格
如需了解价格详情,请参阅跨项目备份和恢复的价格。
准备工作
-
在开始之前,请确保您已执行以下任务:
- 启用 Google Kubernetes Engine API。 启用 Google Kubernetes Engine API
- 如果您要使用 Google Cloud CLI 执行此任务,请安装并初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行
gcloud components update
以获取最新版本。
在包含要备份的集群的项目和将在其中存储备份的项目中启用 Backup for GKE API。如需了解详情,请参阅启用 Backup for GKE API。
在要备份的集群中启用 Backup for GKE 插件。如需了解详情,请参阅为集群启用 Backup for GKE。
所需的角色
如需获取创建和管理跨项目备份所需的权限,请让您的管理员为您授予 Backup for GKE Backup Admin (roles/gkebackup.backupAdmin
),这是项目的 Backup for GKE Admin (roles/gkebackup.admin
) IAM 角色的子集。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
设置服务账号
如果需要,请按项目创建服务账号,以对项目执行操作。
使用 Google Cloud CLI,运行以下命令以设置服务账号:
通过运行
gcloud beta services identity create
命令来创建服务账号:gcloud beta services identity create \ --service=gkebackup.googleapis.com \ --project=CLUSTER_PROJECT_ID gcloud projects add-iam-policy-binding CLUSTER_PROJECT_ID \ --member=serviceAccount:service-CLUSTER_PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com \ --role=roles/gkebackup.serviceAgent \ gcloud beta services identity create \ --service=gkebackup.googleapis.com \ --project=BACKUP_PROJECT_ID gcloud projects add-iam-policy-binding BACKUP_PROJECT_ID \ --member=serviceAccount:service-BACKUP_PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com \ --role=roles/gkebackup.serviceAgent
替换以下内容:
CLUSTER_PROJECT_ID
:要创建的 Google Cloud 项目的字母数字名称。例如cluster-project-id
。CLUSTER_PROJECT_NUMBER
:您的 Google Cloud 项目的唯一数字标识符。例如123456789012
。BACKUP_PROJECT_ID
:将在其中存储备份的Google Cloud 项目的字母数字名称。例如backup-project-id
。BACKUP_PROJECT_NUMBER
:将在其中存储备份的项目的唯一数字标识符。例如123456789012
。
运行
gcloud projects add-iam-policy-binding
命令,以允许备份项目的服务账号在集群项目中执行备份:gcloud projects add-iam-policy-binding CLUSTER_PROJECT_ID \ --member=serviceAccount:service-BACKUP_PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com \ --role=roles/gkebackup.serviceAgent
替换以下内容:
CLUSTER_PROJECT_ID
:您的Google Cloud 项目的字母数字名称。例如cluster-project-id
。BACKUP_PROJECT_NUMBER
:将在其中存储备份的项目的唯一数字标识符。例如123456789012
。
运行
gcloud projects add-iam-policy-binding
命令,以允许集群项目的代理访问备份项目中的gkebackup.googleapis.com
:gcloud projects add-iam-policy-binding BACKUP_PROJECT_ID \ --member serviceAccount:service-CLUSTER_PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com \ --role "roles/gkebackup.crossProjectServiceAgent"
替换以下内容:
BACKUP_PROJECT_ID
:将在其中存储备份的Google Cloud 项目的字母数字名称。例如backup-project-id
。CLUSTER_PROJECT_NUMBER
:您的 Google Cloud 项目的唯一数字标识符。例如123456789012
。
创建备份通道
设置服务账号后,您必须在要备份的集群所在的同一项目和区域中创建备份通道。创建备份通道后,您可以将该项目和区域中的集群备份到目标项目。
gcloud
如需创建备份通道,请使用 Google Cloud CLI 运行 gcloud beta container backup-restore backup-channels create
命令:
gcloud beta container backup-restore backup-channels create BACKUP_CHANNEL_NAME \
--project=CLUSTER_PROJECT_ID \
--location=CLUSTER_LOCATION \
--destination-project=projects/BACKUP_PROJECT_NUMBER
替换以下内容:
BACKUP_CHANNEL_NAME
:要创建的备份通道的名称。例如my-backup-channel-name
。CLUSTER_PROJECT_ID
:集群所在的Google Cloud 项目的字母数字名称。例如cluster-project-id
。CLUSTER_LOCATION
:集群所在的区域。例如us-central1
。BACKUP_PROJECT_NUMBER
:将在其中存储备份的项目的唯一数字标识符。
控制台
如需在 Google Cloud 控制台中创建备份通道,请按照以下说明操作:
在 Google Cloud 控制台中,前往 Google Kubernetes Engine 页面。
在资源管理菜单中,点击 Backup for GKE。
点击备份通道标签页。
在备份通道标签页中,点击创建备份通道。
使用集群项目字段,确保您已选择正确的集群项目。
使用区域菜单,选择您的集群所在的区域。
使用备份项目字段,选择希望允许存储备份的项目。
在备份通道名称字段中,输入备份通道的名称。
可选:在备份通道说明字段中,输入备份通道的简短说明。
点击下一步。
验证服务账号对集群和备份项目的权限。
点击创建。
创建备份方案
创建备份通道后,您必须创建备份方案。如果进行备份的集群位于其他项目中,备份方案会自动绑定到现有备份通道。备份方案中的 backup_channel
字段会显示备份方案绑定到的备份通道。
准备工作
在创建备份方案之前,请参阅规划一组备份。
创建备份方案
如需使用 Google Cloud 控制台在备份项目中创建备份方案,请按照以下说明操作:
在 Google Cloud 控制台中,前往 Google Kubernetes Engine 页面。
在资源管理菜单中,点击 Backup for GKE。
打开要在其中创建备份方案的备份项目。
点击创建备份方案。
选中配置跨项目备份复选框。
在集群项目字段中,选择包含来源集群的项目。
从集群菜单中,选择集群的区域。
在备份方案名称字段中,输入备份方案的名称。
在备份项目字段中,输入要在其中存储备份的备份项目的名称。
在区域字段中,输入存储备份的位置。如果未找到任何备份通道,请点击创建备份通道,按照提示创建备份通道,然后点击创建。
点击查看备份通道详情。
点击验证权限。
按照创建备份方案中的说明完成剩余步骤。
点击创建方案。
查看备份通道
按照以下部分中的说明查看备份通道。
查看项目和区域中的所有备份通道
gcloud
如需查看项目和区域中的所有备份通道,请使用 Google Cloud CLI 运行 gcloud beta container backup-restore backup-channels list
命令:
gcloud beta container backup-restore backup-channels list \
--project=CLUSTER_PROJECT_ID \
--location=CLUSTER_LOCATION
替换以下内容:
CLUSTER_PROJECT_ID
:集群所在的Google Cloud 项目的字母数字名称。例如cluster-project-id
。CLUSTER_LOCATION
:集群所在的区域。例如us-central1
。
控制台
如需在Google Cloud 控制台中查看项目和区域中的所有备份通道,请按照以下说明操作:
在集群项目的 Google Cloud 控制台中,前往 Google Kubernetes Engine 页面。
在资源管理菜单中,点击 Backup for GKE。
点击备份通道标签页。
使用项目和区域菜单过滤备份通道列表。
过滤后的列表会显示所选项目和区域中的所有备份通道。
查看备份通道的详情
gcloud
如需查看备份通道的详情,请使用 Google Cloud CLI 运行 gcloud beta container backup-restore backup-channels describe
命令:
gcloud beta container backup-restore backup-channels describe BACKUP_CHANNEL_NAME \
--project=CLUSTER_PROJECT_ID \
--location=CLUSTER_LOCATION
替换以下内容:
BACKUP_CHANNEL_NAME
:要查看的备份通道的名称。例如my-backup-channel-name
。CLUSTER_PROJECT_ID
:集群所在的Google Cloud 项目的字母数字名称。例如cluster-project-id
。CLUSTER_LOCATION
:集群所在的区域。例如us-central1
。
控制台
如需在 Google Cloud 控制台中查看备份通道的详情,请按照以下说明操作:
在集群项目的 Google Cloud 控制台中,前往 Google Kubernetes Engine 页面。
在资源管理菜单中,点击 Backup for GKE。
点击备份通道标签页。
使用项目和区域菜单过滤备份通道列表。
点击要查看的备份通道的名称。此时会打开一个包含该备份通道详情的页面。
查看绑定到备份通道的备份方案
如需查看绑定到备份通道的备份方案,请使用 Google Cloud CLI 运行 gcloud beta container backup-restore backup-plan-bindings list
命令:
gcloud beta container backup-restore backup-plan-bindings list \
--backup-channel=BACKUP_CHANNEL_NAME \
--project=CLUSTER_PROJECT_ID \
--location=CLUSTER_LOCATION
替换以下内容:
BACKUP_CHANNEL_NAME
:要查看的备份通道的名称。例如my-backup-channel-name
。CLUSTER_PROJECT_ID
:集群所在的 Google Cloud 项目的字母数字名称。例如cluster-project-id
。CLUSTER_LOCATION
:集群所在的区域。例如us-central1
。
管理备份通道
以下部分介绍了如何在创建备份通道后对其进行管理。
更新备份通道
请按照以下说明更新备份通道。请注意,您只能修改现有备份通道的说明。所有其他字段均无法修改。
gcloud
如需更新备份通道的说明,请使用 Google Cloud CLI 运行 gcloud beta container backup-restore backup-channels update
命令:
gcloud beta container backup-restore backup-channels update BACKUP_CHANNEL_NAME \
--project=CLUSTER_PROJECT_ID \
--location=CLUSTER_LOCATION \
--description=DESCRIPTION
替换以下内容:
BACKUP_CHANNEL_NAME
:要更新的备份通道的名称。例如my-backup-channel-name
。CLUSTER_PROJECT_ID
:集群所在的Google Cloud 项目的字母数字名称。例如cluster-project-id
。CLUSTER_LOCATION
:集群所在的区域。例如us-central1
。DESCRIPTION
:要更新的说明。
控制台
如需在 Google Cloud 控制台中更新备份通道,请按照以下说明操作:
在集群项目的 Google Cloud 控制台中,前往 Google Kubernetes Engine 页面。
在资源管理菜单中,点击 Backup for GKE。
点击备份通道标签页。
在备份通道页面中,点击要更新的备份通道。请注意,您只能更新现有备份通道的说明。所有其他字段均无法修改。
此时会显示备份通道详情页面。
点击验证权限。
在备份通道详情部分中,点击
修改说明图标。此时会显示修改说明对话框。
在说明字段中,输入更新后的说明,然后点击保存更改。
删除备份通道
仅当备份通道不包含任何活跃备份方案时,您才能删除该通道。如果有活跃备份方案绑定到该通道,您必须先停用或删除这些备份方案,然后才能删除该备份通道。
gcloud
如需删除备份通道,请使用 Google Cloud CLI 运行 gcloud beta container backup-restore backup-channels delete
命令:
gcloud beta container backup-restore backup-channels delete BACKUP_CHANNEL_NAME \
--project=CLUSTER_PROJECT_ID \
--location=CLUSTER_LOCATION
替换以下内容:
BACKUP_CHANNEL_NAME
:要删除的备份通道的名称。例如my-backup-channel-name
。CLUSTER_PROJECT_ID
:集群所在的Google Cloud 项目的字母数字名称。例如cluster-project-id
。CLUSTER_LOCATION
:集群所在的区域。例如us-central1
。
控制台
如需在 Google Cloud 控制台中删除备份通道,请按照以下说明操作:
在集群项目的 Google Cloud 控制台中,前往 Google Kubernetes Engine 页面。
在资源管理菜单中,点击 Backup for GKE。
点击备份通道标签页。
在备份通道页面中,点击要删除的备份通道。
点击删除通道。
系统会显示一个对话框,要求您确认是否要删除备份通道。
在备份通道名称字段中,输入备份通道的名称以确认删除。
点击确认。