如何备份GKE开发集群的ns-b命名空间并迁移至新集群?
GKE集群ns-b命名空间备份与跨集群迁移方案
方法一:使用GCP官方Backup for GKE(推荐)
1. 备份原集群的ns-b命名空间
- 启用Backup for GKE API:
gcloud services enable gkebackup.googleapis.com - 创建备份仓库(用于存储备份文件):
gcloud container backup-repositories create my-nsb-repo --location=us-central1 --cluster=source-dev-cluster --cluster-location=us-central1 - 创建仅包含ns-b的备份:
gcloud container backups create nsb-full-backup --location=us-central1 --repository=my-nsb-repo --cluster=source-dev-cluster --cluster-location=us-central1 --namespaces=ns-b - 检查备份状态,确认完成:
gcloud container backups describe nsb-full-backup --location=us-central1 --repository=my-nsb-repo
2. 恢复到全新集群
- 在目标集群所在区域启用Backup for GKE API,创建备份仓库:
gcloud container backup-repositories create my-target-repo --location=us-east1 --cluster=new-cluster --cluster-location=us-east1 - 执行恢复操作,指定原备份的完整路径:
gcloud container restores create nsb-restore --location=us-east1 --repository=my-target-repo --cluster=new-cluster --cluster-location=us-east1 --backup=projects/[YOUR_PROJECT_ID]/locations/us-central1/backupRepositories/my-nsb-repo/backups/nsb-full-backup - 验证恢复结果:
kubectl get all -n ns-b kubectl get configmaps,secrets,pvc -n ns-b
方法二:使用Velero工具(开源跨集群备份方案)
1. 原集群安装Velero并配置存储
- 下载Velero客户端,创建GCP服务账号密钥文件
credentials-velero(需包含存储桶读写、GKE权限) - 安装Velero到原集群:
velero install \ --provider gcp \ --plugins velero/velero-plugin-for-gcp:v1.10.0 \ --bucket my-velero-bucket \ --secret-file ./credentials-velero \ --backup-location-config region=us-central1 \ --snapshot-location-config region=us-central1
2. 备份ns-b命名空间
velero backup create ns-b-backup --include-namespaces ns-b
- 检查备份状态:
velero backup get ns-b-backup
3. 新集群恢复备份
- 在新集群安装Velero,使用同一个存储桶和配置
- 执行恢复:
velero restore create --from-backup ns-b-backup
- 验证所有资源是否完整恢复:
kubectl get all,pvc,configmaps,secrets -n ns-b
关键注意事项
- 备份前确保ns-b内所有资源(包括PV、StatefulSet)处于稳定运行状态
- 若使用PV,需确认新集群存在相同名称的存储类,或在恢复时通过
--storage-class-mapping参数调整 - 跨区域操作时,需确保存储桶允许跨区域访问,或提前将备份复制到目标区域的存储桶
内容的提问来源于stack exchange,提问作者Mrg
相关产品推荐
相关产品推荐

