创建和使用内部范围

本文档介绍如何创建、使用和删除内部范围。

内部范围可让您分配内部 IP 地址块并指定这些块的使用方式,从而帮助您管理 Virtual Private Cloud (VPC) 网络中的统一 IP 地址空间。

准备工作

所需的角色

如需获得使用内部范围所需的权限,请让您的管理员为您授予项目的 Compute Network Admin (roles/compute.networkAdmin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

创建内部范围

在创建内部范围时,您至少需要指定两项内容:要分配的 IP 地址和要分配地址的网络。您可以创建具有精确 CIDR 范围的内部范围,也可以让 Google Cloud 自动选择范围。

为特定 CIDR 地址块创建内部范围

控制台

  1. 在 Google Cloud 控制台中,转到内部范围页面。

    转到“内部范围”

  2. 点击预留内部范围

  3. 输入名称

  4. (可选)输入说明

  5. 预留方法部分中,选择让我指定

  6. IP 范围字段中,以 CIDR 表示法输入内部范围的 IP 地址范围。

  7. 选择网络

  8. 选择对等互连类型。

  9. 选择使用类型。

  10. 点击预留

gcloud

使用 internal-ranges create 命令

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --ip-cidr-range=CIDR_RANGE \
    --network=NETWORK_NAME \
    --description="DESCRIPTION" \
    --peering=PEERING_TYPE \
    --usage=USAGE_TYPE

请替换以下内容:

  • RANGE_NAME:新内部范围的名称。
  • CIDR_RANGE:要分配给新内部范围的 CIDR 范围。
  • NETWORK_NAME:要在其中创建内部范围的网络的名称。
  • DESCRIPTION:内部范围的可选说明。
  • PEERING_TYPE:内部范围的对等互连类型。选项为 FOR_SELFFOR_PEERNOT_SHARED。默认值为 FOR_SELF
  • USAGE_TYPE:内部范围的使用类型。选项为 FOR_VPCEXTERNAL_TO_VPC。 默认值为 FOR_VPC

API

internalRanges.create 方法发出 POST 请求。

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "ipCidrRange": "CIDR_RANGE",
  "network": "NETWORK_NAME",
  "description": "DESCRIPTION",
  "peering": "PEERING_TYPE",
  "usage": "USAGE_TYPE"
}

请替换以下内容:

  • PROJECT_ID:内部范围的父项目的 ID。
  • RANGE_NAME:内部范围的名称。
  • CIDR_RANGE:要分配给内部范围的 CIDR 范围。
  • NETWORK_NAME:要在其中创建内部范围的网络的名称。
  • DESCRIPTION:新内部范围的可选说明。
  • PEERING_TYPE:内部范围的对等互连类型。选项为 FOR_SELFFOR_PEERNOT_SHARED。默认值为 FOR_SELF
  • USAGE_TYPE:内部范围的使用类型。选项为 FOR_VPCEXTERNAL_TO_VPC。 默认值为 FOR_VPC

使用自动分配的 CIDR 块创建内部范围

在创建具有自动分配的 CIDR 块的内部范围时,您需要指定前缀长度和一个或多个目标 CIDR 范围。Google Cloud 会考虑任何现有的 IP 地址分配,并在目标 CIDR 范围内分配所选大小的可用 IP 地址块。

控制台

  1. 在 Google Cloud 控制台中,转到内部范围页面。

    转到“内部范围”

  2. 点击预留内部范围

  3. 输入名称

  4. (可选)输入说明

  5. 预留方法部分中,选择自动

  6. 选择前缀长度

  7. 目标 IP 地址范围 1 字段中,输入要从中分配 IP 地址的 IP 地址范围。您可以点击添加目标 IP 地址范围并输入每个范围,以指定多个 IP 地址范围。

  8. 选择网络

  9. 选择对等互连类型。

  10. 选择使用类型。

  11. 点击预留

gcloud

使用 internal-ranges create 命令

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --network=NETWORK_NAME \
    --prefix-length=PREFIX_LENGTH \
    --target-cidr-range=TARGET_CIDR_RANGE \
    --peering=PEERING_TYPE \
    --usage=USAGE_TYPE \
    --description="DESCRIPTION"

