利用映像系列来简化映像版本控制。将映像添加到映像系列以将其设置为最新的映像版本。如果您确定必须将映像系列回滚到以前的映像版本,请弃用系列中最新的映像。
如需了解使用映像系列时的最佳做法,请参阅映像系列最佳做法。
(可选)您可以使用 Google Cloud 控制台、带有 --storage-location
标志的 gcloud compute images create
命令或者 images().insert
方法指定映像的存储位置。
准备工作
- 如果您要使用本指南中的命令行示例,请执行以下操作:
- 安装或更新到 Google Cloud CLI 的最新版本。
- 设置默认区域和可用区。
- 如果您要使用本指南中的 API 示例,请设置 API 访问权限。
- 阅读映像文档。
在映像系列中设置映像版本
控制台
在 Google Cloud Console 中,转到创建映像页面。
指定映像的名称。 例如
image-v1
。指定您要根据其创建映像的来源。可以是 Cloud Storage 中的永久性磁盘、快照、其他映像或 disk.raw 文件。
如果您从挂接到正在运行的虚拟机的磁盘来创建映像,请勾选保持实例运行,以确认您要在虚拟机保持运行的状态下创建映像。您可以在创建映像之前准备虚拟机。
在基于来源磁盘位置(默认)下拉列表中,指定映像的存储位置。例如,指定
us
可将映像存储在us
多区域中,或指定us-central1
可将其存储在us-central1
区域中。如果您未选择位置,Compute Engine 会将映像存储在最接近映像来源位置的多区域中。为新映像指定映像系列。例如,添加
my-image-family
可将映像整理到一个映像系列中。可选:指定其他映像属性:
- 说明:自定义映像的说明。
- 标签:用于将资源组织在一起的标签。
指定加密密钥。您可以选择 Google 管理的密钥、Cloud Key Management Service (Cloud KMS) 密钥或客户提供的加密密钥 (CSEK)。如果未指定加密密钥,则系统会使用 Google 管理的密钥对映像进行加密。
点击创建来创建映像。
gcloud
gcloud compute images create image-v1 \ --source-disk disk-1 \ --source-disk-zone us-central1-f \ --family my-image-family
映像系列指向 image-v1
。在该系列中添加第二个映像:
gcloud compute images create image-v2 \ --source-disk disk-2 \ --source-disk-zone us-central1-f \ --family my-image-family
API
向 images().insert
方法发出 POST
请求。在请求正文中指定映像系列。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name": "image-v2", "sourceDisk": "/zones/us-central1-f/disks/disk-2", "family":"my-image-family", }
该映像系列指向 image-v2
,因为这是您添加到映像系列的最新映像。
gcloud
您可以运行 gcloud compute images describe-from-family
命令来查看某个系列指向哪个映像。
例如:
gcloud compute images describe-from-family my-image-family
family: my-image-family
id: '8904691942610171306'
kind: compute#image
name: image-v2
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v2
sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v2
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY
API
向 images().getFromFamily
方法发出 GET
请求。在请求正文中指定映像系列。
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/family { "resourceId":"my-image-family", }
如果您确定必须回滚该映像系列,以使其不再指向 image-v2
,请弃用 image-v2
,这样该系列将再次指向 image-v1
。
gcloud compute images deprecate image-v2 \ --state DEPRECATED \ --replacement image-v1
检查以确保该映像系列指向 image-v1
。
gcloud compute images describe-from-family my-image-family
family: my-image-family
id: '2741732787056801255'
kind: compute#image
name: image-v1
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v1
sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v1
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY