实例包含引导加载程序、启动文件系统和操作系统映像。 本文档介绍了如何使用公共操作系统映像创建实例。如果您要创建 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:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
-
如果您要为映像自带现有许可,请参阅自带许可。
所需的角色
如需获得从公共映像创建实例所需的权限,请让您的管理员为您授予项目的 Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含创建公开映像实例所需的 compute.instances.create
权限。
查看 Compute Engine 上的可用公共映像列表
在使用公共映像创建实例之前,请先查看 Compute Engine 上的可用公共映像列表。
如需详细了解每个公共映像提供的功能,请参阅按操作系统提供功能支持。
在 Google Cloud 控制台中,前往图片页面。
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 C# 设置说明进行操作。 如需了解详情,请参阅 Compute Engine C# API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Go 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Go API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Java API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Node.js API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 PHP 设置说明进行操作。 如需了解详情,请参阅 Compute Engine PHP API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Python API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Ruby 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Ruby API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
运行以下命令:
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) 字段中,指定启动磁盘的大小。
- 可选:如需了解高级配置选项,请展开 显示高级配置部分。
- 如需确认您的启动磁盘选项并返回操作系统和存储空间窗格,请点击选择。
在导航菜单中,点击网络。在显示的网络窗格中,执行以下操作:
- 前往防火墙部分。
如需允许 HTTP 或 HTTPS 流量流向虚拟机,请选择允许 HTTP 流量或允许 HTTPS 流量。
Compute Engine 会向您的虚拟机中添加网络标记,并创建对应的入站防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。网络标记可将防火墙规则与虚拟机相关联。如需了解详情,请参阅 Cloud 新一代防火墙文档中的防火墙规则概览。
可选操作:如果您选择了支持安全强化型虚拟机功能的操作系统映像,则可以修改安全强化型虚拟机设置。
为此,请在导航菜单中点击安全。在显示的安全窗格中,您可以配置以下内容:
可选:指定其他配置选项。如需了解详情,请参阅实例创建期间的配置选项。
要创建并启动该虚拟机,请点击创建。
- 选择公共映像。请记下映像或映像系列的名称以及包含该映像的项目的名称。
使用
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
替换为虚拟机名称。
如需创建虚拟机,您可以使用 google_compute_instance
资源
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
如需生成 Terraform 代码,您可以使用 Google Cloud 控制台中的等效代码组件。- 在 Google Cloud 控制台中,前往虚拟机实例页面。
- 点击创建实例。
- 指定所需的参数。
- 在页面顶部或底部,点击等效代码,然后点击 Terraform 标签页以查看 Terraform 代码。
C#
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 C# 设置说明进行操作。 如需了解详情,请参阅 Compute Engine C# API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
Go
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Go 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Go API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Java API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Node.js API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 PHP 设置说明进行操作。 如需了解详情,请参阅 Compute Engine PHP API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Python API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
试用此示例之前,请按照《Compute Engine 快速入门:使用客户端库》中的 Ruby 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Ruby API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
- 选择公共映像。请记下映像或映像系列的名称以及包含该映像的项目的名称。
使用
instances.insert
方法从映像系列或操作系统映像的特定版本创建虚拟机:POST https://compute.googleapis.com/compute/v1/projects/
/zones/PROJECT_ID
/instances { "machineType":"zones/ZONE MACHINE_TYPE_ZONE /machineTypes/MACHINE_TYPE ", "name":"
", "disks":[ { "initializeParams":{ "sourceImage":"projects/VM_NAME 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 新一代防火墙文档中的防火墙规则概览。在网络性能配置部分中,验证网络接口卡字段是否设置为 IDPF。
在导航菜单中,点击高级。在显示的高级窗格中,执行以下操作:
- 展开
Terminate instance
。
虚拟机预配模型高级设置部分。验证主机维护时字段是否设置为
- 展开
可选。指定您选择的任何其他配置参数。如需详细了解自定义配置选项,请参阅创建和启动实例。
如需创建并启动裸金属实例,请点击创建。
- 选择支持裸金属实例的公共映像。请记下映像或映像系列的名称以及包含该映像的项目的名称。
使用
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
替换为新实例的名称。
- 选择支持裸金属实例的公共映像。请记下映像或映像系列的名称以及包含该映像的项目的名称。
使用
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
:指定以下其中一项: