ゾーン NEG の設定

このドキュメントでは、ゾーン ネットワーク エンドポイント グループ(NEG)を構成する手順について説明します。ゾーン NEG を構成する前に、ネットワーク エンドポイント グループの概要をご覧ください。

GCE_VM_IP エンドポイントを使用するゾーン NEG

これらは、内部パススルー ネットワーク ロードバランサと外部パススルー ネットワーク ロードバランサのバックエンド サービスのバックエンドとして使用できます。詳細については、ゾーン NEG の概要: ロード バランシングをご覧ください。

エンドツーエンドの例については、以下をご覧ください。

GCE_VM_IP_PORT エンドポイントを使用するゾーン NEG

これらは、次のタイプのロードバランサでバックエンド サービスのバックエンドとして使用できます。

GCE_VM_IP_PORT ゾーン NEG の主なユースケースはコンテナ ネイティブのロード バランシングです。これにより、VM 上のコンテナ内で実行されるマイクロサービス間でトラフィックを分散できます。コンテナ ネイティブの負荷分散により、ロードバランサは Pod を直接ターゲットにして、VM レベルではなく Pod レベルで負荷分散の決定を行うことができます。

コンテナ ネイティブの負荷分散を構成するには、GKE Ingress が管理する NEG を使用する方法と、スタンドアロン NEG を使用する方法があります。

手順については、以下をご覧ください。

ゾーン NEG の構成

このページの残りの部分では、ロードバランサの作成前または作成後にゾーン NEG を構成する方法について説明します。一部のアクションは、Ingress によって作成および管理されるゾーン NEG に適用されない点に注意してください。

ゾーン ネットワーク エンドポイント グループを作成する

コンソール

ゾーン ネットワーク エンドポイント グループを作成するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. [ネットワーク エンドポイント グループを作成] をクリックします。
  3. [ネットワーク エンドポイント グループの種類] には、[Network endpoint type: Zonal] を選択します。
  4. ネットワーク エンドポイント グループの名前を入力します。
  5. [ネットワーク エンドポイント グループの種類] で、[ネットワーク エンドポイント グループ(ゾーン)] を選択します。
  6. 使用しているロードバランサの種類に応じて、エンドポイント タイプを選択します。
  7. ネットワークを選択します。
  8. [サブネットワーク] を選択します。
  9. ゾーンを選択します。
  10. GCE_VM_IP_PORT エンドポイントを持つゾーン NEG の場合のみ、デフォルト ポートを入力します。
  11. [作成] をクリックします。

gcloud

GCE_VM_IP_PORT ゾーン NEG を作成する

gcloud compute network-endpoint-groups create NEG_NAME \
    --zone=ZONE \
    --network=NETWORK
    [--subnet=SUBNET]
    [--default-port=DEFAULT_PORT]

このコマンドでは、次のフラグを使用します。

  • NEG_NAME は、新しいネットワーク エンドポイント グループの名前です。この名前はゾーン内で一意である必要があります。
  • ZONE は、NEG を作成するゾーンの名前です。
  • NETWORK は、NEG を作成するネットワークの名前です。省略した場合、Google Cloud は default というネットワークを使用します。
  • SUBNET は、ネットワーク エンドポイントが属するサブネットの名前です。ネットワークが自動モードの VPC ネットワークの場合、このフラグは省略可能です。省略した場合、選択したゾーンが含まれるリージョンに自動作成されるサブネットに NEG が作成されます。ネットワークがカスタムモードの VPC の場合、または手動で作成されたサブネットを指定する必要がある場合、このフラグは必須です。
  • DEFAULT_PORT は、NEG に関連付けられるデフォルトのポートです。このフラグは省略可能です。省略した場合は、IP:port の形式ですべてのエンドポイントを指定する必要があります。このフラグを指定した場合は、エンドポイントを指定する際に port 部分を省略できます。省略すると、デフォルトのポートが使用されます。

GCE_VM_IP ゾーン NEG を作成する

GCE_VM_IP ゾーン ネットワーク エンドポイント グループを作成するには、次に示すように network-endpoint-type を指定する必要があります。gcloud compute network-endpoint-groups create

gcloud compute network-endpoint-groups create NEG_NAME \
    --network-endpoint-type=gce-vm-ip \
    --zone=ZONE \
    --network=NETWORK
    --subnet=SUBNET

