本文档介绍如何使用启动磁盘映像、启动磁盘快照或容器映像创建虚拟机实例。某些映像支持安全强化型虚拟机功能,这些功能提供了诸多安全功能,例如符合 UEFI 标准的固件、安全启动以及受 vTPM 保护的测量启动。在安全强化型虚拟机上,默认情况下会启用 vTPM 和完整性监控。
您可以在创建过程中为虚拟机创建一个或多个磁盘。也可以在创建虚拟机后为其添加更多磁盘。在您创建虚拟机后,Compute Engine 会自动将其启动。
本文档介绍了创建虚拟机的基本方法。如需了解更具体或更复杂的虚拟机配置,请参阅以下资源:
- 创建 Windows Server 实例
- 创建 SQL Server 实例
- 在单租户节点上创建实例
- 使用自定义主机名创建虚拟机实例
- 预留实例和使用预留实例
- 创建使用 gVNIC 网络接口的虚拟机实例
- 配置具有较高带宽的虚拟机实例
- 创建挂接了 GPU 的虚拟机实例
- 使用高性能计算 (HPC) 映像创建虚拟机实例
- 使用批量实例 API
- 使用附加的实例时间表创建虚拟机实例
如果自带现有许可,请参阅使用单租户节点自带许可。
准备工作
- 如果您要使用本指南中的命令行示例,请执行以下操作:
- 安装或更新到 gcloud 命令行工具的最新版本。
- 设置默认区域和可用区。
- 如果您要使用本指南中的 API 示例,请设置 API 访问权限。
通过映像创建虚拟机实例
本部分介绍如何使用公共操作系统映像或自定义映像创建虚拟机。虚拟机包含引导加载程序、启动文件系统和操作系统映像。
查看 Compute Engine 上的可用公共映像列表
在使用公共映像创建虚拟机之前,请先查看 Compute Engine 上的可用公共映像列表。
如需详细了解每个公共映像提供的功能,请参阅按操作系统提供功能支持。
控制台
在 Google Cloud Console 中,转到映像页面。
gcloud
API
运行以下命令:
GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/
记下映像或映像系列的名称以及包含映像的项目。
可选操作:确定该映像是否支持安全强化型虚拟机功能。为此,请运行以下命令,然后检查输出中的
UEFI_COMPATIBLE
:GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/IMAGE_NAME
请替换以下内容:
通过公共映像创建虚拟机实例
Google 以及开源社区和第三方供应商会提供并维护公共操作系统映像。默认情况下,所有 Google Cloud 项目都可以从公共操作系统映像创建虚拟机。但是,如果您的 Cloud 项目有一个定义的可信映像列表,则您只能使用该列表中的映像来创建虚拟机。
如果您使用本地 SSD 创建安全强化型虚拟机映像,则无法使用完整性监控或虚拟可信平台模块 (vTPM)。
控制台
在 Google Cloud Console 中,转到虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例。
为您的虚拟机指定名称。 请参阅资源命名惯例。
可选操作:更改此虚拟机的可用区。Compute Engine 会随机列出每个区域内的可用区,以鼓励跨多个可用区使用。
为您的虚拟机选择机器配置。
在启动磁盘部分中,点击更改以配置您的启动磁盘。 除非您明确选择不同的启动磁盘,否则如果新虚拟机的名称与现有永久性磁盘的名称匹配,则现有永久性磁盘会自动挂接到新虚拟机作为启动磁盘。
在公共映像标签页中,选择操作系统和版本。
点击保存,确认启动磁盘选项。
选择允许 HTTP 流量或允许 HTTPS 流量,以允许传送到虚拟机的 HTTP 或 HTTPS 流量。选择其中一项后,Compute Engine 会向您的虚拟机添加一个网络标记,以将防火墙规则与该虚拟机相关联。然后,Compute Engine 会创建相应的入站防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。可选操作:如果您选择了支持安全强化型虚拟机功能的操作系统映像,则可以修改安全强化型虚拟机设置:
点击创建按钮以创建并启动虚拟机。
gcloud
- 选择公共映像。记下映像或映像系列的名称以及包含映像的项目。
使用
gcloud compute instances create
命令从映像系列或操作系统映像的特定版本创建虚拟机。如果您指定可选的
--shielded-secure-boot
标志,则 Compute Engine 会创建一个启用了以下所有三项安全强化型虚拟机功能的虚拟机:在 Compute Engine 启动您的虚拟机后,您必须停止该虚拟机以修改安全强化型虚拟机选项。
gcloud compute instances create VM_NAME \ [--image IMAGE | --image-family IMAGE_FAMILY] \ --image-project IMAGE_PROJECT
请替换以下内容:
验证 Compute Engine 是否已创建该虚拟机:
gcloud compute instances describe VM_NAME
将
VM_NAME
替换为虚拟机名称。
API
- 选择公共映像。记下映像或映像系列的名称以及包含映像的项目。
使用
instances.insert
方法从映像系列或操作系统映像的特定版本创建虚拟机:POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/PROJECT_ZONE
/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME
", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "shieldedInstanceConfig": { "enableSecureBoot": ENABLE_SECURE_BOOT } }替换以下内容:
PROJECT_ID
:要在其中创建虚拟机的项目的 ID。PROJECT_ZONE
:要在其中创建虚拟机的地区。MACHINE_TYPE_ZONE
:包含新虚拟机将使用的机器类型的地区。MACHINE_TYPE
:新虚拟机的预定义或自定义机器类型。VM_NAME
:新虚拟机的名称。IMAGE_PROJECT
:包含映像的项目。例如,如果您将debian-10
指定为映像系列,请将debian-cloud
指定为映像项目。IMAGE
或IMAGE_FAMILY
:指定以下其中一项:IMAGE
:所需的公共映像版本。例如"sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
。IMAGE_FAMILY
:映像系列。此项表示通过最新的未弃用的操作系统映像创建虚拟机。例如,如果您指定"sourceImage": "projects/debian-cloud/global/images/family/debian-10"
,则 Compute Engine 会通过 Debian 10 映像系列中最新版本的操作系统映像创建虚拟机。
ENABLE_SECURE_BOOT
(可选):如果您选择了支持安全强化型虚拟机功能的映像,则 Compute Engine 会默认启用虚拟可信平台模块 (vTPM) 和完整性监控。默认情况下,Compute Engine 不会启用安全启动。如果为enableSecureBoot
指定true
,则 Compute Engine 会创建一个启用了所有三项安全强化型虚拟机功能的虚拟机。在 Compute Engine 启动您的虚拟机后,如需修改安全强化型虚拟机选项,您必须停止该虚拟机。
Python
通过自定义映像创建虚拟机
自定义映像仅属于您的项目。如需使用自定义映像创建虚拟机,您必须先拥有自定义映像。如需了解如何创建自定义映像,请参阅创建自定义映像。
控制台
转到虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例按钮。
为您的虚拟机指定名称。 请参阅资源命名惯例。
可选操作:更改此虚拟机的可用区。Compute Engine 会随机列出每个区域内的可用区,以鼓励跨多个可用区使用。
为您的虚拟机选择机器配置。
在启动磁盘部分中,点击更改以配置您的启动磁盘。
创建一个不大于 2 TB 的启动磁盘,以符合 MBR 分区的限制。
选择自定义映像标签。
确保已在下拉列表中选择您的项目。
选择所需的映像,然后点击选择按钮。
如需允许 HTTP 或 HTTPS 流量流向虚拟机实例,请选择允许 HTTP 流量或允许 HTTPS 流量。
Cloud Console 会向虚拟机添加网络标记,并创建对应的入站防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。网络标记可将防火墙规则与虚拟机相关联。如需了解详情,请参阅虚拟私有云文档中的防火墙规则概览。点击创建按钮以创建并启动虚拟机。
gcloud
运行 gcloud compute instances create
命令以使用自定义映像创建虚拟机:
gcloud compute instances create VM_NAME \ --image-project IMAGE_PROJECT \ [--image IMAGE | --image-family IMAGE_FAMILY]
请替换以下内容:
VM_NAME
:虚拟机的名称。IMAGE_PROJECT
:包含映像的项目的名称。IMAGE
或IMAGE_FAMILY
:指定以下其中一项:IMAGE
:您的自定义映像的名称。例如--image my-debian-image-v2
。IMAGE_FAMILY
:如果您在自定义映像系列中创建了自定义映像,请指定该自定义映像系列。此项表示通过自定义映像系列中最新的未弃用的操作系统映像操作系统版本创建虚拟机。例如,如果您指定--image-family my-debian-family
,则 Compute Engine 会通过自定义my-debian-family
映像系列中最新的操作系统映像创建虚拟机。
API
在 API 中使用自定义映像创建虚拟机的过程与使用公开可用映像创建虚拟机的过程相同。
如需通过自定义映像创建虚拟机,请使用 instances.insert
方法,并在 sourceImage
URI 中提供项目 ID(包含自定义映像的项目的 ID)和自定义映像名称。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/PROJECT_ZONE/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], ..... }
替换以下内容:
PROJECT_ID
:要在其中创建虚拟机的项目的 ID。PROJECT_ZONE
:要在其中创建虚拟机的地区。MACHINE_TYPE_ZONE
:包含新虚拟机将使用的机器类型的地区。MACHINE_TYPE
:新虚拟机的预定义或自定义机器类型。VM_NAME
:新虚拟机的名称。IMAGE_PROJECT
:包含自定义映像的项目的名称。IMAGE
或IMAGE_FAMILY
:指定以下其中一项:IMAGE
:您的自定义映像的名称。例如"sourceImage": "projects/my-project-1234/global/images/my-debian-image-v2"
。IMAGE_FAMILY
:如果您在自定义映像系列中创建了自定义映像,请指定该自定义映像系列。此项表示通过自定义映像系列中最新的未弃用的操作系统映像操作系统版本创建虚拟机。例如,如果您指定"sourceImage": "projects/my-project-1234/global/images/family/my-debian-family"
,则 Compute Engine 会通过自定义my-debian-family
映像系列中最新版本的操作系统映像创建虚拟机。
创建具有额外的非启动磁盘的虚拟机实例
控制台
在 Google Cloud Console 中,转到虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例。
为您的虚拟机指定名称。 请参阅资源命名惯例。
可选操作:更改此虚拟机的可用区。Compute Engine 会随机列出每个区域内的可用区,以鼓励跨多个可用区使用。
为您的虚拟机选择机器配置。
在启动磁盘部分中,点击更改以配置您的启动磁盘。 除非您明确选择不同的启动磁盘,否则如果新虚拟机的名称与现有永久性磁盘的名称匹配,则现有永久性磁盘会自动挂接到新虚拟机作为启动磁盘。
在公共映像标签页中,选择操作系统和版本。
点击保存,确认启动磁盘选项。
选择允许 HTTP 流量或允许 HTTPS 流量,以允许传送到虚拟机的 HTTP 或 HTTPS 流量。选择其中一项后,Compute Engine 会向您的虚拟机添加一个网络标记,以将防火墙规则与该虚拟机相关联。然后,Compute Engine 会创建相应的入站防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。如需将非启动磁盘添加到您的虚拟机,请执行以下操作:
- 点击管理、安全、磁盘、网络、单独租用部分。
- 点击磁盘标签页。
- 在额外磁盘下方,点击添加新磁盘。
- 指定磁盘名称、类型、来源类型、模式和删除规则。
- 点击完成。
- 根据需要添加磁盘。
点击创建按钮以创建并启动虚拟机。
gcloud
运行 gcloud compute instances create
命令以使用额外的非启动磁盘创建虚拟机。
创建虚拟机时,您最多可以添加 128 个非启动磁盘。为您创建的每个非启动磁盘指定 --create-disk
标志。
如需通过公共映像或库存映像创建非启动磁盘,请在 --create-disk
标志中指定 image
或 image-family
和 image-project
属性。如需创建空白磁盘,请勿包含这些属性。可选操作:添加磁盘 size
和 type
属性。
gcloud compute instances create VM_NAME \ [--image IMAGE | --image-family IMAGE_FAMILY] \ --image-project IMAGE_PROJECT \ --create-disk [image=DISK_IMAGE | image-family=DISK_IMAGE_FAMILY ],image-project=DISK_IMAGE_PROJECT,size=SIZE_GB,type=DISK_TYPE
请替换以下内容:
VM_NAME
:新虚拟机的名称。IMAGE
或IMAGE_FAMILY
。 指定以下其中一项:IMAGE
:所需的公共映像版本。例如--image debian-10-buster-v20200309
。IMAGE_FAMILY
:映像系列。此项表示通过最新的未弃用的操作系统映像创建虚拟机。例如,如果您指定--image-family debian-10
,则 Compute Engine 会通过 Debian 10 映像系列中最新版本的操作系统映像创建虚拟机。
IMAGE_PROJECT
:包含映像的项目。对于额外的磁盘,请替换以下内容:
DISK_IMAGE
或DISK_IMAGE_FAMILY
:指定以下其中一项:DISK_IMAGE
:要用作非启动磁盘的映像的名称。DISK_IMAGE_FAMILY
:要用作非启动磁盘的映像系列。
DISK_IMAGE_PROJECT
:磁盘映像所属的映像项目。SIZE_GB
(可选):非启动磁盘的大小。DISK_TYPE
(可选):永久性磁盘的类型。例如pd-ssd
。对于空白磁盘,请勿指定DISK_IMAGE
、DISK_IMAGE_FAMILY
或DISK_IMAGE_PROJECT
参数。
在使用磁盘之前,格式化并装载磁盘。
API
通过对每个额外磁盘使用 initializeParams
属性,您可以在创建虚拟机实例时创建多达 128 个非启动磁盘。使用公共映像或私有映像创建额外磁盘。
如需添加空白磁盘,请定义不带 sourceImage
值的 initializeParams
条目。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/PROJECT_ZONE/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true }, { "initializeParams": { "diskSizeGb": "SIZE_GB", "sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/DISK_IMAGE", "diskType": "DISK_TYPE" }, { "initializeParams": { "diskSizeGb": "SIZE_GB", "diskType": "DISK_TYPE" } }...]
替换以下内容:
PROJECT_ID
:要在其中创建虚拟机的项目的 ID。PROJECT_ZONE
:要在其中创建虚拟机的地区。MACHINE_TYPE_ZONE
:包含新虚拟机将使用的机器类型的地区。MACHINE_TYPE
:新虚拟机的预定义或自定义机器类型。VM_NAME
:新虚拟机的名称。IMAGE_PROJECT
:包含自定义映像的项目的名称。IMAGE
或IMAGE_FAMILY
:指定以下其中一项:IMAGE
:您的自定义映像的名称。例如"sourceImage": "projects/my-project-1234/global/images/my-debian-image-v2"
。IMAGE_FAMILY
:如果您在自定义映像系列中创建了自定义映像,请指定该自定义映像系列。此项表示通过自定义映像系列中最新的未弃用的操作系统映像操作系统版本创建虚拟机。例如,如果您指定"sourceImage": "projects/my-project-1234/global/images/family/my-debian-family"
,则 Compute Engine 会通过自定义my-debian-family
映像系列中最新版本的操作系统映像创建虚拟机。
- 对于额外的磁盘,请替换以下内容:
SIZE_GB
:磁盘大小。DISK_IMAGE
或DISK_IMAGE_FAMILY
:为非启动磁盘指定来源映像或映像系列:DISK_IMAGE
:要用作非启动磁盘的映像的名称。例如"sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/DISK_IMAGE"
。DISK_IMAGE_FAMILY
:要用作非启动磁盘的映像系列。例如"sourceImage": "projects/DISK_IMAGE_PROJECT/global/images/family/DISK_IMAGE_FAMILY"
。
DISK_TYPE
:永久性磁盘的类型。例如pd-ssd
。对于空白磁盘,请勿指定DISK_IMAGE
、DISK_IMAGE_FAMILY
或DISK_IMAGE_PROJECT
参数。
在使用磁盘之前,格式化并装载磁盘。
通过共享映像创建虚拟机实例
如果其他用户与您共享映像,您可以使用该映像创建虚拟机。
控制台
转到虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例按钮。
为您的虚拟机指定名称。 请参阅资源命名惯例。
可选操作:更改此虚拟机的可用区。Compute Engine 会随机列出每个区域内的可用区,以鼓励跨多个可用区使用。
为您的虚拟机选择机器配置。
在启动磁盘部分中,点击更改以配置您的启动磁盘。
创建一个不大于 2 TB 的启动磁盘,以符合 MBR 分区的限制。
选择自定义映像标签。
从下拉列表中选择映像项目。
选择所需的映像,然后点击选择按钮。
如需允许 HTTP 或 HTTPS 流量流向虚拟机,请选择允许 HTTP 流量或允许 HTTPS 流量。
Cloud Console 会向虚拟机添加网络标记,并创建对应的入站防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。网络标记可将防火墙规则与虚拟机相关联。如需了解详情,请参阅虚拟私有云文档中的防火墙规则概览。点击创建按钮以创建并启动虚拟机。
gcloud
使用 gcloud compute instances create
命令创建虚拟机,并使用 --image
和 --image-project
标志指定映像名称和映像所在的项目:
gcloud compute instances create VM_NAME \ --image IMAGE \ --image-project IMAGE_PROJECT
请替换以下内容:
VM_NAME
:新虚拟机的名称IMAGE
:映像的名称IMAGE_PROJECT
:映像所属的项目
如果命令成功,gcloud
将返回新虚拟机的属性作为响应:
Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS example-instance us-central1-b e2-standard-2 10.240.0.4 104.198.53.60 RUNNING
在使用磁盘之前,格式化并装载磁盘。
API
按照 API 说明通过公共映像创建虚拟机,但在请求正文中指定 image
字段。如需添加空白磁盘,请勿指定映像来源。可选操作:您可以指定 diskSizeGb
、diskType
和 labels
属性。
[... image: "projects/PROJECT_ID/global/images/IMAGE_NAME { "initializeParams": { "diskSizeGb": "SIZE_GB", "sourceImage": "IMAGE" } } ...]
请替换以下内容:
PROJECT_ID
:该映像所属的项目。IMAGE_NAME
:来源映像。SIZE_GB
:磁盘大小。IMAGE
:非启动磁盘的来源映像。对于空白磁盘,请勿指定映像来源
在使用磁盘之前,格式化并装载磁盘。
根据快照创建虚拟机实例
如果您使用快照备份了永久性启动磁盘,则可以使用该快照创建虚拟机。
请注意,如果您计划通过同一个启动磁盘快照创建多个虚拟机,请考虑创建自定义映像和通过该映像创建虚拟机。与通过快照创建的启动磁盘相比,通过自定义映像创建的启动磁盘所花费的时间更少。
根据快照创建虚拟机实例启动磁盘
创建虚拟机时,您可以将启动磁盘的快照恢复到新的启动磁盘。
控制台
转到虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例按钮。
为您的虚拟机指定名称。 请参阅资源命名惯例。
可选操作:更改此虚拟机的可用区。Compute Engine 会随机列出每个区域内的可用区,以鼓励跨多个可用区使用。
为您的虚拟机选择机器配置。
在启动磁盘部分中,点击更改以配置您的启动磁盘。
创建一个不大于 2 TB 的启动磁盘,以符合 MBR 分区的限制。
点击快照标签页,然后从列表中选择一个快照。
点击选择。
如需允许 HTTP 或 HTTPS 流量流向虚拟机,请选择允许 HTTP 流量或允许 HTTPS 流量。
Cloud Console 会向虚拟机添加网络标记,并创建对应的入站防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。网络标记可将防火墙规则与虚拟机相关联。如需了解详情,请参阅虚拟私有云文档中的防火墙规则概览。点击创建按钮以创建并启动虚拟机。
gcloud
使用 gcloud compute instances create
命令并添加 --source-snapshot
标志:
gcloud compute instances create VM_NAME \ --source-snapshot BOOT_SNAPSHOT_NAME \ --boot-disk-size BOOT_DISK_SIZE \ --boot-disk-type BOOT_DISK_TYPE \ --boot-disk-device-name BOOT_DISK_NAME
请替换以下内容:
API
通过 API 通过快照创建虚拟机时,需要遵循以下限制:
- 只能将一个永久性磁盘用作永久性启动磁盘。
- 必须将永久性启动磁盘作为该虚拟机的第一个磁盘挂接。
如果您指定了
source
属性,则不能同时指定initializeParams
属性。提供source
表示永久性启动磁盘已存在,但initializeParams
属性指示 Compute Engine 应创建新的永久性启动磁盘。如需通过启动磁盘快照创建虚拟机,请在
disks
属性下指定sourceSnapshot
字段。可选操作:为新启动磁盘指定diskSizeGb
和diskType
属性:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "machineTypes/MACHINE_TYPE" "networkInterfaces": [{ "accessConfigs": [{ "type": "ONE_TO_ONE_NAT", "name": "External NAT" }], "network": "global/networks/default" }], "disks": [{ "boot": true, "initializeParams": { "sourceSnapshot": "global/snapshots/BOOT_SNAPSHOT_NAME", "diskSizeGb": "BOOT_DISK_SIZE", "diskType": "BOOT_DISK_TYPE" } }], }
替换以下内容:
将非启动快照恢复到新虚拟机实例
非启动快照是指您的虚拟机仅用于数据存储的辅助永久性磁盘的备份。创建虚拟机时,您可以将非启动快照恢复到新磁盘。或者,您还可以将非启动快照恢复到现有虚拟机。
如需将非启动快照恢复到新虚拟机,请在创建虚拟机时按照以下额外的步骤执行操作。
控制台
从控制台将非启动快照恢复到新虚拟机时,首根据每个快照创建一个磁盘。然后,在创建虚拟机时挂接新磁盘。
将每个非启动快照恢复到新磁盘。
在 Google Cloud Console 中,转到虚拟机实例页面。
点击创建实例。
为您的虚拟机指定名称。 请参阅资源命名惯例。
为此虚拟机选择区域和可用区。磁盘和虚拟机必须位于同一可用区。
为您的虚拟机选择机器类型。
如果要允许传入的外部流量,请更改虚拟机的防火墙规则。
如需将磁盘挂接到虚拟机,请执行以下操作:
- 点击管理、安全、磁盘、网络、单独租用。
- 选择磁盘标签。
- 在额外磁盘下,点击挂接现有磁盘。
- 在新的磁盘字段下,选择要挂接到此虚拟机的磁盘。
- 为磁盘指定模式和删除规则。
- 点击完成。
- 针对您要挂接的每个磁盘,重复上述步骤。创建虚拟机时,您最多可以添加 15 个非启动磁盘。
点击创建以创建并启动虚拟机。
在使用挂接的磁盘之前,格式化并装载磁盘。
gcloud
使用 gcloud compute instances create
命令创建虚拟机。对于要恢复的每个非启动快照,请添加 --create-disk
标志并指定 source-snapshot
。创建虚拟机时,您最多可以添加 15 个非启动磁盘。
例如,如需将两个非启动快照恢复到新虚拟机,请使用以下命令:
gcloud compute instances create VM_NAME \ --create-disk source-snapshot=SNAPSHOT_1_NAME,name=DISK_1_NAME,size=DISK_1_SIZE,type=DISK_1_TYPE \ --create-disk source-snapshot=SNAPSHOT_2_NAME,name=DISK_2_NAME,size=DISK_2_SIZE,type=DISK_2_TYPE
请替换以下内容:
API
使用 API 将非启动快照恢复到新虚拟机时,需要遵循以下限制:
- 永久性启动磁盘只能有一个。
- 必须将永久性启动磁盘作为该虚拟机的第一个磁盘挂接。
- 如果您指定了
source
属性,则不能同时指定initializeParams
属性。提供source
表示永久性启动磁盘已存在,但initializeParams
属性指示 Compute Engine 应创建新的永久性启动磁盘。
使用测试版 API,在 initializeParams
属性下指定 sourceSnapshot
字段。通过为要创建的每个非启动磁盘重复使用 initializeParams
属性,您最多可以添加 15 个非启动磁盘。可选操作:您可以为创建的任何磁盘指定 diskSizeGb
和 diskType
属性。
例如,如需将两个非启动快照恢复到新虚拟机,请发出以下请求:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "machineTypes/MACHINE_TYPE" "networkInterfaces": [{ "accessConfigs": [{ "type": "ONE_TO_ONE_NAT", "name": "External NAT" }], "network": "global/networks/default" }], "disks": [{ "autoDelete": "true", "boot": "true", "type": "PERSISTENT", "diskSizeGb": "DISK_SIZE", "diskType": "DISK_TYPE" }, { "initializeParams": { "sourceSnapshot": "global/snapshots/SNAPSHOT_1_NAME", "diskSizeGb": "DISK_SIZE", "diskType": "DISK_TYPE" } }, { "initializeParams": { "sourceSnapshot": "global/snapshots/SNAPSHOT_2_NAME", "diskSizeGb": "DISK_SIZE", "diskType": "DISK_TYPE" } }] }
请替换以下内容:
通过容器映像创建虚拟机实例
如需在 Compute Engine 虚拟机上部署和启动容器,请在创建虚拟机时指定容器映像名称和可选配置参数。Compute Engine 使用最新版本的 Container-Optimized OS 公共映像创建虚拟机,该映像安装了 Docker。然后,Compute Engine 会在虚拟机启动时启动容器。如需了解详情,请参阅在虚拟机上部署容器。
控制台
在 Google Cloud Console 中,转到虚拟机实例页面。
点击创建实例。
为您的虚拟机指定名称。请参阅资源命名惯例。
在容器部分中,选中将一个容器映像部署到此虚拟机实例 (Deploy a container image to this VM instance) 复选框。
指定要使用的容器映像,例如:
如需从 Cloud Launcher 中选择 NGINX 1.12 容器映像,请运行以下命令:
gcr.io/cloud-marketplace/google/nginx1:1.12
如需从 Docker Hub 部署 Apache 容器映像,请始终指定完整的 Docker 映像名称:
docker.io/httpd:2.4
可选操作:点击高级容器选项。如需了解详情,请参阅配置选项以便运行容器。
点击创建以创建虚拟机、启动虚拟机并启动容器。
gcloud
运行 gcloud compute instances create-with-container
命令:
gcloud compute instances create-with-container VM_NAME \ --container-image CONTAINER_IMAGE
请替换以下内容:
VM_NAME
:新虚拟机的名称CONTAINER_IMAGE
:容器映像的名称
例如,以下命令会创建名为 nginx-vm
的虚拟机,它会启动并运行容器映像:
gcr.io/cloud-marketplace/google/nginx1:1.12
gcloud compute instances create-with-container nginx-vm \ --container-image gcr.io/cloud-marketplace/google/nginx1:1.12
如需从 Docker Hub 部署 Apache 容器映像,请始终指定完整的 Docker 映像名称:
docker.io/httpd:2.4
。
创建可访问其他 Google Cloud 服务的虚拟机实例
如果您计划在需要访问其他 Google Cloud 服务的虚拟机上运行应用,请在创建虚拟机之前创建服务帐号,然后按照说明设置要以服务帐号的身份运行的虚拟机。服务帐号是一个特殊帐号,您可以在应用代码中使用其凭据来访问其他 Google Cloud 服务。
如需详细了解服务帐号,请参阅服务帐号。
在特定子网中创建虚拟机实例
默认情况下,Google Cloud 会为每个项目创建一个名为 default
的自动模式 VPC 网络。如果您在未指定网络详细信息的情况下创建虚拟机,Compute Engine 会使用默认 VPC 网络以及与虚拟机位于同一区域的自动子网。
如需使用其他网络或者您在自动模式或自定义模式 VPC 网络中手动创建的子网,您必须在创建虚拟机时指定子网。
控制台
在 Google Cloud Console 中,转到虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例按钮。
为您的虚拟机指定名称。 请参阅资源命名惯例。
可选操作:更改此虚拟机的可用区。Compute Engine 会随机列出每个区域内的可用区,以鼓励跨多个可用区使用。
如需允许 HTTP 或 HTTPS 流量流向虚拟机,请选择允许 HTTP 流量或允许 HTTPS 流量。
Cloud Console 会向虚拟机添加网络标记,并创建对应的入站防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。网络标记可将防火墙规则与虚拟机相关联。如需了解详情,请参阅虚拟私有云文档中的防火墙规则概览。展开管理、安全、磁盘、网络、单独租用部分。
在网络标签的网络接口下方,指定网络详细信息。
- 在网络字段中,选择包含您创建的子网的 VPC 网络。
- 在子网字段中,选择虚拟机将使用的子网。
点击创建按钮以创建并启动虚拟机。
gcloud
使用 gcloud
命令行工具,按照使用映像创建虚拟机或使用快照创建虚拟机的说明执行操作,然后在运行 gcloud compute instances create
命令时添加 --subnet SUBNET_NAME
和 --zone ZONE_NAME
标志:
gcloud compute instances create VM_NAME \ --subnet SUBNET_NAME \ --zone ZONE_NAME
请替换以下内容:
VM_NAME
:虚拟机的名称。SUBNET_NAME
:子网的名称。网络是根据指定的子网推断出来的。ZONE_NAME
:在其中创建虚拟机的可用区,例如europe-west1-b
。虚拟机的区域是根据可用区推断出来的。
在使用磁盘之前,格式化并装载磁盘。
API
按照使用映像创建虚拟机或使用快照创建虚拟机的 API 说明执行操作,但在请求正文中指定 subnet
字段。如需添加空白磁盘,请勿添加来源映像。可选操作:您可以指定 diskSizeGb
、diskType
和 labels
属性。
... "networkInterfaces": [ { "network": "global/networks/NETWORK_NAME", "subnetwork": "regions/REGION/subnetworks/SUBNET_NAME", "accessConfigs": { "name": "External NAT", "type": "ONE_TO_ONE_NAT" } { "initializeParams": { "diskSizeGb": "SIZE_GB", "sourceImage": "IMAGE" { "initializeParams": { "diskSizeGb": "SIZE_GB" } }...]
请替换以下内容:
NETWORK_NAME
:要在其中创建虚拟机的网络。REGION
:要在其中创建虚拟机的区域名称。SUBNET_NAME
:子网的名称。SIZE_GB
:磁盘大小。IMAGE
:非启动磁盘的来源映像。对于空白磁盘,请勿指定映像来源。
在使用磁盘之前,格式化并装载磁盘。
后续步骤
- 查看虚拟机的状态以了解其何时可用。
- 了解如何使用快照备份永久性磁盘中的数据。
- 详细了解映像。
- 详细了解容器。
- 创建非启动存储磁盘并将其挂接到您的虚拟机,以便在启动磁盘外单独存储您的数据。
- 创建并启动 Windows Server 或 SQL Server 实例。
- 参阅
gcloud compute instances create
命令。 - 了解如何在特定地区预留资源。
- 连接到虚拟机实例。
亲自尝试
如果您是 Google Cloud 新手,请创建一个帐号来评估 Compute Engine 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
免费试用 Compute Engine