创建和使用内部范围
本文档介绍如何创建、使用和删除内部范围。
内部范围可让您分配内部 IP 地址块并指定这些块的使用方式,从而帮助您管理 Virtual Private Cloud (VPC) 网络中的统一 IP 地址空间。
准备工作
- 如需使用本指南中的命令行示例,请安装或更新到最新版本的 Google Cloud CLI。
- 您必须在项目中启用 Network Connectivity API。
- 确定或创建 VPC 网络。
所需的角色
如需获得使用内部范围所需的权限,请让您的管理员为您授予项目的 Compute Network Admin (roles/compute.networkAdmin
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
预留内部范围
在创建内部范围时,您至少需要指定两项内容:要分配的 IP 地址和要分配地址的网络。您可以创建使用特定 CIDR 地址块的 IPv4 或 IPv6 内部范围,也可以让 Google Cloud 自动分配 IPv4 地址块。您无法创建使用自动分配的地址块的 IPv6 内部范围。
在请求自动分配的 IPv4 CIDR 地址块时,您需要提供前缀长度和一个或多个可选的目标 IPv4 CIDR 地址块。如果您未指定目标 CIDR 地址块, Google Cloud 会对自定义模式 VPC 网络使用 10.0.0.0/8
默认范围,对自动模式 VPC 网络使用 10.128.0.0/9
默认范围。 Google Cloud 会考虑现有的 IP 地址分配,并从目标 CIDR 地址块中为内部范围分配所选大小的可用 CIDR 地址块。您可以通过提供要排除的 CIDR 地址块可选列表来进一步优化此分配。Google Cloud 会将与任何排除的地址块都不重叠的 IP 地址块分配给内部范围。创建内部范围后,无法更新排除的地址块列表。
如需控制 Google Cloud 用于自动选择可用地址块的方法,您可以指定分配策略(预览版)。如果您未指定分配策略, Google Cloud会从目标 CIDR 地址块中随机分配可用的 IP 地址范围(如果未指定目标 CIDR 地址块,则为默认范围)。如需选择分配策略,请使用 Google Cloud CLI 或发送 API 请求。
IPv6 内部范围使您可以阻止向新的仅限 IPv6 的子网或双栈子网自动分配 IP 地址。IPv6 内部范围必须具有使用类型 EXTERNAL_TO_VPC
和对等互连类型 FOR_SELF
。您必须添加特定的 IPv6 CIDR 地址块,并且 overlaps
字段必须为空或未指定。
如需阻止用户更新内部范围的 CIDR 地址块或重叠配置,您可以创建不可变的内部范围。不可变的内部范围会阻止对这些属性进行更改,但您仍然可以更新说明。创建内部范围后,便无法更改不变性。
默认情况下, Google Cloud 会阻止创建在同一 VPC 网络中共用重叠 IP 地址的内部范围或资源。您可以配置 IPv4 内部范围,以允许与现有子网、新路由和现有路由或两者的地址范围重叠。除非将资源与内部范围明确关联(对于子网)或配置重叠(对于路由),否则您无法创建使用现有内部范围内的 IP 地址的 Google Cloud 资源。
控制台
在 Google Cloud 控制台中,前往内部范围页面。
点击预留内部范围。
输入名称。
可选:输入说明。
选择 IP 版本。
如果您选择 IPv4,请执行以下操作:
- 指定内部范围是否不可变。
选择预留方法。
如果您选择自动,请执行以下操作:
- 选择前缀长度。
- 点击添加目标 IP 地址范围,然后输入目标 IP 地址范围。您可以添加多个目标范围。
可选:点击添加要排除的范围,然后输入要排除的 IP 地址范围。您可以添加多个排除的范围。
Google Cloud 会将与任何排除的范围都不重叠的 IP 地址块分配给内部范围。创建内部范围后,便无法更新此列表。
如果您选择让我指定,请以 CIDR 表示法输入 IP 范围。
请选择一个网络。
选择对等互连类型。
选择使用类型。
可选:在允许重叠部分,指定内部范围是否可以与现有子网、新路由和现有路由或两者兼容。
如果您选择 IPv6,请执行以下操作:
- 指定内部范围是否不可变。
- 选择让我指定,然后输入 IPv6 或 IPv4 映射的 IPv6 CIDR 地址块。
- 请选择一个网络。
- 点击对等互连,然后选择用于自身。
- 点击使用情况,然后选择VPC 外部。
点击预留。
gcloud
如需为特定 IPv4 或 IPv6 CIDR 地址块预留内部范围,请使用
gcloud network-connectivity 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
:要分配给新内部范围的 IPv4、IPv6 或 IPv4 映射的 IPv6 CIDR 地址块- 如果您指定 IPv6 地址块,则必须执行以下操作:
- 将
peering
类型设置为FOR_SELF
。 - 将
usage
类型设置为EXTERNAL_TO_VPC
。
- 将
- 如果您指定 IPv6 地址块,则必须执行以下操作:
NETWORK_NAME
:要在其中创建内部范围的网络的名称DESCRIPTION
:内部范围的可选说明PEERING_TYPE
:内部范围的对等互连类型选项为
FOR_SELF
、FOR_PEER
和NOT_SHARED
。默认为FOR_SELF
。USAGE_TYPE
:内部范围的使用类型选项为
FOR_VPC
、EXTERNAL_TO_VPC
和FOR_MIGRATION
。默认值为FOR_VPC
。- 如果您使用
FOR_MIGRATION
选项,则还必须指定来源子网和目标子网。如需查看示例,请参阅为子网迁移预留 IPv4 内部范围。
- 如果您使用
如需预留使用自动分配的 CIDR 地址块的 IPv4 内部范围,请使用以下命令:
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" \ --allocation-strategy=ALLOCATION_STRATEGY [--first-available-ranges-lookup-size=FIRST_N_LOOKUP_SIZE]
替换以下内容:
PREFIX_LENGTH
:分配的 IP 地址的前缀长度TARGET_CIDR_RANGE
:要从中分配 IPv4 地址块的目标 CIDR 地址块您可以采用英文逗号分隔列表的形式输入多个 CIDR 地址块。默认值为
10.0.0.0/8
(对于自定义模式 VPC 网络)或10.128.0.0/9
(对于自动模式 VPC 网络)。ALLOCATION_STRATEGY
:您要为此内部范围的 CIDR 地址块使用的分配策略选项为
RANDOM
、FIRST_AVAILABLE
、RANDOM_FIRST_N_AVAILABLE
和FIRST_SMALLEST_FITTING
。默认值为RANDOM
。FIRST_N_LOOKUP_SIZE
:(适用于RANDOM_FIRST_N_AVAILABLE
分配策略)在随机确定一个 CIDR 地址块之前要查找的可用 CIDR 地址块的数量仅当您选择
RANDOM_FIRST_N_AVAILABLE
分配策略时,才添加此标志。
如果您想在预留使用自动分配的 CIDR 地址块的 IPv4 内部范围时排除 IP 地址范围,请使用以下命令:
gcloud alpha 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" \ --exclude-cidr-ranges=EXCLUDED_RANGES
将
EXCLUDED_RANGES
替换为要排除的一个或多个 IPv4 CIDR 地址块的英文逗号分隔列表。 Google Cloud 会将与任何排除的地址块都不重叠的 IP 地址块分配给内部范围。创建内部范围后,便无法更新此列表。如需预留存在重叠的 IPv4 内部范围,请使用以下命令:
gcloud network-connectivity internal-ranges create RANGE_NAME \ --ip-cidr-range=CIDR_RANGE \ --network=NETWORK_NAME \ --description="DESCRIPTION" \ --peering=PEERING_TYPE \ --usage=USAGE_TYPE \ --overlaps=OVERLAPS
将
OVERLAPS
替换为允许的重叠类型。选项为OVERLAP_EXISTING_SUBNET_RANGE
和OVERLAP_ROUTE_RANGE
。您可以在英文逗号分隔列表中包含这两个值。如需预留不可变的内部范围,请使用以下命令:
gcloud network-connectivity internal-ranges create RANGE_NAME \ --ip-cidr-range=CIDR_RANGE \ --network=NETWORK_NAME \ --description="DESCRIPTION" \ --peering=PEERING_TYPE \ --usage=USAGE_TYPE \ --immutable
API
如需为特定 IPv4 或 IPv6 CIDR 地址块预留内部范围,请向
projects.locations.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
:内部范围的父级项目的 IDRANGE_NAME
:内部范围的名称CIDR_RANGE
:要分配给内部范围的 IPv4、IPv6 或 IPv4 映射的 IPv6 CIDR 地址块- 如果您指定 IPv6 地址块,则必须执行以下操作:
- 将
peering
类型设置为FOR_SELF
。 - 将
usage
类型设置为EXTERNAL_TO_VPC
。
- 将
- 如果您指定 IPv6 地址块,则必须执行以下操作:
NETWORK_NAME
:要在其中创建内部范围的网络的名称DESCRIPTION
:新内部范围的可选说明PEERING_TYPE
:内部范围的对等互连类型选项为
FOR_SELF
、FOR_PEER
和NOT_SHARED
。默认为FOR_SELF
。USAGE_TYPE
:内部范围的使用类型选项为
FOR_VPC
、EXTERNAL_TO_VPC
和FOR_MIGRATION
。默认值为FOR_VPC
。- 如果您使用
FOR_MIGRATION
选项,则还必须指定来源子网和目标子网。如需查看示例,请参阅为子网迁移预留 IPv4 内部范围。
- 如果您使用
如需预留使用自动分配的 CIDR 地址块的 IPv4 内部范围,请发出以下请求:
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", "description": "DESCRIPTION", "peering": "PEERING_TYPE", "usage": "USAGE_TYPE", "allocationOptions": { "allocationStrategy": "ALLOCATION_STRATEGY", ["firstAvailableRangesLookupSize": FIRST_N_LOOKUP_SIZE] } }
替换以下内容:
PREFIX_LENGTH
:范围的 IP 地址块的 CIDR 前缀长度TARGET_CIDR_RANGE
:要从中分配 IPv4 地址块的目标 CIDR 地址块您可以在 JSON 数组中指定多个 CIDR 范围。默认值为
10.0.0.0/8
(对于自定义模式 VPC 网络)或10.128.0.0/9
(对于自动模式 VPC 网络)。ALLOCATION_STRATEGY
:您要为此内部范围的 CIDR 地址块使用的分配策略选项为
RANDOM
、FIRST_AVAILABLE
、RANDOM_FIRST_N_AVAILABLE
和FIRST_SMALLEST_FITTING
。默认值为RANDOM
。FIRST_N_LOOKUP_SIZE
:(适用于RANDOM_FIRST_N_AVAILABLE
分配策略)在随机确定一个 CIDR 地址块之前要查找的可用 CIDR 地址块的数量仅当您选择
RANDOM_FIRST_N_AVAILABLE
分配策略时,才添加此字段。
如果您想在预留使用自动分配的 CIDR 地址块的 IPv4 内部范围时排除 IP 地址范围,请发出以下请求:
POST https://networkconnectivity.googleapis.com/v1alpha1/projects/PROJECT_ID/locations/global/internalRanges?internalRangeId=RANGE_NAME { "prefixLength": PREFIX_LENGTH, "targetCidrRange": "TARGET_CIDR_RANGE", "network": "NETWORK_NAME", "description": "DESCRIPTION", "peering": "PEERING_TYPE", "usage": "USAGE_TYPE", "excludeCidrRanges": ["EXCLUDED_RANGE_1","EXCLUDED_RANGE_2"] }
将
EXCLUDED_RANGE_1
和EXCLUDED_RANGE_2
替换为要排除的一个或多个 IPv4 CIDR 地址块。 Google Cloud 会将与任何排除的地址块都不重叠的 IP 地址块分配给内部范围。创建内部范围后,便无法更新此列表。如需预留存在重叠的 IPv4 内部范围,请发出以下请求:
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", "overlaps": ["OVERLAPS"] }
将
OVERLAPS
替换为允许的重叠类型。选项为OVERLAP_EXISTING_SUBNET_RANGE
和OVERLAP_ROUTE_RANGE
。您可以在 JSON 数组中包含这两个值。如需预留不可变的内部范围,请发出以下请求:
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", "immutable": true }
为子网迁移预留 IPv4 内部范围
您可以使用内部范围将 CIDR 范围从一个子网迁移到另一个子网。如需了解详情,请参阅迁移 IPv4 子网范围。
gcloud
使用 gcloud network-connectivity internal-ranges create
命令。
gcloud network-connectivity internal-ranges create RANGE_NAME \ --ip-cidr-range=CIDR_RANGE \ --network=NETWORK_NAME \ --peering=FOR_SELF \ --usage=FOR_MIGRATION \ --migration-source=SOURCE_SUBNET \ --migration-target=TARGET_SUBNET
替换以下内容:
RANGE_NAME
:要创建的内部范围的名称CIDR_RANGE
:要迁移的子网的 IPv4 CIDR 地址块NETWORK_NAME
:要在其中创建内部范围的网络的名称SOURCE_SUBNET
:来源子网的 URITARGET_SUBNET
:目标子网的 URI
API
向 projects.locations.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": "FOR_SELF", "usage": "FOR_MIGRATION", "migration": { "source": "SOURCE_SUBNET", "target": "TARGET_SUBNET" } }
替换以下内容:
PROJECT_ID
:内部范围的父级项目的 IDRANGE_NAME
:新内部范围的名称CIDR_RANGE
:要迁移的子网的 IPv4 CIDR 地址块NETWORK_NAME
:要在其中创建内部范围的网络的名称SOURCE_SUBNET
:来源子网的 URITARGET_SUBNET
:目标子网的 URI
创建具有 IPv4 内部范围的子网
您可以创建仅限 IPv4 的子网或双栈子网,并使用内部范围来指定子网的主要内部 IPv4 地址范围。子网可以与整个内部范围关联,也可以仅与部分范围关联。子网的次要范围也可以与内部范围关联。
控制台
在您要创建新子网的网络中预留 IPv4 内部范围。将此内部范围内的使用类型设置为
For VPC
,并将对等互连类型设置为For self
。在 Google Cloud 控制台中,前往 VPC 网络页面。
点击某个 VPC 网络的名称以显示其 VPC 网络详情页面。
点击添加子网。在显示的对话框中执行以下操作:
- 提供名称。
- 选择区域。
- 选中与内部范围相关联复选框。
- 对预留的内部范围进行选择。
- 可选:如需将子网与内部范围的一部分关联,请输入 IPv4 范围。
- 点击添加。
gcloud
- 在您要创建新子网的网络中预留 IPv4 内部范围。将此内部范围内的使用类型设置为
FOR_VPC
,并将对等互连类型设置为FOR_SELF
。 执行下列其中一项操作:
如需创建与整个内部范围关联的子网,请使用
gcloud compute networks subnets create
命令。gcloud 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
:要在其中创建子网的项目的 IDRANGE_NAME
:要与子网关联的内部范围的名称NETWORK_NAME
:要在其中创建子网的网络的名称REGION
:要在其中创建子网的区域
如需创建与内部范围的一部分关联的子网,请使用以下命令:
gcloud 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
将
IP_RANGE
替换为作为内部范围的子集的 IPv4 CIDR 范围。
例如,以下命令会创建一个仅与预留 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 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
- 在您要创建新子网的网络中预留 IPv4 内部范围。将此内部范围内的使用类型设置为
FOR_VPC
,并将对等互连类型设置为FOR_SELF
。 执行下列其中一项操作:
如需创建与整个内部范围关联的子网,请向
subnetworks.insert
方法发出POST
请求。POST https://compute.googleapis.com/compute/v1/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
:新子网的父级项目的 IDREGION
:要在其中创建子网的区域SUBNET_NAME
:新子网的名称PROJECT_ID
:要在其中创建子网的项目的 IDRANGE_NAME
:要用于新子网的内部范围的名称NETWORK
:要在其中创建子网的网络的名称
如需创建与内部范围的一部分关联的子网,请发出以下请求:
POST https://compute.googleapis.com/compute/v1/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" }
将
IP_RANGE
替换为作为内部范围的子集的 IPv4 CIDR 范围。
例如,以下请求会创建一个仅与包含 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/v1/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" }
创建具有 IPv4 内部范围的 GKE 集群
您可以使用 IPv4 内部范围为 Google Kubernetes Engine (GKE) VPC 原生集群分配 IP 地址。
gcloud
使用
gcloud network-connectivity internal-ranges create
命令创建以下 IPv4 内部范围。- 对于 GKE nodes:
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
- 对于 GKE 服务:
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
:网络的名称
使用
gcloud compute networks subnets create
命令创建您在上一步中创建的内部范围的子网。gcloud 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"
替换以下内容:
REGION
:子网的区域PROJECT_ID
:项目的 ID
使用
gcloud container 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
将
ZONE
替换为集群的可用区。
API
向
projects.locations.internalRanges.create
方法发出POST
请求,以创建以下内部范围。- 对于 GKE nodes:
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" }
- 对于 GKE 服务:
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
:项目的 IDNETWORK
:网络的名称NODE_PREFIX_LENGTH
:与 GKE 节点关联的内部范围的前缀长度POD_PREFIX_LENGTH
:与 GKE Pod 关联的内部范围的前缀长度SERVICE_PREFIX_LENGTH
:与 GKE 服务关联的内部范围的前缀长度
向
subnetworks.insert
方法发出POST
请求,以创建具有您在上一步中创建的内部范围的子网。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks { "name": "gke-subnet-1", "network": "https://compute.googleapis.com/compute/v1/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
:项目的 IDREGION
:子网的区域NETWORK
:子网的网络
向
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
:项目的 IDZONE
:集群的可用区CLUSTER_NAME
:新集群的名称NETWORK
:集群的网络
列出内部范围
您可以列出内部范围以查看当前项目或特定 VPC 网络中的所有内部范围。如需列出 VPC 网络中的项目,请使用 Google Cloud CLI 或发送 API 请求。
控制台
在 Google Cloud 控制台中,前往内部范围页面。
gcloud
如需查看当前项目中的所有内部范围,请使用
gcloud network-connectivity 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
如需查看项目中的所有内部范围,请向
projects.locations.internalRanges.list
方法发出GET
请求。GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges
将
PROJECT_ID
替换为要在其中查看内部范围的项目的 ID。如需查看 VPC 网络中的所有内部范围,请向
projects.locations.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 网络的名称。
描述内部范围
您可以描述内部范围以查看所选范围的详细信息,包括与内部范围关联的任何子网。
控制台
在 Google Cloud 控制台中,前往内部范围页面。
点击要描述的内部范围的名称。
gcloud
使用 gcloud network-connectivity internal-ranges describe
命令。
gcloud network-connectivity internal-ranges describe RANGE_NAME
将 RANGE_NAME
替换为要描述的内部范围的名称。
API
向 projects.locations.internalRanges.get
方法发出 GET
请求。
GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME
替换以下内容:
PROJECT_ID
:内部范围的父级项目的 IDRANGE_NAME
:要描述的内部范围的名称
更新内部范围
如果内部范围不可变,您只能更新说明。如果内部范围可变,您可以扩展该范围的 CIDR 地址块并更新其重叠属性和说明。
如需扩展内部范围,您可以更新该范围的 CIDR 地址块或缩短其前缀长度,且更新后的 CIDR 地址块必须包含之前的地址块。
如果您想缩小分配的范围或修改其他元素,请删除内部范围并创建新的范围。
如需更新 IPv4 内部范围的重叠属性,请发送 API 请求或使用 Google Cloud CLI。
控制台
在 Google Cloud 控制台中,前往内部范围页面。
点击要更新的内部范围的名称。
如需扩展范围的 CIDR 地址块,请点击扩展范围,然后执行以下操作之一:
- 对于 IPv4 内部范围,请点击前缀长度,然后执行以下操作:
- 在前缀长度字段中,选择一个小于上一个前缀的前缀长度。
- 点击展开。
- 对于 IPv4 或 IPv6 内部范围,请点击 IP 范围,然后执行以下操作:
- 输入 IPv4、IPv6 或 IPv4 映射的 IPv6 CIDR 地址块。新地址块必须包含之前的地址块。
- 点击展开。
- 对于 IPv4 内部范围,请点击前缀长度,然后执行以下操作:
如需更新范围的说明,请执行以下操作:
- 点击 修改说明。
- 输入新说明。
- 点击保存。
gcloud
如需更新内部范围,请使用
gcloud network-connectivity internal-ranges update
命令。可省略您不想修改的属性的标志。gcloud network-connectivity internal-ranges update RANGE_NAME \ --ip-cidr-range=CIDR_RANGE \ --overlaps=OVERLAPS \ --description=DESCRIPTION
替换以下内容:
RANGE_NAME
:内部范围的名称CIDR_RANGE
:扩展后的 IPv4、IPv6、IPv4 映射的 IPv6 CIDR 地址块,必须包含之前的地址块OVERLAPS
:允许的重叠类型(仅限 IPv4 范围)选项为
OVERLAP_EXISTING_SUBNET_RANGE
和OVERLAP_ROUTE_RANGE
。您可以在英文逗号分隔列表中包含这两个值。如需停用重叠,请添加该标志,但不指定值 (--overlaps=
)。DESCRIPTION
:更新后的说明
如需通过缩短内部范围的前缀长度来扩展内部范围,请使用以下命令:
gcloud network-connectivity internal-ranges update RANGE_NAME \ --prefix-length=PREFIX_LENGTH
将
PREFIX_LENGTH
替换为更新后的前缀长度(必须小于之前的前缀长度)。
API
如需通过更新内部范围的 CIDR 范围来扩展内部范围,请向
projects.locations.internalRanges.patch
方法发出PATCH
请求。PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=ipCidrRange { "ipCidrRange": "CIDR_RANGE" }
替换以下内容:
PROJECT_ID
:内部范围的父级项目的 IDRANGE_NAME
:内部范围的名称CIDR_RANGE
:扩展后的 IPv4、IPv6 或 IPv4 映射的 IPv6 CIDR 地址块,必须包含之前的地址块
如需通过缩短内部范围的前缀长度来扩展内部范围,请发出以下请求:
PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=prefixLength { "prefixLength": PREFIX_LENGTH }
将
PREFIX_LENGTH
替换为更新后的前缀长度(必须小于之前的前缀长度)。如需更新 IPv4 内部范围的重叠属性,请发出以下请求:
PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=overlaps { "overlaps": ["OVERLAPS"] }
将
OVERLAPS
替换为允许的重叠类型。选项为OVERLAP_EXISTING_SUBNET_RANGE
和OVERLAP_ROUTE_RANGE
。您可以在 JSON 数组中包含这两个值。如需停用重叠,请添加该字段,但不指定值 ("overlaps": []
)。如需更新内部范围的说明,请发出以下请求:
PATCH https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME?updateMask=description { "description": "DESCRIPTION" }
将
DESCRIPTION
替换为更新后的说明。
删除内部范围
如果内部范围未与 Google Cloud资源(例如子网)相关联,您可以将其删除。如需删除与 Google Cloud 资源关联的内部范围,请先删除关联的资源。
控制台
在 Google Cloud 控制台中,前往内部范围页面。
点击要删除的内部范围的名称。
点击删除。
请点击删除来确认操作。
gcloud
使用 gcloud network-connectivity internal-ranges delete
命令。
gcloud network-connectivity internal-ranges delete RANGE_TO_DELETE
将 RANGE_TO_DELETE
替换为要删除的内部范围的名称。
API
向 projects.locations.internalRanges.delete
方法发出 DELETE
请求。
DELETE https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges/RANGE_NAME
替换以下内容:
PROJECT_ID
:内部范围的父级项目的 IDRANGE_NAME
:内部范围的名称