默认情况下,每个实例只有一个网络接口,该接口决定实例使用的 VPC 网络。您可以创建具有多个网络接口的实例,但每个接口都必须连接到不同的 VPC 网络。每个网络都必须至少有一个子网,该子网定义了可分配给实例的 IPv4 或 IPv6 地址范围。
如需了解详情,请参阅以下页面:
- 创建实例时分配的 IP 地址:IP 地址
- 创建双栈或仅 IPv6(预览版)实例:为实例和实例模板配置 IPv6
默认情况下, Google Cloud 会为每个项目创建一个名为 default
的自动模式 VPC 网络。如需使用其他网络,或者您在自动模式下或自定义模式 VPC 网络中手动创建的子网,则必须在创建实例并配置网络接口时指定子网。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 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.subnetworks.use
权限 -
在使用 VPC 网络时为实例分配外部 IP 地址:针对项目或所选子网的
compute.subnetworks.useExternalIp
权限
使用要求
在子网中创建实例时,请考虑以下规则:
- 如果您没有指定网络或子网,Compute Engine 会使用默认 VPC 网络和与实例位于同一区域的自动子网。
- 如果您未指定网络,Compute Engine 会根据指定的子网推断网络。
- 如果您指定了网络,则必须指定子网,并且此子网必须属于同一个网络。否则,实例创建将失败。
您必须先创建要使用的子网,然后再创建实例。如需了解详情,请参阅创建和管理 VPC 网络。
在特定子网中创建实例
如需在特定子网中创建实例,请按以下步骤操作:
在 Google Cloud 控制台中,前往创建实例页面。
如果出现提示,请选择您的项目并点击继续。
系统随即会显示创建实例页面,并显示机器配置窗格。
在机器配置窗格中,执行以下操作:
- 在名称字段中,为实例指定名称。如需了解详情,请参阅资源命名惯例。
可选:在可用区字段中,为此实例选择一个可用区。
默认选择为任意。如果您不更改此默认选择,Google 会根据机器类型和可用性为您自动选择可用区。
为您的实例选择机器系列。然后, Google Cloud 控制台会显示适用于您所选机器族的机器系列。您可以使用以下机器家族选项:
- 通用
- 计算优化
- 内存优化
- 存储优化
- GPU 数量
在系列列中,选择实例的机器系列。
如果您在上一步中选择了 GPU 作为机器系列,请选择所需的 GPU 类型。然后,系统会为所选 GPU 类型自动选择机器系列。
在机器类型部分中,为您的实例选择机器类型。
在导航菜单中,点击网络。在显示的网络窗格中,执行以下操作:
如需允许 HTTP 或 HTTPS 流量流向实例,请前往防火墙部分,然后选择允许 HTTP 流量或允许 HTTPS 流量。
Compute Engine 会向您的实例中添加网络标记,并创建对应的入站防火墙规则,该规则允许
tcp:80
(HTTP) 或tcp:443
(HTTPS) 上的所有传入流量。网络标记可将防火墙规则与实例相关联。如需了解详情,请参阅 Cloud 新一代防火墙文档中的防火墙规则概览。如需指定网络接口详细信息,请前往网络接口部分,然后点击添加网络接口。
在随即显示的新建网络接口部分中,执行以下操作:
- 在网络字段中,选择包含您创建的子网的 VPC 网络。
- 在子网列表中,选择实例要使用的子网。
- 在 IP 栈类型字段中,为网络接口选择 IP 栈类型。
- 如需确认网络接口详细信息,请点击完成。
可选:指定其他配置选项。如需了解详情,请参阅实例创建期间的配置选项。
要创建并启动该实例,请点击创建。
-
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
命令时添加本部分中所示的网络标志:gcloud compute instances create
INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --create-disk=boot=yes,image=projects/IMAGE_PROJECT /global/images/IMAGE ,size=SIZE \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --stack-type=STACK_TYPE \ --private-network-ip=INTERNAL_IPV4_ADDRESS \ --address=EXTERNAL_IPV4_ADDRESS \ --nic-type=GVNIC替换以下内容:
INSTANCE_NAME
:计算实例的名称ZONE
:实例创建所在的可用区,例如europe-west1-b
。实例的区域是根据地区推断出来的。MACHINE_TYPE
(可选):用于实例的机器类型。IMAGE_PROJECT
:可选:包含映像的映像项目IMAGE
:可选:指定以下其中一项:SIZE
:可选:新磁盘的大小。 值必须为整数。默认的测量单位为 GiB。NETWORK_NAME
(可选):网络的名称SUBNET_NAME
:要与实例搭配使用的子网的名称。如需查看网络中的子网列表,请使用
gcloud compute networks subnets list
命令。STACK_TYPE
(可选):网络接口的堆栈类型。STACK_TYPE
必须是IPV4_ONLY
、IPV4_IPV6
或IPV6_ONLY
(预览版)之一。默认值为IPV4_ONLY
。INTERNAL_IPV4_ADDRESS
:可选:您希望计算实例在目标子网中使用的内部 IPv4 地址。如果您不需要特定 IP 地址,请省略此标志。如需指定内部 IPv6 地址,请改用标志
--internal-ipv6-address
。EXTERNAL_IPV4_ADDRESS
:可选:要与网络接口搭配使用的静态外部 IPv4 地址。您之前必须已预留外部 IPv4 地址。执行下列其中一项操作:- 指定子网中的有效 IPv4 地址。
- 如果您不希望网络接口具有外部 IP 地址,请改用标志
--network-interface=no-address
。 - 如果您希望接口接收临时外部 IP 地址,请指定
address=''
。
如需指定外部 IPv6 地址,请改用标志
--external-ipv6-address
。
如需在特定子网中创建实例,您可以使用 google_compute_instance
资源。
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。
如需生成 Terraform 代码,您可以使用 Google Cloud 控制台中的等效代码组件。- 在 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 进行身份验证,请设置应用默认凭据。 如需了解详情,请参阅为本地开发环境设置身份验证。
按照 REST
说明通过公共映像或快照创建实例,但在请求正文中指定 subnet
字段。
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 ", "stackType":"STACK_TYPE " } ], "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
来使用默认网络。REGION
:指定子网所在的区域。此值必须与虚拟机位于同一区域。SUBNET_NAME
:要使用的子网的名称STACK_TYPE
(可选):网络接口的堆栈类型。 您可以指定IPV4_ONLY
、IPV4_IPV6
或IPV6_ONLY
(预览版)之一。默认值为IPV4_ONLY
。ENABLE_SECURE_BOOT
(可选):如果您选择了支持安全强化型虚拟机功能的映像,则 Compute Engine 会默认启用虚拟可信平台模块 (vTPM) 和完整性监控。默认情况下,Compute Engine 不会启用安全启动。如果为
enableSecureBoot
指定true
,则 Compute Engine 会创建一个启用了所有三项安全强化型虚拟机功能的虚拟机。在 Compute Engine 启动您的虚拟机后,如需修改安全强化型虚拟机选项,您必须停止该虚拟机。