请替换以下内容:

  • RANGE_NAME:内部范围的名称。
  • NETWORK_NAME:要在其中创建内部范围的网络的名称。
  • PREFIX_LENGTH:已分配的 IP 地址的前缀长度。
  • TARGET_CIDR_RANGE:要从中分配 IP 地址块的目标 CIDR 范围。您可以采用英文逗号分隔列表的形式输入多个 CIDR 范围。默认值为 10.0.0.0/8(对于自定义模式 VPC 网络)或 10.128.0.0/9(对于自动模式 VPC 网络)。
  • PEERING_TYPE:内部范围的对等互连类型。选项为 FOR_SELFFOR_PEERNOT_SHARED。默认值为 FOR_SELF
  • USAGE_TYPE:内部范围的使用类型。选项为 FOR_VPCEXTERNAL_TO_VPC。 默认值为 FOR_VPC
  • DESCRIPTION:新内部范围的可选说明。

API

internalRanges.create 方法发出 POST 请求。

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "prefixLength": PREFIX_LENGTH,
  "targetCidrRange": "TARGET_RANGE",
  "network": "NETWORK_NAME",
  "description": "DESCRIPTION",
  "peering": "PEERING_TYPE",
  "usage": "USAGE_TYPE"
}

请替换以下内容:

  • PROJECT_ID:内部范围的父项目的 ID。
  • RANGE_NAME:内部范围的名称。
  • PREFIX_LENGTH:范围的 IP 地址块的 CIDR 前缀长度。
  • TARGET_RANGE:要从中分配 IP 地址块的目标 CIDR 范围。您可以在 JSON 数组中指定多个 CIDR 范围。默认值为 10.0.0.0/8(对于自定义模式 VPC 网络)或 10.128.0.0/9(对于自动模式 VPC 网络)。
  • NETWORK_NAME:要在其中创建内部范围的网络的名称。
  • DESCRIPTION:新内部范围的可选说明。
  • PEERING_TYPE:内部范围的对等互连类型。选项为 FOR_SELFFOR_PEERNOT_SHARED。默认值为 FOR_SELF
  • USAGE_TYPE:内部范围的使用类型。选项为 FOR_VPCEXTERNAL_TO_VPC。 默认值为 FOR_VPC

预留内部范围

正确设置使用类型对等互连类型的内部范围,有助于 Google Cloud 确保按预期使用分配的 IP 地址。系统会根据您选择的使用情况和对等互连类型的设置预留内部范围以供使用。

为本地网络预留内部范围

您可以创建仅预留给本地使用的内部范围。将范围仅预留给本地使用时,如果新资源与预留的范围发发生冲突,Google Cloud 将不允许您在父 VPC 网络中创建子网或路由。

控制台

  1. 在 Google Cloud 控制台中,转到内部范围页面。

    转到“内部范围”

  2. 点击预留内部范围

  3. 输入名称

  4. (可选)输入说明

  5. 预留方法部分中,选择让我指定

  6. IP 范围字段中,以 CIDR 表示法输入内部范围的 IP 地址范围。

  7. 选择网络

  8. 点击对等互连,然后选择未共享

  9. 点击使用情况,然后选择VPC 外部

  10. 点击预留

gcloud

使用 internal-ranges create 命令

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --ip-cidr-range=CIDR_RANGE \
    --network=NETWORK_NAME \
    --description="reserved for on-premises" \
    --usage=EXTERNAL_TO_VPC \
    --peering=NOT_SHARED

请替换以下内容:

  • RANGE_NAME:要预留供本地使用的内部范围的名称。
  • CIDR_RANGE:要分配供本地使用的 CIDR 范围。
  • NETWORK_NAME:要在其中创建内部范围的网络的名称。

API

internalRanges.create 方法发出 POST 请求。

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "ipCidrRange": "CIDR_RANGE",
  "network": "NETWORK_NAME",
  "description": "reserved for on-premises use",
  "usage": "EXTERNAL_TO_VPC",
  "peering": "NOT_SHARED"
}

