实例包含引导加载程序、启动文件系统和操作系统映像。本文档介绍了如何通过公共操作系统映像创建实例。如果您要创建 Arm 实例,请选择与 Arm 兼容的操作系统映像。
某些映像支持安全强化型虚拟机功能,这些功能提供了诸多安全功能,例如符合 UEFI 标准的固件、安全启动以及受 vTPM 保护的测量启动。在安全强化型虚拟机上,vTPM 和完整性监控默认处于启用状态。
准备工作
- 使用 Google Cloud CLI 或 Compute Engine API 从映像创建实例时,每秒不能超过 20 个实例。如果您需要每秒创建更多的实例,请为映像资源申请配额调整。
-
如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 Google Cloud 服务和 API。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
- Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:
gcloud init
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得通过公共映像创建实例所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色包含通过公共映像创建实例所需的
compute.instances.create
权限。查看 Compute Engine 上的可用公共映像列表
在使用公共映像创建实例之前,请先查看 Compute Engine 上的可用公共映像列表。
如需详细了解每个公共映像提供的功能,请参阅按操作系统提供功能支持。
控制台
在 Google Cloud 控制台中,前往映像页面。
gcloud
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 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
运行以下命令:
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
请替换以下内容:
IMAGE_PROJECT
:包含映像的项目IMAGE_NAME
:要检查是否支持安全强化型虚拟机功能的映像的名称
如果映像支持安全强化型虚拟机功能,则输出中会显示以下行:
type: UEFI_COMPATIBLE
。
通过公共映像创建虚拟机实例
Google、开源社区及第三方供应商会提供和维护公共操作系统映像。默认情况下,所有 Google Cloud 项目都可以通过公共操作系统映像创建虚拟机。但是,如果您的 Google Cloud 项目定义了可信映像列表,则只能使用该列表上的映像来创建虚拟机。
如果您使用本地 SSD 创建安全强化型虚拟机映像,则无法通过完整性监控或虚拟可信平台模块 (vTPM) 防护数据。
控制台
在 Google Cloud 控制台中,前往创建实例页面。
如果出现提示,请选择您的项目并点击继续。 系统会显示创建实例页面,并显示机器配置窗格。
在机器配置窗格中,执行以下操作:
- 在名称字段中,为虚拟机指定名称。如需了解详情,请参阅资源命名惯例。
可选:在可用区字段中,为此虚拟机选择可用区。
默认选择为不限。如果您不更改此默认选择,Google 会根据机器类型和可用性为您自动选择可用区。
为您的虚拟机选择机器家族。然后, Google Cloud 控制台会显示适用于所选机器家族的机器系列。以下机器家族选项可供选择:
- 通用
- 计算优化
- 内存优化
- 存储优化
- GPU 数量
在系列列中,为虚拟机选择机器系列。
如果您在上一步中选择 GPU 作为机器家族,请选择所需的 GPU 类型。然后,系统会为所选 GPU 类型自动选择机器系列。
在机器类型部分中,为虚拟机选择机器类型。
在导航菜单中,点击操作系统和存储空间。在显示的操作系统和存储空间窗格中,执行以下操作来配置启动磁盘:
- 点击更改。系统会显示启动磁盘窗格,并显示公共映像标签页。
- 在操作系统列表中,选择操作系统类型。
- 在版本列表中,选择操作系统版本。
- 在启动磁盘类型列表中,选择启动磁盘的类型。
- 在大小 (GB) 字段中,指定启动磁盘的大小。
- 可选:对于 Hyperdisk Balanced 启动磁盘,请为预配 IOPS 和预配吞吐量字段指定值。
- 可选:对于高级配置选项,展开 显示高级配置部分。
- 如需确认您的启动磁盘选项并返回操作系统和存储空间窗格,请点击选择。
在导航菜单中,点击网络。在显示的网络窗格中,执行以下操作:
- 前往防火墙部分。
如需允许 HTTP 或 HTTPS 流量流向虚拟机,请选择允许 HTTP 流量或允许 HTTPS 流量。
Compute Engine 会向您的虚拟机中添加网络标记,并创建对应的入站流量防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。网络标记可将防火墙规则与虚拟机相关联。如需了解详情,请参阅 Cloud Next Generation Firewall 文档中的防火墙规则概览。
可选操作:如果您选择了支持安全强化型虚拟机功能的操作系统映像,则可以修改安全强化型虚拟机设置。
为此,请在导航菜单中点击安全。在显示的安全窗格中,您可以配置以下内容:
可选:指定其他配置选项。如需了解详情,请参阅实例创建期间的配置选项。
要创建并启动该虚拟机,请点击创建。
gcloud
- 选择公共映像。请记下映像或映像系列的名称以及包含该映像的项目的名称。
使用
gcloud compute instances create
命令从映像系列或操作系统映像的特定版本创建虚拟机。如果您指定可选的
--shielded-secure-boot
标志,则 Compute Engine 会创建一个启用了以下所有三项安全强化型虚拟机功能的虚拟机:在 Compute Engine 启动您的虚拟机后,您必须停止该虚拟机以修改安全强化型虚拟机选项。
gcloud compute instances create VM_NAME \ --zone=ZONE \ [--image=IMAGE | --image-family=IMAGE_FAMILY] \ --image-project=IMAGE_PROJECT IMAGE_FLAG \ --machine-type=MACHINE_TYPE
请替换以下内容:
VM_NAME
:新虚拟机的名称ZONE
:要在其中创建实例的可用区IMAGE_PROJECT
:包含映像的项目IMAGE_FLAG
:指定以下其中一项:使用
--image IMAGE_NAME
标志指定公共映像的特定版本。例如
--image debian-12-bookworm-v20241112
。使用
--image-family IMAGE_FAMILY_NAME
标志指定映像系列。这会通过映像系列中最新的未弃用操作系统映像创建虚拟机。例如,如果您指定
--image-family debian-12
,Compute Engine 会使用 Debian 12 映像系列中最新版本的操作系统映像。
MACHINE_TYPE
:新虚拟机的机器类型,可以是预定义机器类型或自定义机器类型。如需获取可用区中可用的机器类型列表,请将
gcloud compute machine-types list
命令与--zones
标志结合使用。
验证 Compute Engine 是否已创建该虚拟机:
gcloud compute instances describe VM_NAME
将
VM_NAME
替换为虚拟机名称。
Terraform
如需创建虚拟机,您可以使用
google_compute_instance
资源如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
如需生成 Terraform 代码,您可以使用 Google Cloud 控制台中的等效代码组件。- 在 Google Cloud 控制台中,前往虚拟机实例页面。
- 点击创建实例。
- 指定所需的参数。
- 在页面顶部或底部,点击等效代码,然后点击 Terraform 标签页以查看 Terraform 代码。
C#
C#
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 C# 设置说明进行操作。 如需了解详情,请参阅 Compute Engine C# API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
Go
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 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为本地开发环境设置身份验证。
REST
- 选择公共映像。请记下映像或映像系列的名称以及包含该映像的项目的名称。
使用
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" } }替换以下内容:
PROJECT_ID
:要在其中创建虚拟机的项目的 IDZONE
:要在其中创建虚拟机的可用区MACHINE_TYPE_ZONE
:包含新虚拟机将使用的机器类型的可用区MACHINE_TYPE
:新虚拟机的预定义或自定义机器类型VM_NAME
:新虚拟机的名称IMAGE_PROJECT
:包含映像的项目
例如,如果您将debian-10
指定为映像系列,请将debian-cloud
指定为映像项目。IMAGE
:指定以下其中一项: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
映像系列中最新版本的操作系统映像创建虚拟机。
NETWORK_NAME
:您要用于虚拟机的 VPC 网络。您可以指定default
来使用默认网络。ENABLE_SECURE_BOOT
(可选):如果您选择了支持安全强化型虚拟机功能的映像,则 Compute Engine 会默认启用虚拟可信平台模块 (vTPM) 和完整性监控。默认情况下,Compute Engine 不会启用安全启动。如果为
enableSecureBoot
指定true
,则 Compute Engine 会创建一个启用了所有三项安全强化型虚拟机功能的虚拟机。在 Compute Engine 启动您的虚拟机后,如需修改安全强化型虚拟机选项,您必须停止该虚拟机。
通过公共映像创建裸金属实例
Google、开源社区及第三方供应商会提供和维护公共操作系统映像。默认情况下,所有 Google Cloud 项目都可以使用受支持的公共操作系统映像创建裸金属实例。但是,如果您的 Google Cloud 项目定义了可信映像列表,则只能使用该列表上的映像来创建裸金属实例。
控制台
在 Google Cloud 控制台中,前往创建实例页面。
如果出现提示,请选择您的项目并点击继续。 系统会显示创建实例页面,并显示机器配置窗格。
在机器配置窗格中,执行以下操作:
- 在名称字段中,指定实例的名称。如需了解详情,请参阅资源命名惯例。
可选:在可用区字段中,为此实例选择可用区。 如果您选择了没有任何可用的裸金属服务器的可用区,则系统会提示您选择其他可用区。
默认选择为不限。如果您不更改此默认选择,Google 会根据机器类型和可用性为您自动选择可用区。
请执行以下操作之一,选择您的机器家族和系列:
- 对于 C3 裸金属系列,请选择通用作为机器家族,然后在系列列中选择 C3。
- 对于 X4 裸金属系列,请选择内存优化作为机器家族,然后在系列列中选择 X4。
在机器类型部分中,点击相应列表。在过滤器菜单中,输入
metal
,然后选择一种可用机器类型。
在导航菜单中,点击操作系统和存储空间。在显示的操作系统和存储空间窗格中,执行以下操作来配置启动磁盘:
- 点击更改。系统会显示启动磁盘窗格,并显示公共映像标签页。
- 在操作系统列表中,选择操作系统类型。
- 在版本列表中,选择操作系统版本。
- 在启动磁盘类型列表中,选择启动磁盘的类型。
- 在大小 (GB) 字段中,指定启动磁盘的大小。
- 可选:对于 Hyperdisk Balanced 启动磁盘,请为预配 IOPS 和预配吞吐量字段指定值。
- 可选:对于高级配置选项,展开 显示高级配置部分。
如需确认您的启动磁盘选项并返回操作系统和存储空间窗格,请点击选择。
在导航菜单中,点击网络。在显示的网络窗格中,执行以下操作:
- 前往防火墙部分。
如需允许 HTTP 或 HTTPS 流量流向实例,请选择允许 HTTP 流量或允许 HTTPS 流量。
Compute Engine 会向您的实例中添加网络标记,并创建对应的入站流量防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。网络标记可将防火墙规则与实例相关联。如需了解详情,请参阅 Cloud Next Generation Firewall 文档中的防火墙规则概览。在网络性能配置部分中,验证网络接口卡字段是否已设置为 IDPF。
在导航菜单中,点击高级。在显示的高级窗格中,执行以下操作:
- 展开
Terminate instance
。
虚拟机预配模型高级设置部分。验证主机维护时字段是否已设置为
- 展开
可选。指定您选择的任何其他配置参数。如需详细了解自定义配置选项,请参阅创建并启动实例。
如需创建并启动裸金属实例,请点击创建。
gcloud
- 选择支持裸金属实例的公共映像。请记下映像或映像系列的名称以及包含该映像的项目的名称。
使用
gcloud compute instances create
命令通过映像系列或特定版本的操作系统映像创建裸金属实例。gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --network-interface=nic-type=IDPF \ --maintenance-policy=TERMINATE \ --create-disk=boot=yes,type=hyperdisk-balanced,image=projects/IMAGE_PROJECT/global/images/IMAGE,provisioned-iops=IOPS,provisioned-throughput=THROUGHPUT,size=SIZE \ --no-shielded-secure-boot
替换以下内容:
INSTANCE_NAME
:新的裸金属实例的名称ZONE
:要在其中创建裸金属实例的可用区MACHINE_TYPE
:用于实例的裸金属机器类型。该机器类型的名称必须以-metal
结尾。如需获取可用区中可用的机器类型列表,请将
gcloud compute machine-types list
命令与--zones
标志结合使用。IMAGE_PROJECT
:包含映像的映像项目IMAGE
:指定以下其中一项:IOPS
(可选):磁盘可处理的每秒 I/O 操作数 (IOPS) 上限。THROUGHPUT
(可选):一个整数,表示磁盘可处理的最高吞吐量(以 MiB/秒为单位)。SIZE
:可选:新磁盘的大小。 该值必须是整数。默认的计量单位为 GiB。
验证 Compute Engine 是否已创建该实例:
gcloud compute instances describe INSTANCE_NAME
将
INSTANCE_NAME
替换为新实例的名称。
REST
- 选择支持裸金属实例的公共映像。请记下映像或映像系列的名称以及包含该映像的项目的名称。
使用
instances.insert
方法通过映像系列或特定版本的操作系统映像创建裸金属实例:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "machineType": "projects/PROJECT_ID/zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "INSTANCE_NAME", "disks": [ { "boot": true, "initializeParams": { "diskSizeGb": "DISK_SIZE", "diskType": "hyperdisk-balanced", "provisionedIops": "IOPS_LIMIT", "provisionedThroughput": "THROUGHPUT_LIMIT", "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "nicType": "IDPF" } ], "scheduling": { "onHostMaintenance": "TERMINATE" } }
请替换以下内容:
PROJECT_ID
:要在其中创建裸金属实例的项目的 IDZONE
:要在其中创建裸金属实例的可用区MACHINE_TYPE_ZONE
:包含要用于新的裸金属实例的机器类型的可用区MACHINE_TYPE
:用于实例的机器类型。该机器类型的名称必须以-metal
结尾。INSTANCE_NAME
:新实例的名称DISK_SIZE
:磁盘大小(以 GiB 为单位)IOPS_LIMIT
:您要为磁盘预配的每秒 I/O 操作数。THROUGHPUT_LIMIT
:一个整数,表示您要为磁盘预配的吞吐量(以 MB/秒为单位)。IMAGE_PROJECT
:包含映像的映像项目IMAGE
:指定以下其中一项:
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-09-05。
-
如果您要为映像提供现有许可,请参阅自带许可。