このコマンドでは、次のフラグを使用します。

  • NEG_NAME は、新しいネットワーク エンドポイント グループの名前です。この名前はゾーン内で一意である必要があります。
  • ZONE は、NEG を作成するゾーンの名前です。
  • NETWORK は、NEG を作成するネットワークの名前です。
  • SUBNET は、ネットワーク エンドポイントが属するサブネットの名前です。

ネットワーク エンドポイント グループにエンドポイントを追加する

Console

ネットワーク エンドポイント グループにエンドポイントを追加するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. エンドポイントを追加するネットワーク エンドポイント グループの名前をクリックします。[ネットワーク エンドポイント グループの詳細] ページが表示されます。
  3. [このグループのネットワーク エンドポイント] セクションで [ネットワーク エンドポイントを追加] をクリックします。[ネットワーク エンドポイントの追加] ページが表示されます。
  4. [VM インスタンス] を選択して、ネットワーク エンドポイントして内部 IP アドレスを追加し、[追加] をクリックします。ネットワーク インターフェース、ゾーン、サブネット、エンドポイントに割り当てられた VM インターフェースの内部 IP アドレスが表示されます。
  5. GCE_VM_IP_PORT エンドポイントのみを持つゾーン NEG の場合は、次の操作を行います。
    1. 新しいネットワーク エンドポイントの IP アドレスまたは範囲を入力します。
    2. ポートタイプを選択します。
    3. [デフォルト] を選択すると、エンドポイントはネットワーク エンドポイント グループのすべてのエンドポイントにデフォルト ポートを使用します。
    4. [カスタム] を選択した場合は、使用するエンドポイントのポート番号を入力します。
  6. 他のエンドポイントを追加するには、[ネットワーク エンドポイントを追加] をクリックし、手順 5 と 6 を繰り返します。
  7. 必要なエンドポイントをすべて追加したら、[追加] をクリックします。

gcloud

ネットワーク エンドポイント グループにエンドポイントを追加するには:

gcloud compute network-endpoint-groups update NEG_NAME \
    --zone=ZONE \
    --add-endpoint 'instance=INSTANCE_NAME,[ip=IP_ADDRESS],[port=PORT]' \
    [--add-endpoint ...]

次のように置き換えます。

  • NEG_NAME: NEG の名前。
  • ZONE: NEG が存在するゾーンの名前。
  • INSTANCE_NAME: IP アドレスが属する VM の名前。
  • IP_ADDRESS: 追加するネットワーク エンドポイントの IP アドレス(省略可)。IP アドレスを省略すると、Google Cloud は NEG のサブネットワークに一致する VM インスタンスのプライマリ内部 IP アドレスを選択します。
  • PORT: 追加するネットワーク エンドポイントのポート。デフォルト ポートが NEG で指定されている場合、ポートは省略可能です。このフィールドは、GCE_VM_IP エンドポイントを使用するゾーン NEG ではサポートされていません。

詳細については、ゾーン ネットワーク エンドポイント グループの概要をご覧ください。

たとえば、エンドポイントを GCE_VM_IP_PORT ゾーン NEG に追加するには、次のようにします。

gcloud compute network-endpoint-groups update my-lb-neg \
    --zone=asia-southeast1-a \
    --add-endpoint 'instance=my-vm1,ip=10.1.1.1,port=80'

バックエンド サービスへゾーン NEG を追加する

Console

ネットワーク エンドポイント グループをバックエンド サービスに追加するには:

  1. Google Cloud Console の [Cloud Load Balancing] ページに移動します。
    [負荷分散] ページに移動
  2. バックエンド サービスを編集するロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] ページで、[編集] をクリックします。
  4. [ロードバランサの編集] ページで、[バックエンドの構成] をクリックします。
  5. [バックエンドの構成] ページで、[編集] をクリックします。
  6. [+バックエンドを追加] をクリックします。
  7. ゾーン ネットワーク エンドポイント グループを選択して、[完了] をクリックします。
  8. [更新] をクリックします。

gcloud

バックエンド サービスに NEG を追加するには:

gcloud compute backend-services add-backend BACKEND_SERVICE \
     --network-endpoint-group=NETWORK_ENDPOINT_GROUP \
     --network-endpoint-group-zone=ZONE