请替换以下内容:

  • PROJECT_ID:内部范围的父项目的 ID。
  • RANGE_NAME:新内部范围的名称。
  • CIDR_RANGE:范围的 IP 地址块的 CIDR 前缀长度。
  • NETWORK_NAME:要在其中创建内部范围的网络的名称。

为对等网络预留内部范围

您可以创建为对等 VPC 网络预留的内部范围。为对等 VPC 网络预留范围时,该范围的父 VPC 网络中没有资源可以使用该范围。只有对等项和对等 VPC 网络可以使用该范围。

控制台

  1. 在 Google Cloud 控制台中,转到内部范围页面。

    转到“内部范围”

  2. 点击预留内部范围

  3. 输入名称

  4. (可选)输入说明

  5. 预留方法部分中,选择让我指定

  6. IP 范围字段中,以 CIDR 表示法输入内部范围的 IP 地址范围。

  7. 选择网络

  8. 点击对等互连,然后选择用于对等方

  9. 点击使用情况,然后选择用于 VPC

  10. 点击预留

gcloud

使用 internal-ranges create 命令

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --target-cidr-range=TARGET_CIDR_RANGE \
    --prefix-length=PREFIX_LENGTH \
    --network=NETWORK_NAME \
    --peering=FOR_PEER \
    --usage=FOR_VPC

请替换以下内容:

  • RANGE_NAME:仅预留给对等网络的内部范围的名称。
  • TARGET_CIDR_RANGE:要从中分配 IP 地址块的目标 CIDR 范围。您可以在逗号分隔列表中指定多个 CIDR 范围。默认值为 10.0.0.0/8(对于自定义模式 VPC 网络)或 10.128.0.0/9(对于自动模式 VPC 网络)。
  • PREFIX_LENGTH:已分配的 IP 地址的前缀长度。
  • NETWORK_NAME:要在其中创建内部范围的网络的名称。

API

internalRanges.create 方法发出 POST 请求。

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "prefixLength": PREFIX_LENGTH,
  "targetCidrRange": "TARGET_CIDR_RANGE",
  "network": "NETWORK_NAME",
  "peering": "FOR_PEER",
  "usage": "FOR_VPC"
}

请替换以下内容:

  • PROJECT_ID:内部范围的父项目的 ID。
  • RANGE_NAME:内部范围的名称。
  • PREFIX_LENGTH:范围的 IP 地址块的 CIDR 前缀长度。
  • TARGET_CIDR_RANGE:要从中分配 IP 地址块的 CIDR 范围。您可以在 JSON 数组中指定多个 CIDR 范围。默认值为 10.0.0.0/8(对于自定义模式 VPC 网络)或 10.128.0.0/9(对于自动模式 VPC 网络)。
  • NETWORK_NAME:要在其中创建内部范围的网络的名称。

为本地 VPC 网络预留内部范围

您可以创建仅预留给本地 VPC 网络的内部范围。预留范围不会由对等 VPC 网络公布,对等 VPC 网络无法以对父 VPC 网络可见的方式使用内部范围。

控制台

  1. 在 Google Cloud 控制台中,转到内部范围页面。

    转到“内部范围”

  2. 点击预留内部范围

  3. 输入名称

  4. (可选)输入说明

  5. 预留方法部分中,选择让我指定

  6. IP 范围字段中,以 CIDR 表示法输入内部范围的 IP 地址范围。

  7. 选择网络

  8. 点击对等互连,然后选择未共享

  9. 点击使用情况,然后选择用于 VPC

  10. 点击预留

gcloud

使用 internal-ranges create 命令

gcloud network-connectivity internal-ranges create RANGE_NAME \
    --ip-cidr-range=CIDR_RANGE \
    --network=NETWORK_NAME \
    --peering=NOT_SHARED \
    --usage=FOR_VPC

请替换以下内容:

  • RANGE_NAME:要预留在本地 VPC 网络中使用的内部范围的名称。
  • CIDR_RANGE:范围的 IP 地址块的 CIDR 前缀长度。
  • NETWORK_NAME:要在其中创建内部范围的网络的名称。

