本文档介绍如何使用启动磁盘映像、启动磁盘快照或容器映像创建虚拟机 (VM) 实例。某些映像支持安全强化型虚拟机功能,这些功能提供了诸多安全功能,例如符合 UEFI 标准的固件、安全启动以及受 vTPM 保护的测量启动。在安全强化型虚拟机上,默认情况下会启用 vTPM 和完整性监控。
在创建虚拟机时,您可为虚拟机创建一个或多个磁盘。也可以在创建虚拟机后为其添加更多磁盘。在您创建虚拟机实例后,Compute Engine 会自动将其启动。
创建虚拟机时,您还可以添加多个网络接口。为了缓解互联网给虚拟机造成的威胁,您可以在向实例添加网络接口时省略外部 IP 地址。在这种情况下,除非您配置了 Cloud NAT,否则只能从同一 VPC 网络或关联网络中的其他虚拟机访问该虚拟机。
如果您是首次创建虚拟机,请参阅《快速入门:使用 Linux 虚拟机》或《快速入门:使用 Windows Server 虚拟机》。
有关更具体或更复杂的虚拟机创建,请参阅以下资源:
- 创建 Windows Server 实例
- 创建 SQL Server 实例
- 在单租户节点上创建实例
- 使用自定义主机名创建虚拟机实例
- 预留实例和使用预留实例
- 创建使用 gVNIC 网络接口的虚拟机实例
- 创建和启动 Arm 虚拟机实例
- 配置具有较高带宽的虚拟机实例
- 创建挂接了 GPU 的虚拟机实例
- 使用高性能计算 (HPC) 映像创建虚拟机实例
- 使用批量实例 API
- 使用附加的实例时间表创建虚拟机实例
- 创建代管式实例组 (MIG)
如果自带现有许可,请参阅使用单租户节点自带许可。
准备工作
- 如果您要使用本指南中的命令行示例,请执行以下操作:
- 安装或更新到 Google Cloud CLI 的最新版本。
- 设置默认区域和可用区。
- 如果您要使用本指南中的 API 示例,请设置 API 访问权限。
- 使用 Google Cloud CLI 或 Compute Engine API 从映像或磁盘创建虚拟机时,每秒不能超过 20 个虚拟机实例。如果您需要每秒创建更多的虚拟机,请为映像资源申请更高的配额限制。
通过映像创建虚拟机实例
本部分介绍如何使用公共操作系统映像或自定义映像创建虚拟机。虚拟机包含引导加载程序、启动文件系统和操作系统映像。
查看 Compute Engine 上的可用公共映像列表
在使用公共映像创建虚拟机之前,请先查看 Compute Engine 上的可用公共映像列表。
如需详细了解每个公共映像提供的功能,请参阅按操作系统提供功能支持。
控制台
在 Google Cloud 控制台中,转到映像页面。
gcloud
-
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。
运行以下命令:
gcloud compute images list
请记下映像或映像系列的名称以及包含该映像的项目的名称。
可选:如需确定映像是否支持安全强化型虚拟机功能,请运行以下命令:
gcloud compute images describe IMAGE_NAME \ --project=IMAGE_PROJECT
请替换以下内容:
如果映像支持安全强化型虚拟机功能,则输出中会显示以下行:
type: UEFI_COMPATIBLE
。
API
运行以下命令:
GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/
请记下映像或映像系列的名称以及包含该映像的项目的名称。
可选:如需确定映像是否支持安全强化型虚拟机功能,请运行以下命令:
GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/IMAGE_NAME
请替换以下内容:
如果映像支持安全强化型虚拟机功能,则输出中会显示以下行:
type: UEFI_COMPATIBLE
。
C#
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 C# 设置说明进行操作。如需了解详情,请参阅 Compute Engine C# API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Go 设置说明进行操作。如需了解详情,请参阅 Compute Engine Go API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Java
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Java 设置说明进行操作。如需了解详情,请参阅 Compute Engine Java API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Node.js
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Node.js 设置说明进行操作。如需了解详情,请参阅 Compute Engine Node.js API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
PHP
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 PHP 设置说明进行操作。如需了解详情,请参阅 Compute Engine PHP API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Python
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Python 设置说明进行操作。如需了解详情,请参阅 Compute Engine Python API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Ruby
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Ruby 设置说明进行操作。如需了解详情,请参阅 Compute Engine Ruby API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
通过公共映像创建虚拟机实例
Google、开源社区及第三方供应商会提供和维护公共操作系统映像。默认情况下,所有 Google Cloud 项目都可以从公共操作系统映像创建虚拟机。但是,如果 Google Cloud 项目有一个定义的可信映像列表,则您只能使用该列表中的映像来创建虚拟机。
如果您使用本地 SSD 创建安全强化型虚拟机映像,则无法使用完整性监控或虚拟可信平台模块 (vTPM)。
控制台
在 Google Cloud 控制台中,前往虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例。
为您的虚拟机指定名称。如需了解详情,请参阅资源命名惯例。
可选操作:更改此虚拟机的可用区。Compute Engine 会随机列出每个区域内的可用区,以鼓励跨多个可用区使用。
为您的虚拟机选择机器配置。
在启动磁盘部分,点击更改,然后执行以下操作:
- 在公共映像标签页中,选择以下内容:
- 操作系统
- 操作系统版本
- 启动磁盘类型
- 启动磁盘大小
- 可选:对于高级配置选项,点击显示高级配置。
- 如需确认您的启动磁盘选项,请点击选择。
- 在公共映像标签页中,选择以下内容:
在防火墙部分中,如需允许 HTTP 或 HTTPS 流量流向虚拟机,请选择允许 HTTP 流量或允许 HTTPS 流量。选择其中一项后,Compute Engine 会向您的虚拟机添加一个网络标记,以将防火墙规则与该虚拟机相关联。然后,Compute Engine 会创建相应的入站防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。可选操作:如果您选择了支持安全强化型虚拟机功能的操作系统映像,则可以修改安全强化型虚拟机设置:如需修改安全强化型虚拟机设置,请展开网络、磁盘、安全、管理、单独租用部分中的安全部分,然后根据需要执行以下操作:
要创建并启动该虚拟机,请点击创建。
gcloud
-
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在 Google Cloud 控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟时间来完成初始化。
选择公共映像。请记下映像或映像系列的名称以及包含该映像的项目的名称。
使用
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 --machine-type=MACHINE_TYPE
请替换以下内容:
VM_NAME
:新虚拟机的名称IMAGE
或IMAGE_FAMILY
:指定以下其中一项:IMAGE
:公共映像的特定版本例如
--image=debian-10-buster-v20200309
。IMAGE_FAMILY
:映像系列。此项表示通过最新的未弃用的操作系统映像创建虚拟机。例如,如果您指定
--image-family=debian-10
,则 Compute Engine 会通过 Debian 10 映像系列中最新版本的操作系统映像创建虚拟机。
IMAGE_PROJECT
:包含映像的项目-
如需获取可用区中可用的机器类型列表,请使用带有
--zones
标志的gcloud compute machine-types list
命令。
验证 Compute Engine 是否已创建该虚拟机:
gcloud compute instances describe VM_NAME
将
VM_NAME
替换为虚拟机名称。
Terraform
如需创建虚拟机,您可以使用 google_compute_instance
资源。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
如需生成 Terraform 代码,您可以使用 Google Cloud 控制台中的等效代码组件。- 在 Google Cloud 控制台中,前往虚拟机实例页面。
- 点击创建实例。
- 指定所需的参数。
- 在页面顶部或底部,点击等效代码,然后点击 Terraform 标签页以查看 Terraform 代码。
API
- 选择公共映像。请记下映像或映像系列的名称以及包含该映像的项目的名称。
使用
instances.insert
方法从映像系列或操作系统映像的特定版本创建虚拟机:POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances { "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name":"VM_NAME
", "disks":[ { "initializeParams":{ "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot":true } ], "networkInterfaces":[ { "network":"global/networks/NETWORK_NAME" } ], "shieldedInstanceConfig":{ "enableSecureBoot":"ENABLE_SECURE_BOOT" } }替换以下内容: