我在 GCE 中的项目 A 中创建了一个 VM。我想在另一个项目 B 中基于此 VM 创建一个新实例。
我认为我可以根据磁盘快照生成一个新实例。但是我找不到任何选项来跨项目传输此类快照。
我的问题是:
1)如何在 Google Cloud Platform 项目中跨项目传输磁盘快照?
2)除了使用docker镜像之外,还有其他更好的方法来实现这一点吗?
答案1
由于我无法关闭源 VM(因为它当前正在生产环境中使用),因此我必须使用以下步骤在另一个项目中创建镜像 VM:
1)创建源虚拟机启动盘的快照
2)在目标项目中根据此快照创建磁盘
gcloud compute disks create vm-prod-disk --source-snapshot \
https://www.googleapis.com/compute/v1/projects/<source-\
project>/global/snapshots/<source-vm-snapshot> --project target-project
3)基于步骤 2 中的新磁盘创建虚拟机
gcloud compute instances create vm-prod-duplicate \
--project target-project --disk name=vm-prod-disk,boot=yes
答案2
首先,您必须在old-project
gcloud compute images create "my-image" --source-disk "my-disk"
现在,您可以使用它在另一个项目中创建一台机器,因为图像是全局资源:
gcloud compute instances create "my-instance" \
--image "my-image" \
--image-project "new-project"
还有其他解决方案。
答案3
在旧项目中创建一个图像
gcloud compute images create "my-image" --source-disk "my-disk"
将图像复制到新项目
gcloud compute --project=newprojectid images create image-2 --source-image=image-1 --source-image-project=oldprojectid
使用此图像创建实例