API

internalRanges.create 方法发出 POST 请求。

POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME
{
  "ipCidrRange": "CIDR_RANGE",
  "network": "NETWORK_NAME",
  "peering": "NOT_SHARED",
  "usage": "FOR_VPC"
}

请替换以下内容:

  • PROJECT_ID:内部范围的父项目的 ID。
  • RANGE_NAME:新内部范围的名称。
  • CIDR_RANGE:范围的 IP 地址块的 CIDR 前缀长度。
  • NETWORK_NAME:要在其中创建内部范围的网络的名称。

创建具有内部范围的子网

您可以创建子网并使用内部范围来指定子网的内部 IP 地址范围。子网可以与整个内部范围关联,也可以仅与部分关联。子网的次要范围也可以与内部范围关联。

如需创建与内部范围关联的子网,请使用 Google Cloud CLI 或发送 API 请求。

创建使用整个内部范围的子网

如需创建使用整个内部范围作为其专用 IP 地址范围的子网,请按以下步骤操作。

gcloud

  1. 在您要创建新子网的网络中创建内部范围。将此内部范围内的使用类型设置为 FOR_VPC,并将对等互连类型设置为 FOR_SELF
  2. 使用 subnets create 命令

    gcloud beta compute networks subnets create SUBNET_NAME \
        --reserved-internal-range=networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME \
        --network=NETWORK_NAME \
        --region=REGION
    

    请替换以下内容:

    • SUBNET_NAME:子网的名称。
    • PROJECT_ID:要在其中创建子网的项目的 ID。
    • RANGE_NAME:要与子网关联的内部范围的名称。
    • NETWORK_NAME:要在其中创建子网的网络的名称。
    • REGION:要在其中创建子网的区域。

API

  1. 在您要创建新子网的网络中创建内部范围。将此内部范围内的使用类型设置为 FOR_VPC,并将对等互连类型设置为 FOR_SELF
  2. subnetworks.insert 方法发出 POST 请求。

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/subnetworks
    {
      "name" : "SUBNET_NAME",
      "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME",
      "network" : "NETWORK"
    }
    

    请替换以下内容:

    • PROJECT_ID:新子网的父项目的 ID。
    • REGION:要在其中创建子网的区域。
    • SUBNET_NAME:新子网的名称。
    • PROJECT_ID:要在其中创建子网的项目的 ID。
    • RANGE_NAME:要用于新子网的内部范围的名称。
    • NETWORK:要在其中创建子网的网络的名称。

创建使用内部范围部分的子网

如需创建使用内部范围的一部分作为其内部 IP 地址范围的子网,请按以下步骤操作。

gcloud

  1. 在您要创建新子网的网络中创建内部范围。将此内部范围内的使用类型设置为 FOR_VPC,并将对等互连类型设置为 FOR_SELF
  2. 使用 subnets create 命令

    gcloud beta compute networks subnets create SUBNET_NAME \
        --reserved-internal-range=networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME \
        --range=IP_RANGE \
        --network=NETWORK_NAME \
        --region=REGION
    

    请替换以下内容:

    • SUBNET_NAME:子网的名称。
    • PROJECT_ID:要在其中创建子网的项目的 ID。
    • RANGE_NAME:要与新子网关联的内部范围的名称。
    • IP_RANGE:属于内部范围的子集的 CIDR 范围。
    • NETWORK_NAME:要在其中创建子网的网络的名称。
    • REGION:要在其中创建子网的区域。

例如,以下两个命令会创建一个仅与预留 10.9.0.0/16 CIDR 地址块的内部范围的 10.9.1.0/24 部分相关联的子网。

gcloud network-connectivity internal-ranges create reserved-range-one \
    --ip-cidr-range=10.9.0.0/16 \
    --network=vpc-one
gcloud beta compute networks subnets create subnet-one \
    --reserved-internal-range=networkconnectivity.googleapis.com/projects/project-one/locations/global/internalRanges/reserved-range-one \
    --range=10.9.1.0/24 \
    --network=vpc-one \
    --region=us-central1