たとえば、GCE_VM_IP_PORT ゾーン NEG をバックエンド サービスに追加するには、次のようにします。

gcloud compute backend-services add-backend my-lb \
   --network-endpoint-group my-lb-neg \
   --network-endpoint-group-zone=asia-southeast1-a \
   --global \
   --balancing-mode=RATE \
   --max-rate-per-endpoint=5

NEG をバックエンド サービスから削除する

コンソール

  1. Google Cloud コンソールの [ロード バランシング] ページに移動します。
    [負荷分散] ページに移動
  2. バックエンド サービスを編集するロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] ページで、[編集] をクリックします。
  4. [ロードバランサの編集] ページで、[バックエンドの構成] をクリックします。
  5. [バックエンドの構成] ページで、NEG を削除するバックエンド サービスの [編集] をクリックします。
  6. [バックエンド] セクションで、削除する NEG を探し、その NEG のごみ箱アイコンをクリックします。
  7. [更新] をクリックします。

gcloud

バックエンド サービスから NEG を削除するには:

gcloud compute backend-services remove-backend BACKEND_SERVICE \
    --network-endpoint-group=NETWORK_ENDPOINT_GROUP \
    --network-endpoint-group-zone=NETWORK_ENDPOINT_GROUP_ZONE

例:

gcloud compute backend-services remove-backend my-lb \
    --network-endpoint-group=my-lb-neg \
    --network-endpoint-group-zone=asia-southeast1-a

ネットワーク エンドポイント グループからエンドポイントを削除する

ネットワーク エンドポイントが負荷分散 NEG から削除されると、バックエンド サービスで指定されたドレイン パラメータに基づいて接続ドレインがトリガーされます。複数のバックエンド サービスが同じ NEG を参照している場合、すべてのバックエンド サービスの最大ドレイン間隔が適用されます。

Console

ネットワーク エンドポイント グループからエンドポイントを削除するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. エンドポイントを削除するネットワーク エンドポイント グループの名前をクリックします。ネットワーク エンドポイント グループの詳細ページが表示されます。
  3. 削除するネットワーク エンドポイントを選択し、[エンドポイントを削除] をクリックします。

gcloud

ネットワーク エンドポイント グループからエンドポイントを削除するには:

gcloud compute network-endpoint-groups update NEG_NAME \
--zone=ZONE \
--remove-endpoint 'instance=INSTANCE_NAME,[ip=IP],[port=PORT]' \
[--remove-endpoint ...]

たとえば、GCE_VM_IP_PORT ゾーン NEG からエンドポイントを削除するには、次のようにします。

gcloud compute network-endpoint-groups update my-lb-neg \
     --remove-endpoint 'instance=my-vm1,ip=10.1.1.1,port=80' \
     --zone=asia-southeast1-a

ネットワーク エンドポイント グループの一覧を表示する

コンソール

ネットワーク エンドポイント グループのリストを表示するには、Google Cloud コンソールの [ネットワーク エンドポイント グループ] ページに移動します。
[ネットワーク エンドポイント グループ] ページに移動

gcloud

ネットワーク エンドポイント グループの一覧を表示するには:

gcloud compute network-endpoint-groups list

特定のネットワーク エンドポイント グループの詳細を取得する

Console

特定のネットワーク エンドポイント グループの詳細を取得するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. 詳細を表示するネットワーク エンドポイント グループの名前をクリックします。

gcloud

特定のネットワーク エンドポイント グループの詳細を取得するには:

gcloud compute network-endpoint-groups describe NEG_NAME \
    --zone=ZONE

次のように置き換えます。

  • NEG_NAME: ネットワーク エンドポイント グループの名前。
  • ZONE: NEG が作成されたゾーンの名前(省略可)。

たとえば、次のような gcloud コマンドは、ネットワーク エンドポイント グループ my-lb-neg に関する情報を一覧表示します。

gcloud compute network-endpoint-groups describe my-lb-neg \
    --zone=asia-southeast1-a

コマンドの出力は次のようになります。

    creationTimestamp: '2018-04-09T14:51:34.381-07:00'
    id: '5260475207627726473'
    kind: compute#networkEndpointGroup
    loadBalancer:
      defaultPort: 80
      network: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/networks/default
      zone: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/asia-southeast1-a

