提问人:devops-admin 提问时间:11/15/2023 最后编辑:devops-admin 更新时间:11/22/2023 访问量:202
如何将GKE集群的GKE备份从一个项目恢复到另一个项目的GKE集群?
How to restore GKE backup of a GKE Cluster from one project to another project's GKE cluster?
问:
如何将GKE集群的GKE备份从一个项目恢复到另一个项目的GKE集群?
我需要将一个项目的 GKE 集群的 gke 备份移动到另一个项目的 GKE 集群中。
我在源项目中创建了一个备份计划和一个备份。
我还通过下面的云 CLI 命令成功地将 restore-plan 创建到目标项目中,引用源项目 backup-plan 和目标项目的 gke 集群。
gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
--project=PROJECT_ID \
--location=LOCATION \
--backup-plan=projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME \
--cluster=CLUSTER \
--namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE \
--all-namespaces \
--cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY \
--cluster-resource-scope-selected-group-kinds=CLUSTER_RESOURCE_SCOPE \
--volume-data-restore-policy=VOLUME_DATA_RESTORE_POLICY
- 当我们尝试使用步骤 2 的 restore-plan 将备份从源项目的 GKE 备份还原到目标项目的 GKE 集群时,我们收到以下错误消息。
gcloud beta container backup-restore restores create RESTORE \
--project=PROJECT_ID \
--location=LOCATION \
--restore-plan=RESTORE_PLAN \
--backup=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN/backups/BACKUP
## Output
Restore execution
Status Failed
Status reason googleapi: Error 403: Permission 'gkebackup.backups.execute' denied on 'projects/67114541833/locations/asia-south1/backupPlans/staging-cluster-backup-1/backups/stg-backup23', forbidden
我们已将以下权限添加到源项目的 GKE 集群服务帐户中
# [email protected]
Backup for GKE Admin
Backup for GKE Backup Admin
Kubernetes Engine Service Agent
我们已将上述相同的权限添加到源项目的 GKE 备份服务帐户中
#[email protected]
Backup for GKE Admin
Backup for GKE Backup Admin
Kubernetes Engine Service Agent
我们已将上述相同的权限添加到目标项目的 GKE Cluster 服务帐户中
# [email protected]
Backup for GKE Admin
Backup for GKE Backup Admin
Kubernetes Engine Service Agent
我们已将上述相同的权限添加到目标项目的 GKE 备份服务帐户中
#[email protected]
Backup for GKE Admin
Backup for GKE Backup Admin
Kubernetes Engine Service Agent
可以做些什么来解决这个问题? 要实现此方案,需要向两个项目中的服务帐户添加哪些额外权限?
答:
0赞
Hemanth Kumar
11/15/2023
#1
- 也许您没有为目标 GKE 分配适当的 IAM 角色 用于访问源 GKE 集群的集群服务帐号 备份,这就是您收到禁止错误消息的原因 在还原操作期间。请参阅所需的 IAM 角色 备份/还原。 您将所有三个权限授予源和目标 项目尝试如下:
- 要解决此问题,您需要将适当的 IAM 角色分配给 特殊服务帐户 Kubernetes Engine Service Agent ([电子邮件保护]) 从目标项目(要还原的位置)。
- IAM 角色(可以是 Backup for GKE Admin)应分配在 源项目(带有 GKE 备份的项目)到上述 服务帐户 ([电子邮件保护])
- 您能否检查是否已启用 GKE 备份 在为任何 GKE 设置备份和恢复之前,在项目中提供服务 该项目中的集群。您可以启用 Backup for GKE 服务 通过使用 Google Cloud CLI 或 Google Cloud 控制台。
To enable the Backup for GKE service, run the following command: `gcloud services enable gkebackup.googleapis.com`
编辑 : @devops-admin : 经过如此多的分析并彻底解决了这个问题,我想通知您,无法将 GKE 备份从一个项目恢复到另一个项目。此外,Backup for GKE 是一项用于备份和恢复同一项目中 GKE 集群中的工作负载的服务。
此问题已存在一个 bug。请对此 Bug 请求投赞成票以获取有关此内容的未来更新,截至目前,产品工程团队正在等待此更新,目前没有 ETA。
评论
0赞
devops-admin
11/15/2023
是的,我在通过 Google Cloud Console 创建任何备份和还原之前启用了它。
0赞
devops-admin
11/15/2023
我已将这些权限添加到针对 GKE 集群服务帐户 ''' Kubernetes Engine Service Agent''' aka principal 。[email protected]
Backup for GKE Admin
Backup for GKE Backup Admin
Backup for GKE Restore Admin
Google Cloud Managed Identities Backup Admin
Kubernetes Engine Service Agent
0赞
devops-admin
11/15/2023
系统还会向源 GKE 集群服务帐号添加相同的权限。但是,它仍然失败了。
0赞
Hemanth Kumar
11/16/2023
@devops-admin :根据第 3 点作为参考,我观察到您需要给予,而您已经给出了 .项目 ID,可以是字母、数字和连字符的组合。建议您使用生成的项目 ID。请参阅此文档以识别项目 ID。这也是导致此错误的原因之一。project=PROJECT_ID
Project Number
0赞
Hemanth Kumar
11/17/2023
@devops-admin:请让我知道共享信息是否有帮助。如果您有任何进一步的疑问,我很乐意为您提供帮助。
评论