API

  1. 在您要创建新子网的网络中创建内部范围。将此内部范围内的使用类型设置为 FOR_VPC,并将对等互连类型设置为 FOR_SELF
  2. subnetworks.insert 方法发出 POST 请求。

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/subnetworks
    {
      "name" : "SUBNET_NAME",
      "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME",
      "range" : "IP_RANGE",
      "network" : "NETWORK"
    }
    

    请替换以下内容:

    • PROJECT_ID:新子网的父项目的 ID。
    • REGION:要在其中创建子网的区域。
    • SUBNET_NAME:子网的名称。
    • PROJECT_ID:要在其中创建子网的项目的 ID。
    • RANGE_NAME:要与新子网关联的内部范围的名称。
    • IP_RANGE:作为所选内部范围的子集的 CIDR 范围。
    • NETWORK:要在其中创建子网的网络的名称。

例如,以下两个请求会创建一个仅与包含 10.9.0.0/16 CIDR 地址块的内部范围的 10.9.1.0/24 部分相关联的子网。

POST https://networkconnectivity.googleapis.com/v1/projects/sample-project/locations/global/internalRanges?internalRangeId=reserved-for-subnet
{
  "targetCidrRange": "10.9.0.0/16",
  "network": "network-b"
}
POST https://compute.googleapis.com/compute/beta/projects/11223344/regions/us-central1/subnetworks
{
  "name" : "subnet-with-partial-range",
  "reservedInternalRange" : "networkconnectivity.googleapis.com/projects/project-one/locations/global/internalRanges/reserved-for-subnet",
  "range" : "10.9.1.0/24",
  "network" : "network-b"
}

创建具有内部范围的 GKE 集群

您可以使用内部范围为 Google Kubernetes Engine (GKE) VPC 原生集群分配 IP 地址。

如需创建具有内部范围的 VPC 原生集群,请使用 Google Cloud CLI 或发送 API 请求。

gcloud

  1. 使用 internal-ranges create 命令创建以下内部范围。

    gcloud network-connectivity internal-ranges create gke-nodes-1 \
        --prefix-length=NODE_PREFIX_LENGTH \
        --network=NETWORK
    
    • 对于 GKE Pod
    gcloud network-connectivity internal-ranges create gke-pods-1 \
        --prefix-length=POD_PREFIX_LENGTH \
        --network=NETWORK
    
    gcloud network-connectivity internal-ranges create gke-services-1 \
        --prefix-length=SERVICE_PREFIX_LENGTH \
        --network=NETWORK
    

    请替换以下内容:

    • NODE_PREFIX_LENGTH:与 GKE 节点关联的内部范围的前缀长度。
    • POD_PREFIX_LENGTH:与 GKE Pod 关联的内部范围的前缀长度。
    • SERVICE_PREFIX_LENGTH:与 GKE 服务关联的内部范围的前缀长度。
    • NETWORK:网络的名称。
  2. 使用 subnets create 命令创建您在上一步中创建的内部范围的子网。

    gcloud beta compute networks subnets create gke-subnet-1 \
        --network=NETWORK \
        --region=REGION \
        --reserved-internal-range="//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-nodes-1" \
        --secondary-range-with-reserved-internal-range="pods=//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-pods-1,services=//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-services-1"
    

    请替换以下内容:

    • NETWORK:网络的名称。
    • REGION:子网的区域。
    • PROJECT_ID:项目的 ID。
  3. 使用 clusters create 命令创建 VPC 原生集群。

    gcloud container clusters create CLUSTER_NAME \
        --network=NETWORK \
        --subnetwork=gke-subnet-1 \
        --zone=ZONE \
        --cluster-secondary-range-name=pods \
        --services-secondary-range-name=services \
        --enable-ip-alias
    