ネットワーク エンドポイント グループを削除する

バックエンド サービスに接続しているネットワーク エンドポイント グループは削除できません。NEG を削除する前に、NEG がバックエンド サービスから接続解除されていることを確認してください。

VM を削除すると、VM 上のすべてのネットワーク エンドポイントが NEG から削除され、すべての接続が終了します。バックエンド サービスの削除後に NEG を削除すると、その NEG 内のすべてのエンドポイントも削除されます。

Console

バックエンド サービスからネットワーク エンドポイント グループを削除するには:

  1. Google Cloud Console の [Cloud Load Balancing] ページに移動します。
    [負荷分散] ページに移動
  2. バックエンド サービスを編集するロードバランサの名前をクリックします。
  3. [ロードバランサの詳細] ページで、[編集] をクリックします。
  4. [ロードバランサの編集] ページで、[バックエンドの構成] をクリックします。
  5. [バックエンドの構成] ページで、NEG を削除するバックエンド サービスの [編集] をクリックします。
  6. [バックエンド] セクションで、削除する NEG を探し、その NEG のごみ箱アイコンをクリックします。
  7. [更新] をクリックします。

ネットワーク エンドポイント グループを削除するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. 削除するネットワーク エンドポイント グループを見つけます。
  3. その行のごみ箱アイコンをクリックします。

gcloud

バックエンド サービスからネットワーク エンドポイント グループを削除するには:

gcloud compute backend-services remove-backend BACKEND_SERVICE \
     --network-endpoint-group=NETWORK_ENDPOINT_GROUP \
     --network-endpoint-group-zone=ZONE

ネットワーク エンドポイント グループを削除するには:

gcloud compute network-endpoint-groups delete NEG_NAME \
    --zone=ZONE

例:

gcloud compute backend-services remove-backend my-neg-backend \
    --network-endpoint-group=my-lb-neg \
    --network-endpoint-group-zone=southeast1-a
gcloud compute network-endpoint-groups delete my-lb-neg \
    --zone=asia-southeast1-a

ネットワーク エンドポイント グループのエンドポイントの一覧を表示する

Console

ネットワーク エンドポイント グループのエンドポイントの一覧を表示するには:

  1. Google Cloud Console の [ネットワーク エンドポイント グループ] ページに移動します。
    [ネットワーク エンドポイント グループ] ページに移動
  2. エンドポイントを削除するネットワーク エンドポイント グループの名前をクリックします。[ネットワーク エンドポイント グループの詳細] ページが表示されます。ここに、エンドポイント グループのエンドポイントが表示されます。
  3. エンドポイントをフィルタリングするには、[このグループのネットワーク エンドポイント] の下にあるテキスト フィールドに Key-Value ペアを作成します。

gcloud

ネットワーク エンドポイント グループのネットワーク エンドポイントの一覧を表示するには:

gcloud compute network-endpoint-groups list-network-endpoints NEG_NAME \
     --zone=ZONE

ネットワーク エンドポイント グループのエンドポイントを一覧表示する場合のカスタム フィルタ

カスタム フィルタを使用して、ネットワーク エンドポイント グループのどのエンドポイントを表示するかを制限できます。カスタム フィルタは REST API に対してのみ有効です。Google Cloud コンソールや gcloud コマンドライン インターフェースからカスタム フィルタを使用することはできません。

詳細については、networkEndpointGroups.listNetworkEndpoints メソッドのドキュメントをご覧ください。

ネットワーク エンドポイントのヘルスチェックを行う

ゾーン NEG バックエンドを使用するバックエンド サービスでは、次のいずれか方法でポートを指定し、ヘルスチェックを使用する必要があります。

  • 固定(番号付き)ポート(--port
  • ネットワーク エンドポイントのサービスポート(--use-serving-port)を使用するよう構成

次の例では、ネットワーク エンドポイントのサービスポートと --use-serving-port フラグを使用する HTTP ヘルスチェックを作成します。--use-serving-port フラグは gcloud compute health-checks update ではなく、gcloud compute health-checks create で実装されることに注意してください。

gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME
    --use-serving-port

ゾーン NEG バックエンドでは、レガシー ヘルスチェックを使用できません。詳細については、ヘルスチェックのコンセプトをご覧ください。