内部範囲を作成して使用する

このドキュメントでは、内部範囲を作成、使用、削除する方法について説明します。

内部範囲を使用すると、内部 IP アドレスのブロックを割り振ってブロックの使用方法を指定することで、Virtual Private Cloud(VPC)ネットワーク間で統合された IP アドレス空間を管理できます。

始める前に

  • このガイドのコマンドラインの例を使用するには、Google Cloud CLI の最新バージョンをインストールするか、最新バージョンに更新してください。
  • プロジェクトで Network Connectivity API有効にする必要があります。

必要なロール

内部範囲の操作に必要な権限を取得するには、プロジェクトに対する Compute ネットワーク管理者roles/compute.networkAdmin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

内部範囲を作成する

内部範囲を作成する場合、少なくとも 2 つの要素を指定します。1 つは割り振る IP アドレス、もう 1 つはアドレスを割り振るネットワークです。正確な CIDR 範囲を指定して内部範囲を作成することも、Google Cloud で自動的に範囲を選択することもできます。

特定の CIDR ブロックで内部範囲を作成する

コンソール

  1. Google Cloud コンソールで、[内部範囲] ページに移動します。

    [内部範囲] に移動

  2. [内部範囲を予約] をクリックします。

  3. 名前を入力します。

  4. (省略可)説明を入力します。

  5. [予約方法] セクションで、[手動で指定する] を選択します。

  6. [IP 範囲] フィールドに、内部範囲の IP アドレス範囲を CIDR 表記で入力します。

  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 ブロックを使用して内部範囲を作成する場合は、プレフィックスの長さと 1 つ以上のターゲット CIDR 範囲を指定します。Google Cloud は既存の IP アドレスの割り振りを考慮し、選択されたサイズの IP アドレスの空きブロックをターゲット CIDR 範囲内から割り当てます。

コンソール

  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 範囲をカンマ区切りリストで入力できます。デフォルトは、カスタムモードの VPC ネットワークの場合は 10.0.0.0/8、自動モードの VPC ネットワークの場合は 10.128.0.0/9 です。
  • 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 範囲を指定できます。デフォルトは、カスタムモードの VPC ネットワークの場合は 10.0.0.0/8、自動モードの VPC ネットワークの場合は 10.128.0.0/9 です。
  • 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 範囲] フィールドに、内部範囲の IP アドレス範囲を CIDR 表記で入力します。

  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 範囲] フィールドに、内部範囲の IP アドレス範囲を CIDR 表記で入力します。

  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 範囲を指定できます。デフォルトは、カスタムモードの VPC ネットワークの場合は 10.0.0.0/8、自動モードの VPC ネットワークの場合は 10.128.0.0/9 です。
  • 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 範囲を指定できます。デフォルトは、カスタムモードの VPC ネットワークの場合は 10.0.0.0/8、自動モードの VPC ネットワークの場合は 10.128.0.0/9 です。
  • NETWORK_NAME: 内部範囲を作成するネットワークの名前。

ローカル VPC ネットワークに内部範囲を予約する

ローカル VPC ネットワーク用にのみ予約された内部範囲を作成できます。予約済みの範囲はピア VPC ネットワークで通知されません。ピア VPC ネットワークは、親の VPC ネットワークに表示される方法で内部範囲を使用できません。

コンソール

  1. Google Cloud コンソールで、[内部範囲] ページに移動します。

    [内部範囲] に移動

  2. [内部範囲を予約] をクリックします。

  3. 名前を入力します。

  4. (省略可)説明を入力します。

  5. [予約方法] セクションで、[手動で指定する] を選択します。

  6. [IP 範囲] フィールドに、内部範囲の IP アドレス範囲を CIDR 表記で入力します。

  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: サブネットワークを作成するリージョン。

たとえば、次の 2 つのコマンドは、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: サブネットワークを作成するネットワークの名前。

たとえば、次の 2 つのリクエストは、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 Service に関連付けられている内部範囲のプレフィックスの長さ。
    • 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 Service に関連付けられている内部範囲のプレフィックスの長さ。
  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: 内部範囲の名前。