创建机器映像

使用机器映像可以存储 Compute Engine 上运行的虚拟机实例的一个或多个磁盘的所有配置、元数据、权限和数据。用于创建机器映像的虚拟机实例称为“来源虚拟机实例”。

如需了解何时以及如何使用机器映像,请参阅机器映像

本文档介绍了通过来源虚拟机实例创建机器映像的步骤。

准备工作

局限和限制

  • 您可以跨项目共享机器映像。不过,共享 VPC 网络不受支持。
  • 您可以使用 Cloud Key Management Service (Cloud KMS)CSEK(客户提供的加密密钥)来保护机器映像。加密密钥用于保护磁盘的内容。不过,元数据不受保护。
  • 如果您使用 CSEK 来保护机器映像,则在生成机器映像期间,系统会存储所有磁盘数据的完整副本。在其他所有情况下,磁盘数据会存储在差分副本中。
  • 无法通过挂接的磁盘超过 200 TB 的来源虚拟机创建机器映像。

通过虚拟机创建机器映像

您可以使用 Google Cloud Consolegcloud 命令行工具Compute Engine API 来创建机器映像。

如需创建机器映像,您需要以下信息:

  • 您要创建的机器映像的名称。
  • 来源虚拟机实例的名称。
  • 来源虚拟机实例所在的可用区。
  • 可选的说明。
  • 可选的 storageLocation。 如果您没有指定位置,则默认存储位置为来源虚拟机实例的多区域 Cloud Storage 位置
  • 可选的加密密钥。您可以选择 Google 管理的密钥、Cloud Key Management Service (Cloud KMS) 密钥或 CSEK。如果未指定加密密钥,则系统会使用 Google 管理的密钥对机器映像进行加密。
  • 如果您想使用机器映像来克隆和复制实例,请先移除实例特有的操作系统和应用信息,然后再通过实例生成机器映像。例如,对于 Windows 虚拟机实例,请使用 GCESysprep 为复制准备系统。

控制台

  1. 在 Google Cloud Console 中,转到机器映像页面。

    转到机器映像

  2. 点击创建机器映像

  3. 为您的机器映像指定名称

  4. 可选:提供说明

  5. 选择来源虚拟机实例

  6. 可选:指定机器映像的存储位置。选择多区域单区域存储空间。如需详细了解位置,请参阅机器映像存储位置

  7. 可选:选择加密方法。

  8. 点击创建

gcloud

使用 gcloud beta compute machine-images create 命令可通过实例创建机器映像。

gcloud beta compute machine-images create MACHINE_IMAGE_NAME \
    --source-instance SOURCE_INSTANCE_NAME

请替换以下内容:

  • MACHINE_IMAGE_NAME:您要创建的机器映像的名称。
  • SOURCE_INSTANCE_NAME:您要通过其创建映像的来源虚拟机实例的名称。

示例

例如,您可以使用以下 gcloud 命令通过一个名为 my-instance 的源实例创建一个名为 my-machine-image 的机器映像:

gcloud beta compute machine-images create my-machine-image  \
    --source-instance my-instance

此过程需要几分钟的时间。创建机器映像后,您会获得类似于以下内容的输出:

Created [https://www.googleapis.com/compute/beta/projects/project-12345/global/machineImages/my-machine-image].
NAME               STATUS
my-machine-image   READY

API

在 API 中,构建对 machineimages.insert 方法的 POST 请求。在请求正文中,添加以下 POST 请求:

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/machineImages

{
  "name": "MACHINE_IMAGE_NAME",
  "sourceInstance": "SOURCE_INSTANCE_URL"
}

请替换以下内容:

  • PROJECT_ID项目 ID
  • MACHINE_IMAGE_NAME:您要创建的机器映像的名称。
  • SOURCE_INSTANCE_URL:您要用于创建机器映像的来源虚拟机实例的完整网址或部分网址。例如,如果您在名为 myProject 的项目中有一个名为 my-instance 的源实例。以下网址有效:

    • https://www.googleapis.com/compute/v1/projects/myProject/global/instances/my-instance
    • projects/myProject/global/instances/my-instance
    • global/instances/my-instance

后续步骤