API

  1. internalRanges.create 方法发出 POST 请求,以创建以下内部范围。

    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-nodes-1
    {
      "network": "NETWORK",
      "prefixLength": NODE_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    
    • 对于 GKE Pod
    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-pods-1
    {
      "network": "NETWORK",
      "prefixLength": POD_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    
    POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=gke-services-1
    {
      "network": "NETWORK",
      "prefixLength": SERVICE_PREFIX_LENGTH,
      "peering": "FOR_SELF",
      "usage": "FOR_VPC"
    }
    

    请替换以下内容:

    • PROJECT_ID:项目的 ID。
    • NETWORK:网络的名称。
    • NODE_PREFIX_LENGTH:与 GKE 节点关联的内部范围的前缀长度。
    • POD_PREFIX_LENGTH:与 GKE Pod 关联的内部范围的前缀长度。
    • SERVICE_PREFIX_LENGTH:与 GKE 服务关联的内部范围的前缀长度。
  2. subnetworks.insert 方法发出 POST 请求,以创建具有您在上一步中创建的内部范围的子网。

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/subnetworks
    {
      "name": "gke-subnet-1",
      "network": "https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/networks/NETWORK",
      "privateIpGoogleAccess": false,
      "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-nodes-1",
      "secondaryIpRanges": [
        {
          "rangeName": "pods",
          "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-pods-1"
        },
        {
          "rangeName": "services",
          "reservedInternalRange": "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/internalRanges/gke-services-1"
        }
      ]
    }
    

    请替换以下内容:

    • PROJECT_ID:项目的 ID。
    • REGION:子网的区域。
    • NETWORK:子网的网络。
  3. clusters.create 方法发出 POST 请求,以创建 VPC 原生集群。

    POST https://container.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/clusters
    {
      "cluster": {
        "ipAllocationPolicy": {
          "clusterSecondaryRangeName": "pods",
          "createSubnetwork": false,
          "servicesSecondaryRangeName": "services",
          "useIpAliases": true
        },
        "name": "CLUSTER_NAME",
        "network": "NETWORK",
        "nodePools": [
          {
            "config": {
              "oauthScopes": [
                "https://www.googleapis.com/auth/devstorage.read_only",
                "https://www.googleapis.com/auth/logging.write",
                "https://www.googleapis.com/auth/monitoring",
                "https://www.googleapis.com/auth/service.management.readonly",
                "https://www.googleapis.com/auth/servicecontrol",
                "https://www.googleapis.com/auth/trace.append"
              ]
            },
            "initialNodeCount": 3,
            "management": {
              "autoRepair": true,
              "autoUpgrade": true
            },
            "name": "default-pool",
            "upgradeSettings": {
              "maxSurge": 1
            }
          }
        ],
        "subnetwork": "gke-subnet-1"
      },
      "parent": "projects/PROJECT_ID/locations/ZONE"
    }
    

    请替换以下内容:

    • PROJECT_ID:项目的 ID。
    • ZONE:集群的可用区。
    • CLUSTER_NAME:新集群的名称。
    • NETWORK:集群的网络。

列出内部范围

您可以列出内部范围以查看当前项目或特定 VPC 网络中的所有内部范围。如需列出 VPC 网络中的项目,请使用 Google Cloud CLI 或发送 API 请求。

控制台

gcloud

  • 如需查看当前项目中的所有内部范围,请使用 internal-ranges list 命令

    gcloud network-connectivity internal-ranges list
    
  • 若要查看 VPC 网络中的所有内部范围,请使用 internal-ranges list 命令并添加过滤条件。

    gcloud network-connectivity internal-ranges list \
        --filter=network:NETWORK_NAME \
        --project=PROJECT_ID
    

    请替换以下内容:

    • NETWORK_NAME:要在其中列出内部范围的 VPC 网络的名称。
    • PROJECT_ID:包含 VPC 网络的项目的 ID。

API

  • 如需查看项目中的所有内部范围,请向 internalRanges.list 方法发出 GET 请求。

    GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges
    

    PROJECT_ID 替换为要在其中查看内部范围的项目的 ID。

  • 如需查看 VPC 网络中的所有内部范围,请向 internalRanges.list 方法发出 GET 请求并添加过滤条件。

    GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges?filter=network=\"https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME\"
    

    NETWORK_NAME 替换为要在其中列出内部范围的 VPC 网络的名称。

描述内部范围

您可以描述内部范围以查看所选范围的详细信息,包括与内部范围关联的任何子网。

控制台

  1. 在 Google Cloud 控制台中,转到内部范围页面。

    转到“内部范围”

  2. 点击要描述的内部范围的名称

gcloud

使用 internal-ranges describe 命令

gcloud network-connectivity internal-ranges describe RANGE_NAME

RANGE_NAME 替换为要描述的内部范围的名称。

API

internalRanges.get 方法发出 GET 请求。

GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME

请替换以下内容:

  • PROJECT_ID:内部范围的父项目的 ID。
  • RANGE_NAME:要描述的内部范围的名称。

扩展内部范围

您可以扩展分配给内部范围资源的 IP 地址范围,但无法缩小范围。更新后的范围必须包含上一个范围。如果您想缩小分配的范围或修改其他元素,请删除内部范围并创建新的范围。

扩展内部范围的 IP CIDR 范围

如需通过更新内部范围的 IP CIDR 范围来扩展内部范围,请按以下步骤操作。

控制台

  1. 在 Google Cloud 控制台中,转到内部范围页面。

    转到“内部范围”

  2. 点击要更新的内部范围的名称

  3. 点击扩展范围

  4. 点击 IP 范围

  5. 输入新 IP 范围,该范围必须包含先前的范围。

  6. 点击展开

gcloud

使用 internal-ranges update 命令

gcloud network-connectivity internal-ranges update RANGE_NAME \
    --ip-cidr-range=CIDR_RANGE

请替换以下内容:

  • RANGE_NAME:内部范围的名称。
  • CIDR_RANGE:更新后的 CIDR 范围,必须包含之前的范围。

API

internalRanges.patch 方法发出 PATCH 请求。

PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=ipCidrRange
{
  "ipCidrRange": "CIDR_RANGE"
}

请替换以下内容:

  • PROJECT_ID:内部范围的父项目的 ID。
  • RANGE_NAME:内部范围的名称。
  • CIDR_RANGE:更新后的 CIDR 范围,必须包含之前的范围。

通过缩短内部范围的前缀长度来扩展内部范围

如需通过缩短内部范围的前缀长度来扩展内部范围,请按以下步骤操作。

控制台

  1. 在 Google Cloud 控制台中,转到内部范围页面。

    转到“内部范围”

  2. 点击要更新的内部范围的名称

  3. 点击扩展范围

  4. 点击前缀长度

  5. 前缀长度列表中,选择一个小于现有前缀长度的前缀长度。

  6. 点击展开

gcloud

使用 internal-ranges update 命令

gcloud network-connectivity internal-ranges update RANGE_NAME \
    --prefix-length=PREFIX_LENGTH

请替换以下内容:

  • RANGE_NAME:内部范围的名称。
  • PREFIX_LENGTH:更新后的前缀长度,必须小于之前的前缀长度。

API

internalRanges.patch 方法发出 PATCH 请求。

PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=prefixLength
{
  "prefixLength": PREFIX_LENGTH
}

请替换以下内容:

  • PROJECT_ID:内部范围的父项目的 ID。
  • RANGE_NAME:内部范围的名称。
  • PREFIX_LENGTH:更新后的前缀长度,必须小于之前的前缀长度。

删除内部范围

如果内部范围未与 Google Cloud 资源(例如子网)相关联,您可以将其删除。如需删除与 Google Cloud 资源关联的内部范围,请先删除关联的资源。

控制台

  1. 在 Google Cloud 控制台中,转到内部范围页面。

    转到“内部范围”

  2. 点击要删除的内部范围的名称

  3. 点击删除

  4. 请点击删除来确认操作。

gcloud

使用 internal-ranges delete 命令

gcloud network-connectivity internal-ranges delete RANGE_TO_DELETE

RANGE_TO_DELETE 替换为要删除的内部范围的名称。

API

internalRanges.delete 方法发出 DELETE 请求。

DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME

请替换以下内容:

  • PROJECT_ID:内部范围的父项目的 ID。
  • RANGE_NAME:内部范围的名称。