使用 Network Service Tiers

本页面介绍如何为您的工作负载指定网络层级。在手动设置网络层级之前,请先查看 Network Service Tiers 概览,了解相关信息。

规格

只有符合条件的 Google Cloud 资源才支持 Network Service Tiers。标准层级仅在部分地区提供。优质层级可在所有 Google Cloud 地区提供。

外部 IP 地址池

要确定从哪个外部 IP 地址池中选择外部 IP 地址,您需要了解该地址是地区地址还是全球地址(以及如果是地区地址,该地址使用的网络层级)。一个地址池中的 IP 地址不能迁移到另一个地址池中。

在标准层级中,地区外部 IP 地址池专属于其各自的地区,而不是合格资源的类型。例如,使用标准层级(外部 HTTP(S) 负载平衡器、SSL 代理负载平衡器、TCP 代理负载平衡器和网络负载平衡器)的虚拟机 (VM) 实例和 Google Cloud 负载平衡器)均使用所选地区的标准层级池中的 IP 地址。

在优质层级中,外部 HTTP(S) 负载平衡器、SSL 代理负载平衡器和 TCP 代理负载平衡器使用全球外部 IP 地址,而网络负载平衡器和虚拟机实例使用地区外部 IP 地址。在每个地区中,优质层级的地区外部 IP 地址池不同于全球外部 IP 地址池。

未分配的 IP 地址

标准层级中未使用的地区外部 IP 地址的行为方式与优质层级中未使用的 IP 地址不同。

对于标准层级的 IP 地址,如果尚未分配给合格资源,则该地址会自动转为“托管”状态。IP 地址被托管后,负载平衡器会回复针对该 IP 地址发送的特定请求;例如,发送到托管标准层级 IP 地址的 HTTP 请求将发送到 Google 托管的 HTTP 404 (Not Found) 网页。处于托管状态的标准层级 IP 地址不会简单地丢弃其传入流量。此外,对于系统正在为其分配资源的标准层级 IP 地址,其行为也如同被托管一样。

对于已分配给虚拟机实例的标准层级外部 IP 地址,如果实时迁移时间超过 20 分钟,则该地址可能会在此期间转变为托管状态。而对于已分配给虚拟机的优质层级外部 IP 地址,如果实时迁移时间很长,则该地址会丢弃流量。

设置项目的默认网络层级

请按照以下说明来为项目定义默认的网络层级。此层级由项目中符合条件的新创建资源使用,除非您为资源本身指定了层级。更改项目的默认网络层级不会更改任何现有资源的层级。

控制台

  1. 在 Google Cloud Console 中,转到 Network Service Tiers 页面。

    转到 Network Service Tiers 页面

  2. 点击更改层级

  3. 选择优质标准,然后点击更改

gcloud

gcloud compute project-info update \
    --default-network-tier NETWORK_TIER

NETWORK_TIER 替换为 PREMIUMSTANDARD。 默认值为 PREMIUM

API

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setNetworkTier
{
  "networkTier": "STANDARD"
}

PROJECT_ID 替换为您的项目 ID。

您为资源指定的网络层级始终优先于您为项目定义的默认网络层级。例如,如果项目的默认网络层级为优质层级,您仍可以在标准层级创建实例或负载平衡器。

方案配置层级(点击放大)
层级配置级别(点击放大)

创建静态外部 IP 地址

创建静态地区外部 IP 地址时,您可以为该地址指定 PREMIUMSTANDARD 网络层级。

如需预留使用标准层级的静态地区外部 IP 地址,请执行以下操作。

控制台

  1. 在 Cloud Console 中,转到外部 IP 地址页面。

    转到“外部 IP 地址”页面

  2. 点击保留静态地址

  3. 类型下,选择地区,然后选择支持标准层级的地区

  4. 网络服务层级下方,选择标准

  5. 根据需要填写其他字段

  6. 点击预留

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:您的项目 ID
  • REGION:您要创建转发规则的地区

创建转发规则

创建新的转发规则时,您可以指定网络层级;可能的值包括 PREMIUM(默认)和 STANDARD

  • 如果您使用 --address 标志指定外部 IP 地址,则该 IP 地址必须位于您为转发规则指定的层级中。
  • 如果您创建了转发规则,但未指定 --address 标志,则 Google Cloud 会分配相应层级的临时 IP 地址。

标准层级仅适用于地区转发规则。全球转发规则始终使用优质层级。

