Google compute engine 如何在项目之间共享google计算引擎图像?
我知道图像是全球资源,“可以被同一项目中任何区域的任何资源访问” 我正在寻找类似于在AWS中共享AMI的功能。也就是说,我创建了一个图像,将其公开,任何人都可以立即使用它Google compute engine 如何在项目之间共享google计算引擎图像?,google-compute-engine,Google Compute Engine,我知道图像是全球资源,“可以被同一项目中任何区域的任何资源访问” 我正在寻找类似于在AWS中共享AMI的功能。也就是说,我创建了一个图像,将其公开,任何人都可以立即使用它 如何在普通中等教育中取得类似的成绩?问题是,我需要创建的图像会很大—大约100GB。因此,我正在寻找一种共享图像的方式,这种方式不会涉及缓慢的复制(例如从谷歌云存储中的存储桶中复制)。您可以将图像存储到谷歌云存储中。谷歌云存储为你提供了更多的选择来控制谁有权访问该图像,而不仅仅是将其公开 您可以使用gcutil访问该图像。差不
如何在普通中等教育中取得类似的成绩?问题是,我需要创建的图像会很大—大约100GB。因此,我正在寻找一种共享图像的方式,这种方式不会涉及缓慢的复制(例如从谷歌云存储中的存储桶中复制)。您可以将图像存储到谷歌云存储中。谷歌云存储为你提供了更多的选择来控制谁有权访问该图像,而不仅仅是将其公开 您可以使用gcutil访问该图像。差不多
gcutil--project=project-name-1 addimage“my awesome image”gs://bucket name/myawesome.images.gz
您可以使用谷歌云存储,但每次下载都要收费,而且需要很长时间(如果是100 GB)
更好的解决方案是让用户“可以查看”您的项目。然后用户可以使用gcloud
命令行,使用您的图像创建一个实例。但是请注意,用户将看到项目中的所有内容,他只是无法更改它
如果图像的所有者已在您想要使用的区域中使用它,则此解决方案会更快。因为图像是在那里兑现的,它会立即启动。另一个好处是,如果有人下载此图像,该所有者不会被收取费用
`gcloud compute instances create [INSTANCE_NAME]
--image-family [IMAGE_FAMILY]
--image-project [IMAGE_PROJECT]
--machine_type=<type-of-machine>
--network="default"
--family my-image-family`
`gcloud计算实例创建[实例名称]
--图像系列[图像系列]
--图像工程[图像工程]
--机器类型=
--网络=“默认”
--家庭我的形象家庭`
如果你想让更多的人访问,你可以创建一个谷歌组,允许组成员“可以查看”项目的访问权。现在,您可以使用Google组控制谁可以访问它。Compute Engine添加了IAM角色(Compute.imageUser),允许与其他项目共享图像 文件:
免责声明-我为谷歌云工作。一个人只需grand
角色/compute.imageUser
访问用于创建实例的
服务帐户:
gcloud projects add-iam-policy-binding <ID-of-image-owners-project> \
--member serviceAccount:account-to-create-instances@<ID-of-your-project>.iam.gserviceaccount.com \
--role roles/compute.imageUser
gcloud项目添加iam策略绑定\
--成员服务帐户:要创建的帐户-instances@.iam.gserviceaccount.com \
--角色/compute.imageUser
谢谢您的回答,有文档记录很好!然而,正如我在这个问题中所说的,我正在寻找一个高效的共享大型图像的解决方案,我已经考虑了谷歌云存储选项。鼓励外部资源的链接,但是请在链接周围添加上下文,这样你的同伴用户会知道它是什么以及它为什么在那里。始终引用重要链接中最相关的部分,以防无法访问目标站点或永久脱机。