建立及使用內部範圍
本文說明如何建立、使用及刪除內部範圍。
您可以透過內部範圍分配內部 IP 位址區塊,並指定這些區塊的使用方式,藉此管理虛擬私有雲 (VPC) 網路中統一的 IP 位址空間。
事前準備
- 如要使用本指南提供的指令列範例,請安裝或更新至最新版 Google Cloud CLI。
- 您必須在專案中啟用 Network Connectivity API。
- 找出或建立虛擬私有雲網路。
必要的角色
如要取得使用內部範圍所需的權限,請要求管理員授予您專案的Compute 網路管理員 (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 區塊 (或預設範圍,如果未指定目標 CIDR 區塊) 內隨機分配免費 IP 位址範圍。如要選擇分配策略,請使用 Google Cloud CLI 或傳送 API 要求。
IPv6 內部範圍可防止自動指派 IP 位址給新的「僅限 IPv6」或雙重堆疊子網路。IPv6 內部範圍必須具有 EXTERNAL_TO_VPC
用途類型和 FOR_SELF
對等互連類型。您必須加入特定的 IPv6 CIDR 區塊,且 overlaps
欄位必須空白或未指定。
如要禁止使用者更新內部範圍的 CIDR 區塊或重疊設定,您可以建立不可變更的內部範圍。不可變動的內部範圍會禁止變更這些屬性,但您仍可更新說明。建立內部範圍後,就無法變更不可變動性。
如果內部範圍或資源在同一個虛擬私有雲網路共用重疊的 IP 位址,預設無法建立這類內部範圍或資源。 Google Cloud 您可以設定 IPv4 內部範圍,允許與現有子網路、新舊路由和/或兩者的位址範圍重疊。您無法建立使用現有內部範圍 IP 位址的 Google Cloud 資源,除非您明確將資源與內部範圍建立關聯 (適用於子網路),或設定重疊 (適用於路由)。
主控台
前往 Google Cloud 控制台的「Internal ranges」(內部範圍) 頁面。
按一下「保留內部範圍」。
輸入名稱。
選用:輸入說明。
選取 IP 版本。
如果選取「IPv4」IPv4,請執行下列操作:
- 指定內部範圍是否不可變動。
選取預訂方式。
如果選取「自動」,請按照下列步驟操作:
- 選取前置字串長度。
- 按一下「新增目標 IP 位址範圍」,然後輸入目標 IP 位址範圍。您可以新增多個目標範圍。
選用:按一下「新增要排除的範圍」,然後輸入要排除的 IP 位址範圍。您可以新增多個排除範圍。
Google Cloud 會將 IP 位址區塊分配至內部範圍,且不得與任何排除範圍重疊。建立內部範圍後,就無法更新這份清單。
如果選取「讓我指定」,請以 CIDR 標記法輸入 IP 範圍。
請選取網路。
選取對等互連類型。
選取使用類型。
選用:在「允許重疊」部分,指定內部範圍是否可與現有子網路、新舊路由或兩者重疊。
如果選取「IPv6」IPv6,請按照下列步驟操作:
- 指定內部範圍是否不可變動。
- 選取「讓我指定」,然後輸入 IPv6 或 IPv4 對應的 IPv6 CIDR 區塊。
- 請選取網路。
- 按一下「對等互連」,然後選取「For self」(為自己)。
- 按一下「用量」,然後選取「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
,或是自動模式虛擬私有雲網路的10.128.0.0/9
。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
分配策略時,才加入這個旗標。
如要在預留 IPv4 內部範圍時排除 IP 位址範圍,並使用系統自動分配的 CIDR 區塊,請使用下列指令:
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
,或是自動模式虛擬私有雲網路的10.128.0.0/9
。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 networks」(虛擬私有雲網路) 頁面。
按一下虛擬私有雲網路的名稱,顯示其「虛擬私有雲網路詳細資料」頁面。
按一下 [Add subnet] (新增子網路)。在隨即顯示的對話方塊中:
- 提供名稱。
- 請選取區域。
- 勾選「與內部範圍建立關聯」核取方塊。
- 在「預留的內部範圍」部分,選取所需範圍。
- 選用:如要將子網路與部分內部範圍建立關聯,請輸入 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.1.0/24
部分相關聯的子網路,該子網路會保留 10.9.0.0/16
CIDR 區塊。
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.1.0/24
部分相關聯的子網路,其中包含 10.9.0.0/16
CIDR 區塊。
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 節點:
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 節點:
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
要求,建立虛擬私有雲原生叢集。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 網路中的專案,請使用 Google Cloud CLI 或傳送 API 要求。
主控台
前往 Google Cloud 控制台的「Internal ranges」(內部範圍) 頁面。
gcloud
如要查看目前專案中的所有內部範圍,請使用
gcloud network-connectivity internal-ranges list
指令。gcloud network-connectivity internal-ranges list
如要查看虛擬私有雲網路中的所有內部範圍,請使用
internal-ranges list
指令並加入篩選器。gcloud network-connectivity internal-ranges list \ --filter=network:NETWORK_NAME \ --project=PROJECT_ID
更改下列內容:
NETWORK_NAME
:要列出內部範圍的 VPC 網路名稱PROJECT_ID
:含有虛擬私有雲網路的專案 ID
API
如要查看專案中的所有內部範圍,請對
projects.locations.internalRanges.list
方法提出GET
要求。GET https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/internalRanges
將
PROJECT_ID
替換為要查看內部範圍的專案 ID。如要查看虛擬私有雲網路中的所有內部範圍,請對
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
替換為要列出內部範圍的虛擬私有雲網路名稱。
說明內部範圍
您可以說明內部範圍,查看所選範圍的詳細資料,包括與內部範圍相關聯的任何子網路。
主控台
前往 Google Cloud 控制台的「Internal ranges」(內部範圍) 頁面。
按一下要說明的內部範圍「名稱」。
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 控制台的「Internal ranges」(內部範圍) 頁面。
按一下要更新的內部範圍名稱。
如要展開範圍的 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 控制台的「Internal ranges」(內部範圍) 頁面。
按一下要刪除的內部範圍名稱。
點選「刪除」。
按一下「Delete」(刪除) 確認操作。
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
:內部範圍的名稱