设置网络层级
本页面介绍如何为您的工作负载指定网络层级。在手动设置网络层级之前,请先查看 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 地址。
如需了解详情,请参阅创建 Cloud NAT 网关。