使用机器映像可以存储 Compute Engine 上运行的虚拟机实例的一个或多个磁盘的所有配置、元数据、权限和数据。用于创建机器映像的虚拟机实例称为“源实例”。
如需了解何时以及如何使用机器映像,请参阅机器映像。
本文档介绍了通过源实例创建机器映像的步骤。
准备工作
- 如果您要使用本指南中的命令行示例,请执行以下操作:
- 安装或更新到 gcloud 命令行工具的最新版本。
- 设置默认区域和可用区。
- 如果您要使用本指南中的 API 示例,请设置 API 访问权限。
局限和限制
- 您可以跨项目共享机器映像。不过,共享 VPC 网络不受支持。
- 您可以使用 Cloud Key Management Service (Cloud KMS) 或 CSEK(客户提供的加密密钥)来保护机器映像。加密密钥用于保护磁盘的内容。不过,元数据不受保护。
- 如果您使用 CSEK 来保护机器映像,则在生成机器映像期间,系统会存储所有磁盘数据的完整副本。在其他所有情况下,磁盘数据会存储在差分副本中。
通过实例创建机器映像
您可以使用 Google Cloud Console、gcloud
命令行工具或 Compute Engine API 来创建机器映像。
如需创建机器映像,您需要以下信息:
- 您要创建的机器映像的名称。
- 源实例的名称。
- 源实例所在的地区。
- 可选的说明。
- 可选的
storageLocation
。 如果您没有指定位置,则默认存储位置为源实例的多区域 Cloud Storage 位置。 - 可选的加密密钥。您可以选择 Google 管理的密钥、Cloud Key Management Service (Cloud KMS) 密钥或 CSEK。如果未指定加密密钥,则系统会使用 Google 管理的密钥对机器映像进行加密。
如果您想使用机器映像来克隆和复制实例,请先移除实例特有的操作系统和应用信息,然后再通过实例生成机器映像。例如,对于 Windows 虚拟机实例,请使用
GCESysprep
为复制准备系统。
控制台
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
后续步骤
- 详细了解机器映像
- 通过机器映像创建虚拟机实例