负载平衡器既可以使用优质层级,也可以使用标准层级,只需分别为每个层级使用一个转发规则即可。如果一个应用需要优质层级可以提供的低延时,而另一个应用(可能提供静态内容)面对较高延时也能应付自如并且可以使用标准层级,那么该模式非常有用。

控制台

如需在 Cloud Console 中创建标准层级转发规则,您必须创建或更新现有负载平衡器。在多个地区中具有后端服务的负载平衡器不能使用标准层级。如需了解如何选择和创建负载平衡器,请参阅负载平衡文档。

  1. 在 Cloud Console 中,转到负载平衡页面。

    转到“负载平衡”页面

  2. 点击现有负载平衡器的名称,然后点击修改

  3. 点击前端配置

  4. 点击添加前端 IP 和端口

  5. 网络服务层级下方,点击标准

  6. 根据需要填写其他字段。

  7. 点击完成,然后再点击更新

gcloud

gcloud compute forwarding-rules create my-standard-tier-regional-rule \
     --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

替换以下内容:

  • REGION:您要创建转发规则的地区
  • TARGET_HTTP_PROXYTARGET_HTTPS_PROXYTARGET_SSL_PROXYTARGET_TCP_PROXYTARGET_POOLTARGET_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:您的项目 ID
  • REGION:您要创建转发规则的地区
  • TARGET_HTTP_PROXYTARGET_HTTPS_PROXYTARGET_SSL_PROXYTARGET_TCP_PROXYTARGET_POOLTARGET_INSTANCE:规则的相应目标,具体取决于您指定的目标标志

虚拟机实例

创建虚拟机实例

创建直接连接到互联网的实例时,您可以指定网络层级。可能的值包括 PREMIUM(默认)和 STANDARD。只有当实例直接与互联网通信时,网络层级才相关。如果实例只能通过负载平衡器访问互联网,则无需指定网络层级,因为连接使用针对负载平衡器转发规则指定的层级。

如果使用预留 IP 地址分配静态外部 IP 地址,则 IP 地址的网络层级必须与实例的网络层级一致。如果分配临时外部 IP 地址,那么实例的网络层级会用于分配对应的池中的 IP 地址。

控制台

  1. 在 Cloud Console 中,转到虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 点击创建实例

  3. 点击管理、安全、磁盘、网络、单独租用

  4. 点击网络标签页。

  5. 网络接口下方的默认网络接口上,点击修改

  6. 网络服务层级下方,选择标准

  7. 根据需要填写其他字段

  8. 点击创建

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:您的项目 ID
  • ZONE:您要创建实例的区域
  • REGION:资源的地区

    如需查看其他必需参数和可选参数的列表,请参阅 REST 资源:instances

向实例中添加访问配置

为实例创建访问配置(也就是说,为实例分配临时或静态外部 IP 地址)时,您还可以指定实例的层级。如果您指定现有 IP 地址,则该地址的层级必须与您为实例指定的层级相同。可能的值包括 PREMIUMSTANDARD

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; default=”PREMIUM”]]

替换以下内容:

  • 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:您的项目 ID
  • ZONE:实例的区域
  • INSTANCE_NAME:实例的名称

如需查看其他必需参数和可选参数的列表,请参阅 REST 资源:instances

更新实例的网络层级

您可以使用 update-access-config 更改实例的层级。网络层级的可能值是 PREMIUMSTANDARD。如果实例具有 IP 地址,或者要分配一个 IP 地址,则其层级必须与您使用此命令指定的层级相同。

控制台

  1. 在 Cloud Console 中,转到虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 点击一个实例的名称。

  3. 点击修改

  4. 网络接口下方的默认网络接口上,点击修改

  5. 网络服务层级下方,选择标准

  6. 点击保存

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:您的项目 ID
  • ZONE:实例的区域
  • INSTANCE_NAME:实例的名称

创建使用标准层级的实例模板

在创建实例模板期间配置网络层级时,请执行以下操作。

控制台

  1. 在 Cloud Console 中,转到实例模板页面。

    转到“实例模板”页面

  2. 点击创建实例模板

  3. 点击管理、安全、磁盘、网络、单独租用

  4. 点击网络标签页。

  5. 网络服务层级下方,选择标准

  6. 根据需要填写其他字段

  7. 点击创建

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:您的项目 ID
  • ZONE:实例模板的区域

如需查看其他必需参数和可选参数的列表,请参阅 REST 资源:instanceTemplates