本文档介绍了如何使用启动磁盘映像、启动磁盘快照或容器映像创建虚拟机 (VM) 实例或裸金属实例。某些映像支持安全强化型虚拟机功能,这些功能提供了诸多安全功能,例如符合 UEFI 标准的固件、安全启动以及受 vTPM 保护的测量启动。在安全强化型虚拟机上,vTPM 和完整性监控默认处于启用状态。
创建计算实例时,您可以为其创建一个或多个磁盘。您也可以在创建实例后为其添加更多磁盘。在您创建实例后,Compute Engine 会自动将其启动。
创建计算实例时,您还可以添加多个网络接口。为了缓解互联网对实例造成的威胁风险,您可以在向实例添加网络接口时省略外部 IP 地址。在这种情况下,除非您配置了 Cloud NAT,否则只能从同一 VPC 网络或关联网络中的其他计算实例访问该实例。
如果您是首次创建计算实例,请参阅快速入门:使用 Linux 虚拟机或快速入门:使用 Windows Server 虚拟机。
如需了解更具体或更复杂的 Compute Engine 实例创建,请参阅以下资源:
- 创建使用用户管理的服务账号的虚拟机。
- 创建 Windows Server 实例。
- 创建 SQL Server 实例。
- 在单租户节点上创建实例。
- 使用自定义主机名创建虚拟机实例。
- 创建使用 gVNIC 网络接口的虚拟机实例。
- 创建并启动 Arm 虚拟机实例。
- 创建挂接了 GPU 的虚拟机实例。
- 使用高性能计算 (HPC) 映像创建虚拟机实例。
- 批量创建虚拟机。
- 使用附加的实例时间表创建虚拟机实例。
- 创建一个托管式实例组 (MIG)。
- 创建机密虚拟机实例。
- 预留实例以及使用预留实例。
- 配置具有较高带宽的虚拟机实例。
如果自带现有许可,请参阅自带许可。
准备工作
- 使用 Google Cloud CLI 或 REST 通过映像或磁盘创建计算实例时,每秒不能超过 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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Terraform
如需在本地开发环境中使用本页面上的 Terraform 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
如需了解详情,请参阅 Set up authentication for a local development environment。
C#
如需在本地开发环境中使用本页面上的 .NET 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
如需了解详情,请参阅 Set up authentication for a local development environment。 如需了解详情,请参阅身份验证文档中的为本地开发环境设置 ADC。
Go
如需在本地开发环境中使用本页面上的 Go 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
如需了解详情,请参阅 Set up authentication for a local development environment。 如需了解详情,请参阅身份验证文档中的为本地开发环境设置 ADC。
Java
如需在本地开发环境中使用本页面上的 Java 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
如需了解详情,请参阅 Set up authentication for a local development environment。 如需了解详情,请参阅身份验证文档中的为本地开发环境设置 ADC。
Node.js
如需在本地开发环境中使用本页面上的 Node.js 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
如需了解详情,请参阅 Set up authentication for a local development environment。 如需了解详情,请参阅身份验证文档中的为本地开发环境设置 ADC。
PHP
如需在本地开发环境中使用本页面上的 PHP 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
如需了解详情,请参阅 Set up authentication for a local development environment。
Python
如需在本地开发环境中使用本页面上的 Python 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
如需了解详情,请参阅 Set up authentication for a local development environment。 如需了解详情,请参阅身份验证文档中的为本地开发环境设置 ADC。
Ruby
如需在本地开发环境中使用本页面上的 Ruby 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭据设置应用默认凭据。
如需了解详情,请参阅 Set up authentication for a local development environment。 如需了解详情,请参阅身份验证文档中的为本地开发环境设置 ADC。
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.images.useReadOnly
权限 -
使用快照创建虚拟机:针对快照的
compute.snapshots.useReadOnly
权限 -
使用实例模板创建虚拟机:针对实例模板的
compute.instanceTemplates.useReadOnly
权限 -
为虚拟机分配旧版网络:针对项目的
compute.networks.use
权限 -
为虚拟机指定静态 IP 地址:针对项目的
compute.addresses.use
权限 -
使用旧版网络时为虚拟机分配外部 IP 地址:针对项目的
compute.networks.useExternalIp
权限 -
为虚拟机指定子网:针对项目或所选子网的
compute.subnetworks.use
权限 -
在使用 VPC 网络时为虚拟机分配外部 IP 地址:针对项目或所选子网的
compute.subnetworks.useExternalIp
权限 -
为虚拟机设置虚拟机实例元数据:针对项目的
compute.instances.setMetadata
权限 -
为虚拟机设置标记:针对虚拟机的
compute.instances.setTags
权限 -
为虚拟机设置标签:针对虚拟机的
compute.instances.setLabels
权限 -
为虚拟机设置要使用的服务账号:针对虚拟机的
compute.instances.setServiceAccount
权限 -
为虚拟机创建新磁盘:针对项目的
compute.disks.create
权限 -
以只读或读写模式挂接现有磁盘:针对磁盘的
compute.disks.use
权限 -
以只读模式挂接现有磁盘:针对磁盘的
compute.disks.useReadOnly
权限
通过映像创建虚拟机实例
本部分介绍如何使用公共操作系统映像或自定义映像创建虚拟机。虚拟机包含引导加载程序、启动文件系统和操作系统映像。
查看 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 会根据机器类型和可用性为您自动选择可用区。
为您的虚拟机选择机器配置。
在启动磁盘部分,点击更改,然后执行以下操作:
- 在公共映像标签页中,选择以下内容:
- 操作系统
- 操作系统版本
- 启动磁盘类型
- 启动磁盘大小
- 可选:对于高级配置选项,点击显示高级配置。
- 如需确认您的启动磁盘选项,请点击选择。
- 在公共映像标签页中,选择以下内容:
在防火墙部分中,如需允许 HTTP 或 HTTPS 流量流向虚拟机,请选择允许 HTTP 流量或允许 HTTPS 流量。选择其中一项后,Compute Engine 会向您的虚拟机添加一个网络标记,以将防火墙规则与该虚拟机相关联。然后,Compute Engine 会创建相应的入站流量防火墙规则,以允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。可选操作:如果您选择了支持安全强化型虚拟机功能的操作系统映像,则可以修改安全强化型虚拟机设置:如需修改安全强化型虚拟机设置,请展开高级选项部分中的安全部分,然后根据需要执行以下操作:
要创建并启动该虚拟机,请点击创建。
- 选择公共映像。请记下映像或映像系列的名称以及包含该映像的项目的名称。
使用
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 \ --machine-type=MACHINE_TYPE 请替换以下内容:
VM_NAME
:新虚拟机的名称ZONE
:要在其中创建实例的可用区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
替换为虚拟机名称。
如需创建虚拟机,您可以使用 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 or 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
映像系列中最新版本的操作系统映像创建虚拟机。
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 控制台中,转到虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例。
为您的实例指定名称。如需了解详情,请参阅资源命名惯例。
可选操作:更改此实例的可用区。如果您选择了没有任何可用的裸金属服务器的可用区,则系统会提示您选择其他可用区。
在机器配置部分中,执行以下操作之一:
- 点击通用标签页,然后选择 C3。
- 点击内存优化标签页,然后选择 X4。
在机器类型字段中,点击相应列表。在过滤条件框中,输入
metal
,然后选择一种可用类型。在可用性政策部分中,点击虚拟机预配模型高级设置以展开此部分。确保主机维护时的值为
Terminate instance
。在启动磁盘部分,点击更改,然后执行以下操作:
- 在公共映像标签页中,选择以下内容:
- 操作系统
- 操作系统版本
- 启动磁盘类型
- 启动磁盘大小
- 可选:对于 Hyperdisk Balanced 启动磁盘,为该磁盘选择预配的 IOPS 和预配的吞吐量设置。
- 可选:如需了解其他磁盘配置选项,请点击显示高级配置。
如需确认您的启动磁盘选项,请点击选择。
- 在公共映像标签页中,选择以下内容:
在防火墙部分中,如需允许 HTTP 或 HTTPS 流量流向裸金属实例,请选择允许 HTTP 流量或允许 HTTPS 流量。选择其中一个选项后,Compute Engine 会向您的实例添加一个网络标记,以将防火墙规则与该实例相关联。然后,Compute Engine 会创建相应的入站流量防火墙规则,以允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。展开高级选项部分,然后展开网络部分。确保网络接口卡设置为 IDPF。
如需创建并启动裸金属实例,请点击创建。
- 选择支持裸金属实例的公共映像。请记下映像或映像系列的名称以及包含该映像的项目的名称。
使用
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,image=projects/IMAGE_PROJECT /global/images/IMAGE ,provisioned-iops=IOPS ,provisioned-throughput=THROUGHPUT ,size=SIZE ,type=hyperdisk-balanced \ --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
:指定以下其中一项:
通过自定义映像创建虚拟机
自定义映像仅属于您的项目。如需使用自定义映像创建虚拟机,您必须先创建自定义映像(如果尚未创建)。
在 Google Cloud 控制台中,转到虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例。
为您的虚拟机指定名称。如需了解详情,请参阅资源命名惯例。
可选操作:更改此虚拟机的可用区。如果您选择任意,Google 会根据机器类型和可用性为您自动选择可用区。
为您的虚拟机选择机器配置。
在启动磁盘部分,点击更改,然后执行以下操作:
- 选择自定义映像标签。
- 要选择映像项目,请点击选择项目,然后执行以下操作:
- 选择包含该映像的项目。
- 点击打开。
- 在映像列表中,点击要导入的映像。
- 选择启动磁盘的类型和大小。
- 可选:对于高级配置选项,点击显示高级配置。
- 如需确认您的启动磁盘选项,请点击选择。
在防火墙部分中,如需允许 HTTP 或 HTTPS 流量流向虚拟机,请选择允许 HTTP 流量或允许 HTTPS 流量。
Google Cloud 控制台会向您的虚拟机中添加网络标记,并创建对应的入站防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。 网络标记可将防火墙规则与虚拟机相关联。如需了解详情,请参阅 Cloud 新一代防火墙文档中的防火墙规则概览。要创建并启动该虚拟机,请点击创建。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
运行
gcloud compute instances create
命令以使用自定义映像创建虚拟机:gcloud compute instances create
VM_NAME \ --image-projectIMAGE_PROJECT \ [--imageIMAGE | --image-familyIMAGE_FAMILY ] --subnetSUBNET 请替换以下内容:
VM_NAME
:虚拟机的名称IMAGE_PROJECT
:包含映像的项目 IDIMAGE
或IMAGE_FAMILY
:指定以下其中一项:IMAGE
:您的自定义映像的名称例如
--image=my-debian-image-v2
。IMAGE_FAMILY
:如果您在自定义映像系列中创建了自定义映像,请指定该自定义映像系列。此项表示通过自定义映像系列中最新的未弃用的操作系统映像操作系统版本创建虚拟机。例如,如果您指定
--image-family=my-debian-family
,则 Compute Engine 会通过自定义my-debian-family
映像系列中最新的操作系统映像创建虚拟机。
SUBNET
:如果子网和实例位于同一项目中,请将 SUBNET 替换为与该实例位于同一区域的子网的名称。
- 在 Google Cloud 控制台中,转到虚拟机实例页面。
- 点击创建实例。
- 指定所需的参数。
- 在页面顶部或底部,点击等效代码,然后点击 Terraform 标签页以查看 Terraform 代码。
试用此示例之前,请按照《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 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Python API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
在 API 中使用自定义映像创建虚拟机的过程与使用公开可用映像创建虚拟机的过程相同。
如需从自定义映像创建虚拟机,请使用 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
:包含自定义映像的项目的名称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
映像系列中最新版本的操作系统映像创建虚拟机。
NETWORK_NAME
:您要用于虚拟机的 VPC 网络。您可以指定default
来使用默认网络。ENABLE_SECURE_BOOT
(可选):如果您选择了支持安全强化型虚拟机功能的映像,则 Compute Engine 会默认启用虚拟可信平台模块 (vTPM) 和完整性监控。默认情况下,Compute Engine 不会启用安全启动。如果为
enableSecureBoot
指定true
,则 Compute Engine 会创建一个启用了所有三项安全强化型虚拟机功能的虚拟机。在 Compute Engine 启动您的虚拟机后,如需修改安全强化型虚拟机选项,您必须停止该虚拟机。
创建具有额外的非启动磁盘的虚拟机实例
创建虚拟机时,您还可以同时创建额外的非启动磁盘并将其挂接到虚拟机。
但是,如果您要创建多写入者模式下的磁盘,则无法在创建虚拟机的同时创建该磁盘。您必须先创建该磁盘,然后才能将其挂接到虚拟机。
在 Google Cloud 控制台中,转到虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例。
为您的虚拟机指定名称。如需了解详情,请参阅资源命名惯例。
可选操作:更改此虚拟机的可用区。如果您选择任意,Google 会根据机器类型和可用性为您自动选择可用区。
为您的虚拟机选择机器配置。
在启动磁盘部分,点击更改,然后执行以下操作:
- 在公共映像标签页中,选择以下内容:
- 操作系统
- 操作系统版本
- 启动磁盘类型
- 启动磁盘大小
- 可选:对于高级配置选项,点击显示高级配置。
- 如需确认您的启动磁盘选项,请点击选择。
- 在公共映像标签页中,选择以下内容:
在防火墙部分中,如需允许 HTTP 或 HTTPS 流量流向虚拟机,请选择允许 HTTP 流量或允许 HTTPS 流量。选择其中一项后,Compute Engine 会向您的虚拟机添加一个网络标记,以将防火墙规则与该虚拟机相关联。然后,Compute Engine 会创建相应的入站流量防火墙规则,以允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。如需将非启动磁盘添加到虚拟机,请展开高级选项部分,然后执行以下操作:
- 展开磁盘部分。
- 点击添加新磁盘,然后执行以下操作:
- 指定磁盘名称、类型、来源类型和大小。
- 在挂接设置部分中,选择磁盘的挂接模式和删除规则。如需详细了解如何添加新磁盘,请参阅将永久性磁盘添加到虚拟机。
- 点击保存。
要创建并启动该虚拟机,请点击创建。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
运行
gcloud compute instances create
命令以使用其他非启动磁盘创建虚拟机。创建虚拟机时,您最多可以添加 127 个非启动磁盘。为您创建的每个非启动磁盘指定
--create-disk
标志。如需通过公共映像或库存映像创建非启动磁盘,请使用
--create-disk
标志指定image
或image-family
和image-project
属性。如需创建空白磁盘,请勿包含这些属性。您可以选择为磁盘size
和type
添加属性。 添加属性replica-zones
以创建区域永久性磁盘。gcloud compute instances create
VM_NAME \ --zone=ZONE \ [--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 \ --create-disk device-name=DISK_NAME , \ replica-zones=^:^ZONE :REMOTE-ZONE ,boot=false请替换以下内容:
VM_NAME
:新虚拟机的名称ZONE
:要在其中创建虚拟机的可用区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
(可选):永久性磁盘类型的完整或部分网址例如
https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd
。如需查看可用磁盘类型,请运行gcloud compute disk-types list
命令。DISK_NAME
(可选):虚拟机创建后向访客操作系统显示的磁盘名称。REMOTE_ZONE
:磁盘应复制到的可用区
对于空白磁盘,请勿指定
DISK_IMAGE
、DISK_IMAGE_FAMILY
或DISK_IMAGE_PROJECT
参数。对于可用区磁盘,请勿指定磁盘属性
replica-zones
。
- 在 Google Cloud 控制台中,转到虚拟机实例页面。
- 点击创建实例。
- 指定所需的参数。
- 在页面顶部或底部,点击等效代码,然后点击 Terraform 标签页以查看 Terraform 代码。
试用此示例之前,请按照《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 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Python API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
通过对每个额外磁盘使用 initializeParams
属性,您可以在创建虚拟机时创建多达 127 个非启动磁盘。使用公共映像或私有映像创建额外磁盘。
如需添加空白磁盘,请定义不带 sourceImage
值的 initializeParams
条目。 添加磁盘属性 replicaZones
以创建区域永久性磁盘。
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 }, { "initializeParams":{ "diskSizeGb":"SIZE_GB ", "sourceImage":"projects/DISK_IMAGE_PROJECT /global/images/DISK_IMAGE ", "diskType":"DISK_TYPE " } }, { "initializeParams":{ "diskSizeGb":"SIZE_GB ", "diskType":"DISK_TYPE " }, }, { "boot": false, "deviceName":"DISK_NAME ", "initializeParams": { "diskType": "DISK_TYPE ", "replicaZones": [ "projects/PROJECT_ID /zones/ZONE ", "projects/PROJECT_ID /zones/REMOTE_ZONE " ] } } ], "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 or 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
映像系列中最新版本的操作系统映像创建虚拟机。
- 对于额外的磁盘,请替换以下内容:
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
:永久性磁盘类型的完整或部分网址。例如https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/diskTypes/pd-ssd
。DISK_NAME
:可选。创建虚拟机后向访客操作系统显示的磁盘名称。REMOTE_ZONE
:要将区域磁盘复制到的可用区
对于空白磁盘,请勿指定
sourceImage
属性。对于可用区磁盘,请勿指定replicaZones
属性。 NETWORK_NAME
:您要用于虚拟机的 VPC 网络。您可以指定default
来使用默认网络。ENABLE_SECURE_BOOT
(可选):如果您选择了支持安全强化型虚拟机功能的映像,则 Compute Engine 会默认启用虚拟可信平台模块 (vTPM) 和完整性监控。默认情况下,Compute Engine 不会启用安全启动。如果为
enableSecureBoot
指定true
,则 Compute Engine 会创建一个启用了所有三项安全强化型虚拟机功能的虚拟机。在 Compute Engine 启动您的虚拟机后,如需修改安全强化型虚拟机选项,您必须停止该虚拟机。
在使用磁盘之前,格式化并装载磁盘。
通过共享映像创建虚拟机实例
如果其他用户与您共享映像,您可以使用该映像创建虚拟机。
在 Google Cloud Console 中,转到创建实例页面。
- 为您的虚拟机指定名称。如需了解详情,请参阅资源命名惯例。
- 可选操作:更改此虚拟机的可用区。如果您选择任意,Google 会根据机器类型和可用性为您自动选择可用区。
- 为您的虚拟机选择机器配置。
- 在启动磁盘部分,点击更改以配置您的启动磁盘,然后执行以下操作:
- 选择自定义映像标签。
- 要选择映像项目,请点击选择项目,然后执行以下操作:
- 选择包含该映像的项目。
- 点击打开。
- 在映像列表中,点击要导入的映像。
- 选择启动磁盘的类型和大小。
- 如需确认您的启动磁盘选项,请点击选择。
如需允许 HTTP 或 HTTPS 流量流向虚拟机,请在防火墙部分中选择允许 HTTP 流量或允许 HTTPS 流量。
Google Cloud 控制台会向虚拟机添加网络标记,并创建相应的入站流量防火墙规则,以允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。网络标记可将防火墙规则与虚拟机相关联。 如需了解详情,请参阅 Cloud 新一代防火墙文档中的防火墙规则概览。- 如需启动并创建虚拟机,请点击创建。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
使用
gcloud compute instances create command
创建虚拟机,并使用--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
在 Terraform 中使用共享映像创建虚拟机的过程与使用公开提供的映像创建虚拟机的过程相同。
- 在 Google Cloud 控制台中,前往虚拟机实例页面。
- 点击创建实例。
- 指定所需的参数。
- 在页面顶部或底部,点击等效代码,然后点击 Terraform 标签页以查看 Terraform 代码。
在 API 中使用共享映像创建虚拟机的过程与使用公开可用映像创建虚拟机的过程相同。
如需通过共享映像创建虚拟机,请使用 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
:包含共享映像的项目的名称IMAGE
或IMAGE_FAMILY
:指定以下其中一项:IMAGE
:共享映像的名称。例如"sourceImage": "projects/finance-project-1234/global/images/finance-debian-image-v2"
。IMAGE_FAMILY
:如果共享映像是作为自定义映像系列的一部分创建的,请指定该自定义映像系列。此项表示通过自定义映像系列中最新的未弃用的操作系统映像创建虚拟机。例如,如果您指定
"sourceImage": "projects/finance-project-1234/global/images/family/finance-debian-family"
,则 Compute Engine 会通过finance-debian-family
映像系列中最新版本的操作系统映像创建虚拟机。
NETWORK_NAME
:您要用于虚拟机的 VPC 网络。您可以指定default
来使用默认网络。ENABLE_SECURE_BOOT
(可选):如果您选择了支持安全强化型虚拟机功能的映像,则 Compute Engine 会默认启用虚拟可信平台模块 (vTPM) 和完整性监控。默认情况下,Compute Engine 不会启用安全启动。如果为
enableSecureBoot
指定true
,则 Compute Engine 会创建一个启用了所有三项安全强化型虚拟机功能的虚拟机。在 Compute Engine 启动您的虚拟机后,如需修改安全强化型虚拟机选项,您必须停止该虚拟机。
从快照创建虚拟机
您可以通过以下方式从快照创建新虚拟机:
恢复虚拟机启动磁盘:如果您使用快照备份了虚拟机的启动磁盘,则可以使用该快照创建新的虚拟机。如需查看相关说明,请参阅将启动磁盘快照恢复到新虚拟机。
恢复非启动磁盘:如果您使用快照备份了非启动磁盘,则可以在创建虚拟机时将快照恢复到新的非启动磁盘。如需了解相关说明,请参阅使用基于快照的非启动磁盘创建虚拟机。
如需使用相同的启动磁盘快速创建多个虚拟机,请创建自定义映像,然后从该映像创建虚拟机,而不是使用快照创建虚拟机。
从容器映像创建虚拟机实例
如需在 Compute Engine 虚拟机上部署和启动容器,请在创建虚拟机时指定容器映像名称和可选配置参数。Compute Engine 使用最新版本的 Container-optimized OS 公共映像创建虚拟机,该映像安装了 Docker。然后,Compute Engine 会在虚拟机启动时启动容器。如需了解详情,请参阅在虚拟机上部署容器。
如需通过容器映像创建虚拟机,您必须使用 Google Cloud 控制台或 gcloud
。
在 Google Cloud 控制台中,转到虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例。
为您的虚拟机指定名称。如需了解详情,请参阅资源命名惯例。
在容器部分中,点击部署容器。
指定要使用的容器映像。 例如:
如需从 Cloud Launcher 中选择 NGINX 1.12 容器映像,请运行以下命令:
gcr.io/cloud-marketplace/google/nginx1:1.12
如需从 Docker Hub 部署 Apache 容器映像,请始终指定完整的 Docker 映像名称:
docker.io/httpd:2.4
可选操作:点击高级容器选项。如需了解详情,请参阅配置选项以便运行容器。
如需创建虚拟机、启动虚拟机和启动容器,请点击创建。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
运行
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 会为每个项目创建一个名为 default
的自动模式 VPC 网络。如需使用其他网络或者您在自动模式或自定义模式 VPC 网络中手动创建的子网,您必须在创建虚拟机时指定子网。
在子网中创建虚拟机时,请考虑以下规则:
- 如果您没有指定网络或子网,Compute Engine 会使用默认 VPC 网络和与虚拟机位于同一区域的自动子网。
- 如果您未指定网络,Compute Engine 会根据指定的子网推断网络。
- 如果您指定了网络,则必须指定子网,并且此子网必须属于同一个网络。否则,虚拟机创建会失败。
在 Google Cloud 控制台中,转到虚拟机实例页面。
选择您的项目并点击继续。
点击创建实例。
为您的虚拟机指定名称。如需了解详情,请参阅资源命名惯例。
可选操作:更改此虚拟机的可用区。如果您选择任意,Google 会根据机器类型和可用性为您自动选择可用区。
在防火墙部分中,如需允许 HTTP 或 HTTPS 流量流向虚拟机,请选择允许 HTTP 流量或允许 HTTPS 流量。
Google Cloud 控制台会向您的虚拟机中添加网络标记,并创建对应的入站防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。网络标记可将防火墙规则与虚拟机相关联。如需了解详情,请参阅 Cloud NGFW 文档中的防火墙规则概览。展开高级选项部分。
- 展开网络部分。
- 对于网络接口,请指定网络详细信息:
- 在网络字段中,选择包含您创建的子网的 VPC 网络。
- 在子网字段中,选择实例将使用的子网。
- 点击完成。
要创建并启动该虚拟机,请点击创建。
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
使用 Google Cloud CLI,按照从映像创建虚拟机或从快照创建虚拟机的相同说明操作,并将在运行
gcloud compute instances create
命令时添加--subnet=SUBNET_NAME
和--zone=ZONE
标志:gcloud compute instances create
VM_NAME \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --zone=ZONE 请替换以下内容:
VM_NAME
:虚拟机的名称NETWORK_NAME
(可选):网络的名称SUBNET_NAME
:子网的名称如需查看网络中的子网列表,请使用
gcloud compute networks subnets list
命令。ZONE
:在其中创建虚拟机的可用区,例如europe-west1-b
虚拟机的区域是根据可用区推断出来的。
如需在特定子网中创建虚拟机,您可以使用 google_compute_instance
资源。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
在 Terraform 中使用共享映像创建虚拟机的过程与使用公开提供的映像创建虚拟机的过程相同。
- 在 Google Cloud 控制台中,前往虚拟机实例页面。
- 点击创建实例。
- 指定所需的参数。
- 在页面顶部或底部,点击等效代码,然后点击 Terraform 标签页以查看 Terraform 代码。
试用此示例之前,请按照《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 快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Compute Engine Python API 参考文档。
如需向 Compute Engine 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
按照使用映像创建虚拟机或使用快照创建虚拟机的 API 说明执行操作,但在请求正文中指定 subnet
字段。如需添加空白磁盘,请勿添加来源映像。您可以选择指定 diskSizeGb
、diskType
和 labels
属性。
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 ", "subnetwork":"regions/REGION /subnetworks/SUBNET_NAME ", "accessConfigs":{ "name":"External NAT", "type":"ONE_TO_ONE_NAT" } } ], "shieldedInstanceConfig":{ "enableSecureBoot":"ENABLE_SECURE_BOOT " } }
请替换以下内容:
PROJECT_ID
:要在其中创建虚拟机的项目的 IDZONE
:要在其中创建虚拟机的可用区MACHINE_TYPE_ZONE
:包含新虚拟机将使用的机器类型的可用区MACHINE_TYPE
:新虚拟机的预定义或自定义机器类型VM_NAME
:新虚拟机的名称IMAGE_PROJECT
:包含映像的项目
例如,如果您将debian-10
指定为映像系列,请将debian-cloud
指定为映像项目。IMAGE or 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
映像系列中最新版本的操作系统映像创建虚拟机。
NETWORK_NAME
:您要用于虚拟机的 VPC 网络。您可以指定default
来使用默认网络。REGION
:指定子网所在的区域SUBNET_NAME
:子网的名称ENABLE_SECURE_BOOT
(可选):如果您选择了支持安全强化型虚拟机功能的映像,则 Compute Engine 会默认启用虚拟可信平台模块 (vTPM) 和完整性监控。默认情况下,Compute Engine 不会启用安全启动。如果为
enableSecureBoot
指定true
,则 Compute Engine 会创建一个启用了所有三项安全强化型虚拟机功能的虚拟机。在 Compute Engine 启动您的虚拟机后,如需修改安全强化型虚拟机选项,您必须停止该虚拟机。
创建为 Ops Agent 监控和日志记录配置的虚拟机
Ops Agent 会收集虚拟机的遥测数据,供您之后用于问题排查和性能调整。 您可以在创建虚拟机时或在现有虚拟机上安装 Ops Agent,如以下主题中所述:
使用 Google Cloud 控制台创建虚拟机时安装 Ops Agent:通过选中创建实例页面上的安装用于监控和日志记录的 Ops Agent 复选框来允许自动安装 Ops Agent。此选项会在功能受限模式下启用虚拟机管理器,并创建用于在虚拟机上安装 Ops Agent 的操作系统政策分配任务。如需了解详情,请参阅在创建虚拟机期间安装 Ops Agent。
在现有虚拟机上安装 Ops Agent:使用 Google Cloud 控制台、gcloud CLI 或自动化工具在一组虚拟机或单个虚拟机上安装 Ops Agent。如需查看相关说明,请参阅安装 Ops Agent。
问题排查
如需查找解决常见虚拟机创建错误的方法,请参阅排查虚拟机创建问题。
后续步骤
查看虚拟机的状态以了解其何时可用。
了解如何使用快照备份永久性磁盘。
了解如何创建非启动存储磁盘并将其挂接到您的虚拟机,以便在启动磁盘外单独存储您的数据。
了解如何连接到您的虚拟机。
了解如何将虚拟机横向扩容为一组虚拟机。
自行试用
如果您是 Google Cloud 新手,请创建一个账号来评估 Compute Engine 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
免费试用 Compute Engine