设置网络层级
本页面介绍如何为您的工作负载指定网络层级。在手动设置网络层级之前,请先查看 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 地址,如果实时迁移时间很长,则该地址会丢弃流量。
设置项目的默认网络层级
执行此任务所需的权限
如需执行此任务,您必须已获得以下权限或 IAM 角色。
权限
projects.setDefaultNetworkTier
,要求对项目拥有compute.projects.setDefaultNetworkTier
权限。
角色
roles/compute.admin
请按照以下说明来为项目定义默认的网络层级。此层级由项目中符合条件的新创建资源使用,除非您为资源本身指定了层级。更改项目的默认网络层级不会更改任何现有资源的层级,但如果您在创建网络时未指定网络层级,则它会更改任何新资源的网络层级新资源。
在 Google Cloud 控制台中,转到 Network Service Tiers 页面。
点击更改层级。
选择优质或标准,然后点击更改。
gcloud compute project-info update \ --default-network-tierNETWORK_TIER
将 NETWORK_TIER
替换为 PREMIUM
或 STANDARD
。
默认值为 PREMIUM
。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID /setNetworkTier { "networkTier": "STANDARD" }
将 PROJECT_ID
替换为您的项目 ID。
您可以使用 Terraform 资源为项目设置网络层级。此示例将层级设置为 STANDARD
。
您为资源指定的网络层级始终优先于您为项目定义的默认网络层级。例如,如果项目的默认网络层级为高级层级,您仍可以在标准层级创建实例或负载均衡器。
创建静态外部 IP 地址
执行此任务所需的权限
如需执行此任务,您必须已获得以下权限或 IAM 角色。
权限
compute.addresses.insert
,要求对项目拥有compute.addresses.create
权限,以及对子网拥有compute.subnetworks.use
权限。
角色
roles/compute.networkAdmin
创建静态地区外部 IP 地址时,您可以为该地址指定 PREMIUM
或 STANDARD
网络层级。如果您未指定网络层级,则地址将使用项目默认层级创建。
如需预留使用标准层级的静态地区外部 IP 地址,请执行以下操作。
gcloud compute addresses create my-standard-tier-ip-address \ --regionREGION \ --network-tier STANDARD
将 REGION
替换为您要创建地区 IP 地址的地区。
如需了解其他命令行标志,请参阅 gcloud compute
地址。
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 资源为区域外部 IP 地址设置网络层级。此示例将层级设置为 STANDARD
。
创建转发规则
执行此任务所需的权限
如需执行此任务,您必须已获得以下权限或 IAM 角色。
权限
forwardingRules.insert
,要求拥有compute.addresses.use
权限(如果要使用静态外部 IP 地址)以及对转发规则目标(实例、目标池、代理)拥有compute.*.use
权限。
角色
roles/compute.networkAdmin
创建新的转发规则时,您可以指定网络层级;可能的值包括 PREMIUM
(默认)和 STANDARD
。如果您未指定网络层级,则系统会使用项目默认层级创建转发规则:
- 如果您使用
--address
标志指定外部 IP 地址,则该 IP 地址必须位于您为转发规则指定的层级中。 - 如果您创建了转发规则,但未指定
--address
标志,Google Cloud 会分配相应层级的临时 IP 地址。
标准层级仅适用于地区转发规则。全球转发规则始终使用高级层级。
负载均衡器既可以使用高级层级,也可以使用标准层级,只需分别为每个层级使用一个转发规则即可。如果一个应用需要高级层级可以提供的低延时,而另一个应用(可能提供静态内容)面对较高延时也能应付自如并且可以使用标准层级,那么该模式非常有用。
如需在 Google Cloud 控制台中创建标准层级转发规则,您必须创建或更新现有负载均衡器。在多个地区中具有后端服务的负载平衡器不能使用标准层级。如需了解如何选择和创建负载均衡器,请参阅负载均衡文档。
在 Google Cloud 控制台中,转到负载均衡页面。
点击现有负载均衡器的名称,然后点击修改
。点击前端配置。
点击添加前端 IP 和端口。
在网络服务层级下方,点击标准。
根据需要填写其他字段。
点击完成,然后再点击更新。
gcloud compute forwarding-rules create my-standard-tier-regional-rule \ --load-balancing-scheme=SCHEME \ --network-tier STANDARD \ --address my-standard-tier-ip-address \ --regionREGION \ --portsPORTS \ [--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
转发规则。
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 资源为转发规则设置网络层级。此示例将指向目标实例的转发规则的层级设置为 STANDARD
。
虚拟机实例
您可以使用以下部分中的步骤在给定的网络服务层级创建虚拟机实例、向实例添加访问权限配置,或更新实例的网络层级。
创建虚拟机实例
执行此任务所需的权限
如需执行此任务,您必须已获得以下权限或 IAM 角色。
权限
instances.insert
,要求对项目拥有compute.instances.create
权限、对子网拥有compute.subnetworks.use
权限、对子网拥有compute.subnetworks.useExternalIp
权限,以及对静态外部 IP 地址拥有compute.address.use
权限(如果要指定一个静态外部 IP 地址)。
角色
roles/compute.instanceAdmin.v1
创建直接连接到互联网的实例时,您可以指定网络层级。可能的值包括 PREMIUM
(默认)和 STANDARD
。如果您未指定网络层级,则地址将使用项目默认层级创建。只有当实例通过区域 IPv4 地址直接与互联网通信时,网络层级才相关。对于负载均衡器发送的响应流量,转发规则的网络层级适用。
如果使用预留 IP 地址分配静态外部 IP 地址,则 IP 地址的网络层级必须与实例的网络层级一致。如果分配临时外部 IP 地址,那么实例的网络层级会用于分配对应的池中的 IP 地址。
在 Google Cloud 控制台中,转到虚拟机实例页面。
点击创建实例。
点击管理、安全、磁盘、网络、单独租用。
点击网络标签页。
在网络接口下方的默认网络接口上,点击修改
。在网络服务层级下方,选择标准。
根据需要填写其他字段。
点击创建。
gcloud compute instances create my-standard-tier-instance \ --network-tier STANDARD
如需了解其他命令行标志,请参阅 gcloud compute
实例。
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 资源为 Compute Engine 虚拟机设置网络层级。此示例将层级设置为 STANDARD
。
向实例中添加访问配置
执行此任务所需的权限
如需执行此任务,您必须已获得以下权限或 IAM 角色。
权限
compute.instances.addAccessConfig
,要求对子网拥有compute.subNetworks.useExternalIp
权限以及对静态外部 IP 地址拥有compute.address.use
权限(如果要指定一个静态外部 IP 地址)。
角色
roles/compute.instanceAdmin.v1
为实例创建访问配置(也就是说,为实例的网络接口分配临时或静态区域外部 IPv4 地址)时,您可以为实例的网络接口指定网络层级实例。无论您是指定现有的区域外部 IPv4 地址还是创建新地址,地址和实例的网络接口都必须使用匹配的 Network Service Tiers。可能的值包括 PREMIUM
和 STANDARD
。如果您没有指定网络层级,也未指定 IP 地址,则实例的网络接口和新的临时区域外部 IPv4 地址都将使用项目默认层级。如果您未指定网络层级,但指定了 IP 地址,则当 IP 地址的网络层级与项目默认层级不匹配时, Google Cloud 会返回错误。
gcloud compute instances add-access-configINSTANCE_NAME \ --network-interfaceINTERFACE_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 地址)
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。
更新实例的网络层级
执行此任务所需的权限
如需执行此任务,您必须已获得以下权限或 IAM 角色。
权限
compute.instances.updateAccessConfig
,要求对子网拥有compute.subNetworks.useExternalIp
权限以及对静态外部 IP 地址拥有compute.address.use
权限(如果要指定一个静态外部 IP 地址)。
角色
roles/compute.instanceAdmin.v1
您可以使用 update-access-config
命令更改实例的网络接口的网络层级。网络层级的可能值是 PREMIUM
和 STANDARD
。如果现有访问配置中已经为实例分配了区域外部 IPv4 地址,您必须先移除该外部 IP 地址,然后才能更改接口的网络层级。如需详细了解区域级外部 IPv4 地址的网络层级如何与实例网络接口的网络层级匹配,请参阅向实例添加访问配置。
在 Google Cloud 控制台中,转到虚拟机实例页面。
点击一个实例的名称。
点击修改
。在网络接口下方的默认网络接口上,点击修改
。在网络服务层级下方,选择标准。
点击保存。
gcloud compute instances update-access-configINSTANCE_NAME \ --network-interface nic0 \ --network-tier STANDARD
将 INSTANCE_NAME
替换为实例名称。
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
:实例的名称
创建使用标准层级的实例模板
执行此任务所需的权限
如需执行此任务,您必须已获得以下权限或 IAM 角色。
权限
instanceTemplates.insert
,要求对项目拥有compute.instanceTemplates.create
权限。
角色
roles/compute.instanceAdmin.v1
在创建实例模板期间配置网络层级时,请执行以下操作。
在 Google Cloud 控制台中,转到实例模板页面。
点击创建实例模板。
点击管理、安全、磁盘、网络、单独租用。
点击网络标签页。
在网络服务层级下方,选择标准。
根据需要填写其他字段。
点击创建。
gcloud compute instance-templates create my-standard-tier-instance-template \ --network-tier STANDARD
如需了解其他命令行标志,请参阅 gcloud compute
实例模板。
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 资源为 Compute Engine 实例模板设置网络层级。此示例将层级设置为 STANDARD
。
使用特定网络层级的 IP 地址设置 NAT
创建 Cloud NAT 网关时, Google Cloud 允许您分配标准层级和高级层级的 IP 地址。
如需了解详情,请参阅创建 Cloud NAT 网关。