设置网络层级
本页面介绍如何为您的工作负载指定网络层级。在手动设置网络层级之前,请先查看 Network Service Tiers 概览,了解相关信息。
规格
只有符合条件的 Google Cloud 资源才支持 Network Service Tiers。标准层级仅在部分地区提供。高级层级可在所有 Google Cloud 地区提供。
外部 IP 地址池
要确定从哪个外部 IP 地址池中选择外部 IP 地址,您需要了解该地址是地区地址还是全球地址(以及如果是地区地址,该地址使用的网络层级)。一个地址池中的 IP 地址不能迁移到另一个地址池中。
在标准层级中,地区外部 IP 地址池专属于其各自的地区,而不是合格资源的类型。例如,使用标准层级的虚拟机 (VM) 实例和 Google Cloud 负载均衡器(外部应用负载均衡器、外部代理网络负载均衡器和外部直通式网络负载均衡器)全都使用所选区域的标准层级池中的 IP 地址。
在高级层级中,外部应用负载均衡器和外部代理网络负载均衡器使用全球外部 IP 地址,而外部直通式网络负载均衡器和虚拟机实例使用区域级外部 IP 地址。在每个地区中,高级层级的地区外部 IP 地址池不同于全球外部 IP 地址池。
未分配的 IP 地址
标准层级中未使用的地区外部 IP 地址的行为方式与高级层级中未使用的 IP 地址不同。
对于标准层级的 IP 地址,如果尚未分配给合格资源,则该地址会自动转为“托管”状态。IP 地址被托管后,负载均衡器会回复针对该 IP 地址发送的特定请求;例如,发送到托管标准层级 IP 地址的 HTTP 请求将发送到 Google 托管的 HTTP 404
(Not Found) 网页。处于托管状态的标准层级 IP 地址不会简单地丢弃其传入流量。此外,对于系统正在为其分配资源的标准层级 IP 地址,其行为也如同被托管一样。
对于已分配给虚拟机实例的标准层级外部 IP 地址,如果实时迁移时间超过 20 分钟,则该地址可能会在此期间转变为托管状态。而对于已分配给虚拟机的高级层级外部 IP 地址,如果实时迁移时间很长,则该地址会丢弃流量。
设置项目的默认网络层级
请按照以下说明来为项目定义默认的网络层级。此层级由项目中符合条件的新创建资源使用,除非您为资源本身指定了层级。更改项目的默认网络层级不会更改任何现有资源的层级,但如果您在创建网络时未指定网络层级,则它会更改任何新资源的网络层级新资源。
控制台
在 Google Cloud 控制台中,转到 Network Service Tiers 页面。
点击更改层级。
选择优质或标准,然后点击更改。
gcloud
gcloud compute project-info update \ --default-network-tier NETWORK_TIER
将 NETWORK_TIER
替换为 PREMIUM
或 STANDARD
。
默认值为 PREMIUM
。
API
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setNetworkTier { "networkTier": "STANDARD" }
将 PROJECT_ID
替换为您的项目 ID。
Terraform
您可以使用 Terraform 资源为项目设置网络层级。此示例将层级设置为 STANDARD
。
您为资源指定的网络层级始终优先于您为项目定义的默认网络层级。例如,如果项目的默认网络层级为高级层级,您仍可以在标准层级创建实例或负载均衡器。
创建静态外部 IP 地址
创建静态地区外部 IP 地址时,您可以为该地址指定 PREMIUM
或 STANDARD
网络层级。如果您未指定网络层级,则地址将使用项目默认层级创建。
如需预留使用标准层级的静态地区外部 IP 地址,请执行以下操作。
控制台
gcloud
gcloud compute addresses create my-standard-tier-ip-address \ --region REGION \ --network-tier STANDARD
将 REGION
替换为您要创建地区 IP 地址的地区。
如需了解其他命令行标志,请参阅 gcloud compute
地址。
API
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses { "name": "my-standard-tier-ip-address", "networkTier": "STANDARD" }
替换以下内容:
PROJECT_ID
:您的项目 IDREGION
:您要创建转发规则的地区
Terraform
您可以使用 Terraform 资源为区域外部 IP 地址设置网络层级。此示例将层级设置为 STANDARD
。
创建转发规则
创建新的转发规则时,您可以指定网络层级;可能的值包括 PREMIUM
(默认)和 STANDARD
。如果您未指定网络层级,则系统会使用项目默认层级创建转发规则:
- 如果您使用
--address
标志指定外部 IP 地址,则该 IP 地址必须位于您为转发规则指定的层级中。 - 如果您创建了转发规则,但未指定
--address
标志,则 Google Cloud 会分配相应层级的临时 IP 地址。
标准层级仅适用于地区转发规则。全球转发规则始终使用高级层级。
负载均衡器既可以使用高级层级,也可以使用标准层级,只需分别为每个层级使用一个转发规则即可。如果一个应用需要高级层级可以提供的低延时,而另一个应用(可能提供静态内容)面对较高延时也能应付自如并且可以使用标准层级,那么该模式非常有用。
控制台
如需在 Google Cloud 控制台中创建标准层级转发规则,您必须创建或更新现有负载均衡器。在多个地区中具有后端服务的负载均衡器不能使用标准层级。如需了解如何选择和创建负载均衡器,请参阅负载均衡文档。
在 Google Cloud 控制台中,转到负载均衡页面。
点击现有负载均衡器的名称,然后点击修改
。点击前端配置。
点击添加前端 IP 和端口。
在网络服务层级下方,点击标准。
根据需要填写其他字段。
点击完成,然后再点击更新。
gcloud
gcloud compute forwarding-rules create my-standard-tier-regional-rule \ --load-balancing-scheme=SCHEME \ --network-tier STANDARD \ --address my-standard-tier-ip-address \ --region REGION \ --ports PORTS \ [--target-http-proxy=TARGET_HTTP_PROXY \ | --target-https-proxy=TARGET_HTTPS_PROXY \ | --target-ssl-proxy=TARGET_SSL_PROXY \ | --target-tcp-proxy=TARGET_TCP_PROXY \ | --target-pool=TARGET_POOL \ | --target-instance=TARGET_INSTANCE]
替换以下内容:
SCHEME
:负载均衡器的负载均衡方案REGION
:您要创建转发规则的地区TARGET_HTTP_PROXY
、TARGET_HTTPS_PROXY
、TARGET_SSL_PROXY
、TARGET_TCP_PROXY
、TARGET_POOL
或TARGET_INSTANCE
:规则的相应目标,具体取决于您指定的目标标志
如需了解其他命令行标志,请参阅 gcloud compute
转发规则。
API
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/forwardingRules { "name": "my-standard-tier-regional-rule", "networkTier": "STANDARD", "IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/my-standard-tier-ip-address", "IPProtocol": "tcp", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/targetPools/TARGET_POOL" }
替换以下内容:
PROJECT_ID
:您的项目 IDREGION
:您要创建转发规则的地区TARGET_HTTP_PROXY
、TARGET_HTTPS_PROXY
、TARGET_SSL_PROXY
、TARGET_TCP_PROXY
、TARGET_POOL
或TARGET_INSTANCE
:规则的相应目标,具体取决于您指定的目标标志
Terraform
您可以使用 Terraform 资源为转发规则设置网络层级。此示例将指向目标实例的转发规则的层级设置为 STANDARD
。
虚拟机实例
创建虚拟机实例
创建直接连接到互联网的实例时,您可以指定网络层级。可能的值包括 PREMIUM
(默认)和 STANDARD
。如果您未指定网络层级,则地址将使用项目默认层级创建。只有当实例通过区域 IPv4 地址直接与互联网通信时,网络层级才相关。对于负载均衡器发送的响应流量,转发规则的网络层级适用。
如果使用预留 IP 地址分配静态外部 IP 地址,则 IP 地址的网络层级必须与实例的网络层级一致。如果分配临时外部 IP 地址,那么实例的网络层级会用于分配对应的池中的 IP 地址。
控制台
在 Google Cloud 控制台中,转到虚拟机实例页面。
点击创建实例。
点击管理、安全、磁盘、网络、单独租用。
点击网络标签页。
在网络接口下方的默认网络接口上,点击修改
。在网络服务层级下方,选择标准。
根据需要填写其他字段。
点击创建。
gcloud
gcloud compute instances create my-standard-tier-instance \ --network-tier STANDARD
如需了解其他命令行标志,请参阅 gcloud compute
实例。
API
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "my-standard-tier-instance", "networkInterfaces":[ { "network": "global/networks/default", "name": "nic0", "accessConfigs": [ { "name": "External NAT", "type":"ONE_TO_ONE_NAT", "networkTier":"STANDARD" } ] } ], "IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/my-standard-tier-ip-address", ... other parameters }
替换以下内容:
PROJECT_ID
:您的项目 IDZONE
:您要创建实例的区域REGION
:资源的地区如需查看其他必需参数和可选参数的列表,请参阅 REST 资源:instances。
Terraform
您可以使用 Terraform 资源为 Compute Engine 虚拟机设置网络层级。此示例将层级设置为 STANDARD
。
向实例中添加访问配置
为实例创建访问配置(也就是说,为实例的网络接口分配临时或静态区域外部 IPv4 地址)时,您可以为实例的网络接口指定网络层级实例。无论您是指定现有的区域外部 IPv4 地址还是创建新地址,地址和实例的网络接口都必须使用匹配的 Network Service Tiers。可能的值包括 PREMIUM
和 STANDARD
。如果您没有指定网络层级,也未指定 IP 地址,则实例的网络接口和新的临时区域外部 IPv4 地址都将使用项目默认层级。如果您未指定网络层级,但指定了 IP 地址,则当 IP 地址的网络层级与项目默认层级不匹配时,Google Cloud 会返回错误。
gcloud
gcloud compute instances add-access-config INSTANCE_NAME \ --network-interface INTERFACE_NAME; default="nic0" \ --access-config-name=ACCESS_CONFIG_NAME; default="external-nat" \ --address=IP_ADDRESS \ --network-tier PREMIUM | STANDARD
替换以下内容:
INSTANCE_NAME
:实例的名称INTERFACE_NAME
:接口的名称;默认为nic0
(实例上默认接口的名称)ACCESS_CONFIG_NAME
:接口的访问配置的名称IP_ADDRESS
:IP 地址资源的网址(如果要指定 IP 地址)
API
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addAccessConfig?networkInterface=nic0 { "name": INSTANCE_NAME, "networkTier": "STANDARD", ... other parameters }
替换以下内容:
PROJECT_ID
:您的项目 IDZONE
:实例的区域INSTANCE_NAME
:实例的名称
如需查看其他必需参数和可选参数的列表,请参阅 REST 资源:instances。
更新实例的网络层级
您可以使用 update-access-config
命令更改实例的网络接口的网络层级。网络层级的可能值是 PREMIUM
和 STANDARD
。如果现有访问配置中已经为实例分配了区域外部 IPv4 地址,您必须先移除该外部 IP 地址,然后才能更改接口的网络层级。如需详细了解区域级外部 IPv4 地址的网络层级如何与实例网络接口的网络层级匹配,请参阅向实例添加访问配置。
控制台
在 Google Cloud 控制台中,转到虚拟机实例页面。
点击一个实例的名称。
点击修改
。在网络接口下方的默认网络接口上,点击修改
。在网络服务层级下方,选择标准。
点击保存。
gcloud
gcloud compute instances update-access-config INSTANCE_NAME \ --network-interface nic0 \ --network-tier STANDARD
将 INSTANCE_NAME
替换为实例名称。
API
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateAccessConfig?networkInterface=nic0 { "networkTier": "STANDARD", ... other parameters }
替换以下内容:
PROJECT_ID
:您的项目 IDZONE
:实例的区域INSTANCE_NAME
:实例的名称
创建使用标准层级的实例模板
在创建实例模板期间配置网络层级时,请执行以下操作。
控制台
在 Google Cloud 控制台中,转到实例模板页面。
点击创建实例模板。
点击管理、安全、磁盘、网络、单独租用。
点击网络标签页。
在网络服务层级下方,选择标准。
根据需要填写其他字段。
点击创建。
gcloud
gcloud compute instance-templates create my-standard-tier-instance-template \ --network-tier STANDARD
如需了解其他命令行标志,请参阅 gcloud compute
实例模板。
API
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceTemplates { "name": "my-standard-tier-instance-template", "networkInterfaces[].accessConfigs[].networkTier": "STANDARD", ... other parameters }
替换以下内容:
PROJECT_ID
:您的项目 IDZONE
:实例模板的区域
如需查看其他必需参数和可选参数的列表,请参阅 REST 资源:instanceTemplates。
Terraform
您可以使用 Terraform 资源为 Compute Engine 实例模板设置网络层级。此示例将层级设置为 STANDARD
。
使用特定网络层级的 IP 地址设置 NAT
创建 Cloud NAT 网关时,Google Cloud 允许您分配标准层级和高级层级的 IP 地址。
如需了解详情,请参阅使用特定网络层级的 IP 地址设置 NAT。