NSX Advanced Load Balancer は、GCP 内部ロード バランサ (ILB) としての VIP をサポートします。VIP の到達可能性は、ILB を介して提供されます。ここで VIP は GCP サブネットから割り当てられ、VIP が ILB のフロントエンド IP アドレスになります。ILB バックエンドには、すべてのサービス エンジンが含まれ、それらのエンジンに仮想サービスが配置されます。仮想サービスのための GCP 内部ロード バランサは、クラウドで構成されたサービス エンジン プロジェクト内に作成されます。NSX Advanced Load Balancer CLI または REST API を使用して、ILB をクラウドの VIP として構成できます。このトピックでは、インバンド ネットワーク構成を使用した GCP クラウドの作成について説明します。

その他のネットワーク構成については、「GCP クラウド ネットワーク構成」を参照してください。

内部ロード バランサとしての VIP の構成

GCP クラウド構成の vip_allocation_strategy フィールドを ILB に設定する必要があります。このクラウドで作成されたすべての VIP は GCP サブネットから割り当てられ、仮想サービスは ILB として構成され、フロントエンド IP アドレスは VIP として構成されます。

GCP 認証情報の作成

GCP 認証情報を作成するには、次の手順を実行します。

  1. [管理] > [ユーザー認証情報] の順に移動し、[作成] ボタンをクリックします。

  2. ユーザー名と GCP サービス アカウント キー ファイル データを指定します。認証情報の詳細については、GCP Full Access Deployment Guideを参照してください。



    NSX Advanced Load Balancer 22.1.3 以降では、次のユーザー インターフェイスを使用できます。



  1. [インフラストラクチャ] > [クラウド] の順に移動します。[作成] > [Google Cloud Platform] の順にクリックします。

  2. [GCP] タブの下にある [認証情報] セクションに移動します。

  3. [認証情報の設定] をクリックします。

  4. [認証情報] フィールドの縦方向の省略記号をクリックして、[作成] をクリックします。

  5. [新規ユーザー認証情報] 画面で、[認証情報のタイプ] ドロップダウン メニューから [GCP] を選択します。

  6. [サービス アカウント キー] を JSON 形式で貼り付けます。

  7. [保存] をクリックして認証情報を作成します。

GCP クラウドの作成

GCP クラウドを作成するには、次の手順を実行します。

  1. NSX Advanced Load Balancer シェルにログインします。次の CLI が使用されます。

[admin:10-138-10-49]: > configure cloud gcp-cloud
  [admin:10-138-10-49]: cloud> vtype cloud_gcp
  [admin:10-138-10-49]: cloud> gcp_configuration
  [admin:10-138-10-49]: cloud:gcp_configuration> cloud_credentials_ref gcp-service-account
  [admin:10-138-10-49]: cloud:gcp_configuration> region_name us-central1
  [admin:10-138-10-49]: cloud:gcp_configuration> zones us-central1-a
  [admin:10-138-10-49]: cloud:gcp_configuration> zones us-central1-b
  [admin:10-138-10-49]: cloud:gcp_configuration> se_project_id service-engine-project
  [admin:10-138-10-49]: cloud:gcp_configuration> network_config config inband_management
  [admin:10-138-10-49]: cloud:gcp_configuration:network_config> inband
  [admin:10-138-10-49]: cloud:gcp_configuration:network_config:inband> vpc_subnet_name subnet-1
  [admin:10-138-10-49]: cloud:gcp_configuration:network_config:inband> vpc_project_id network-project
  [admin:10-138-10-49]: cloud:gcp_configuration:network_config:inband> vpc_network_name network-1
  [admin:10-138-10-49]: cloud:gcp_configuration:network_config:inband> save
  [admin:10-138-10-49]: cloud:gcp_configuration:network_config> save
  [admin:10-138-10-49]: cloud:gcp_configuration> vip_allocation_strategy mode ilb
  [admin:10-138-10-49]: cloud:gcp_configuration:vip_allocation_strategy> ilb
  [admin:10-138-10-49]: cloud:gcp_configuration:vip_allocation_strategy:ilb> save
  [admin:10-138-10-49]: cloud:gcp_configuration:vip_allocation_strategy> save
  [admin:10-138-10-49]: cloud:gcp_configuration> save
  [admin:10-138-10-49]: cloud> save
  
 +-----------------------------+--------------------------------------------+
  | Field                        | Value                                      |
  +------------------------------+--------------------------------------------+
  | uuid                         | cloud-90c34ff6-f3fd-4bbd-a6b6-32e725c521ea |
  | name                         | gcp-cloud                                  |
  | vtype                        | CLOUD_GCP                                  |
  | apic_mode                    | False                                      |
  | gcp_configuration            |                                            |
  |   cloud_credentials_ref      | gcp-service-account                        |
  |   region_name                | us-central1                                |
  |   zones[1]                   | us-central1-a                              |
  |   zones[2]                   | us-central1-b                              |
  |   se_project_id              | service-engine-project                     |
  |   network_config             |                                            |
  |     config                   | INBAND_MANAGEMENT                          |
  |     inband                   |                                            |
  |       vpc_subnet_name        | subnet-1                                   |
  |       vpc_project_id         | network-project                            |
  |       vpc_network_name       | network-1                                  |
  |   vip_allocation_strategy    |                                            |
  |     mode                     | ILB                                        |
  | dhcp_enabled                 | True                                       |
  | mtu                          | 1500 bytes                                 |
  | prefer_static_routes         | False                                      |
  | enable_vip_static_routes     | False                                      |
  | license_type                 | LIC_CORES                                  |
  | state_based_dns_registration | True                                       |
  | ip6_autocfg_enabled          | False                                      |
  | dns_resolution_on_se         | False                                      |
  | enable_vip_on_all_interfaces | False                                      |
  | tenant_ref                   | admin                                      |
  | license_tier                 | ENTERPRISE_18                              |
  | autoscale_polling_interval   | 60 seconds                                 |
  +------------------------------+--------------------------------------------+
  [admin:10-138-10-49]: > 

仮想サービスの作成

仮想サービスを作成するための CLI の詳細は次のとおりです。

configure vsvip <name>
vip
subnet_uuid <subnet-name>
auto_allocate_ip
save
save
[admin:controller]: > configure virtualservice ilb-vs-1
[admin:controller]: virtualservice> cloud_ref gcp-cloud
[admin:controller]: virtualservice> pool_ref pool-1
[admin:controller]: virtualservice> services
New object being created
[admin:controller]: virtualservice:services> port 80
[admin:controller]: virtualservice:services> save
[admin:controller]: vsvip_ref <name>
+------------------------------------+-----------------------------------------------------+
| Field                              | Value                                               |
+------------------------------------+-----------------------------------------------------+
| uuid                               | virtualservice-63190c5f-3e58-4d84-9931-b860f17c20e6 |
| name                               | ilb-vs-1                                            |
| enabled                            | True                                                |
| services[1]                        |                                                     |
|   port                             | 80                                                  |
|   enable_ssl                       | False                                               |
|   port_range_end                   | 80                                                  |
| application_profile_ref            | System-HTTP                                         |
| network_profile_ref                | System-TCP-Proxy                                    |
| pool_ref                           | pool-1                                              |
| se_group_ref                       | Default-Group                                       |
| vrf_context_ref                    | global                                              |
| enable_autogw                      | True                                                |
| analytics_profile_ref              | System-Analytics-Profile                            |
| weight                             | 1                                                   |
| delay_fairness                     | False                                               |
| max_cps_per_client                 | 0                                                   |
| limit_doser                        | False                                               |
| type                               | VS_TYPE_NORMAL                                      |
| cloud_type                         | CLOUD_NONE                                          |
| use_bridge_ip_as_vip               | False                                               |
| flow_dist                          | LOAD_AWARE                                          |
| ign_pool_net_reach                 | False                                               |
| ssl_sess_cache_avg_size            | 1024                                                |
| remove_listening_port_on_vs_down   | False                                               |
| close_client_conn_on_config_update | False                                               |
| bulk_sync_kvcache                  | False                                               |
| tenant_ref                         | admin                                               |
| cloud_ref                          | gcp-cloud                                           |
| east_west_placement                | False                                               |
| scaleout_ecmp                      | True                                                |
| active_standby_se_tag              | ACTIVE_STANDBY_SE_1                                 |
| flow_label_type                    | NO_LABEL                                            |
| vip[1]                             |                                                     |
|   vip_id                           | 0                                                   |
|   ip_address                       | 10.138.0.134                                        |
|   enabled                          | True                                                |
|   network_ref                      | subnet-2                                            |
|   port_uuid                        | avi-ilbip-32e725c521ea-fa4d0dada487                 |
|   subnet_uuid                      | subnet-2                                            |
|   subnet                           | 10.138.0.128/25                                     |
|   auto_allocate_ip                 | True                                                |
|   auto_allocate_floating_ip        | False                                               |
|   avi_allocated_vip                | True                                                |
|   avi_allocated_fip                | False                                               |
|   ipam_network_subnet              |                                                     |
|     network_ref                    | subnet-2                                            |
|     subnet                         | 10.138.0.128/25                                     |
|     subnet_uuid                    | subnet-2                                            |
|   auto_allocate_ip_type            | V4_ONLY                                             |
| vsvip_ref                          | vsvip-P4fAJB                                        |
| use_vip_as_snat                    | False                                               |
| traffic_enabled                    | True                                                |
| allow_invalid_client_cert          | False                                               |
+------------------------------------+-----------------------------------------------------+

サービス エンジンをバックエンドとして使用して、GCP の内部ロード バランサとして VIP 10.138.0.134 を作成できます。



注:
  • 健全性チェック プローブのアドレス範囲は 130.211.0.0/22 および 35.191.0.0/16 です。これらのアドレスを許可するには、ファイアウォール ルールを追加する必要があります。

  • バックエンド サービスですべてのインスタンスが健全でない場合、ILB はすべてのインスタンス間でトラフィックのロード バランシングを行います。

制限

ILB の制限は次のとおりです。

  • ILB は UDP と TCP をサポートしていますが、UDP の場合、健全性チェック タイプは、Google の制限のために UDP ではなく、フェイルオーバー時間が長くなります。

  • 転送ポートを更新できないため、仮想 IP アドレスを他の仮想サービスと共有することはできません。同じ IP アドレスで異なるポートを持つ新しい転送ルールは、GCP では許可されません。

  • 転送ルールには 5 つのポートしか設定できないため、仮想サービスは最大 5 つのポートのみを持つことができます。

  • 健全性チェックは、インスタンス IP アドレスではなく VIP と同じポートで実行されます。

  • サービス エンジンが N 個のバックエンド サービスにある場合は、健全性チェック間隔ごとに N 個の健全性チェック プローブを受信します。

  • VIP が SE のサブネットと同じサブネットで構成されていないことを確認します。

Bring Your Own IP (BYOIP)

BYOIP を使用すると、GCP でパブリック IP アドレスを使用し、これを使用して、バッキングされたサーバ間でトラフィックのロード バランシングを行うことができます。

BYOIP の構成

BYOIP を構成するには、次の手順を実行します。

  1. VIP が GCP の内部ロード バランサである仮想サービスのフローティング IP アドレスを構成します。これにより、GCP にスタティック ルートが追加され、宛先範囲がパブリック IP アドレス、ネクスト ホップが内部ロード バランサ、フロントエンド IP アドレスが VIP として追加されます。

  2. GCP Cloud Router を使用して、GCP で使用されるパブリック IP アドレスをアドバタイズします。

Cloud Router の構成

クラウド ルーターを構成するには、次の手順を実行します。

  1. ネットワーク プロジェクトおよびサービス エンジン仮想マシンが作成されるリージョンに、Cloud Router を作成します。詳細については、「Cloud Router の作成」を参照してください。

  2. NSX Advanced Load Balancer クラウドには、複数の Cloud Router を追加できます。これは FIP を使用して更新されます。

  3. クラウド構成の vip_allocation_strategy フィールドの内部ロード バランサ構成に、Cloud Router 名を追加します。

Cloud Router を構成する CLI は次のとおりです。

[admin:10-138-10-49]: > configure cloud gcp-cloud
Updating an existing object. Currently, the object is:
[admin:10-138-10-49]: cloud> gcp_configuration
[admin:10-138-10-49]: cloud:gcp_configuration> vip_allocation_strategy
[admin:10-138-10-49]: cloud:gcp_configuration:vip_allocation_strategy> ilb
[admin:10-138-10-49]: cloud:gcp_configuration:vip_allocation_strategy:ilb>
[admin:10-138-10-49]: cloud:gcp_configuration:vip_allocation_strategy:ilb> cloud_router_names cloud-router-1
[admin:10-138-10-49]: cloud:gcp_configuration:vip_allocation_strategy:ilb> save
[admin:10-138-10-49]: cloud:gcp_configuration:vip_allocation_strategy> save
[admin:10-138-10-49]: cloud:gcp_configuration> save
[admin:10-138-10-49]: cloud> save
+------------------------------+--------------------------------------------+
| Field                        | Value                                      |
+------------------------------+--------------------------------------------+
| uuid                         | cloud-90c34ff6-f3fd-4bbd-a6b6-32e725c521ea |
| name                         | gcp-cloud                                  |
| vtype                        | CLOUD_GCP                                  |
| apic_mode                    | False                                      |
| gcp_configuration            |                                            |
|   cloud_credentials_ref      | gcp-service-account                        |
|   region_name                | us-central1                                |
|   zones[1]                   | us-central1-a                              |
|   zones[2]                   | us-central1-b                              |
|   se_project_id              | development-237409                         |
|   network_config             |                                            |
|     config                   | INBAND_MANAGEMENT                          |
|     inband                   |                                            |
|       vpc_subnet_name        | subnet-11                                  |
|       vpc_project_id         | development-237409                         |
|       vpc_network_name       | dev-vnet-1                                 |
|   vip_allocation_strategy    |                                            |
|     mode                     | ILB                                        |
|     ilb                      |                                            |
|       cloud_router_names[1]  | cloud-router-1                             |
| dhcp_enabled                 | True                                       |
| mtu                          | 1500 bytes                                 |
| prefer_static_routes         | False                                      |
| enable_vip_static_routes     | False                                      |
| license_type                 | LIC_CORES                                  |
| state_based_dns_registration | True                                       |
| ip6_autocfg_enabled          | False                                      |
| dns_resolution_on_se         | False                                      |
| enable_vip_on_all_interfaces | False                                      |
| tenant_ref                   | admin                                      |
| license_tier                 | ENTERPRISE_18                              |
| autoscale_polling_interval   | 60 seconds                                 |
+------------------------------+--------------------------------------------+

仮想サービスへのフローティング IP アドレスの追加

仮想サービスにフローティング IP アドレスを追加するための CLI は次のとおりです。これにより、GCP にスタティック ルートが作成され、Cloud Router がパブリック IP アドレスで更新されます。

[admin:10-138-10-49]: > configure virtualservice ilb-vs-1
Updating an existing object. Currently, the object is:
[admin:10-138-10-49]: virtualservice> vip index 1
[admin:10-138-10-49]: virtualservice:vip> floating_ip 35.78.2.109
[admin:10-138-10-49]: virtualservice:vip> save
[admin:10-138-10-49]: virtualservice> save
+------------------------------------+-----------------------------------------------------+
| Field                              | Value                                               |
+------------------------------------+-----------------------------------------------------+
| uuid                               | virtualservice-63190c5f-3e58-4d84-9931-b860f17c20e6 |
| name                               | ilb-vs-1                                            |
| enabled                            | True                                                |
| services[1]                        |                                                     |
|   port                             | 80                                                  |
|   enable_ssl                       | False                                               |
|   port_range_end                   | 80                                                  |
| application_profile_ref            | System-HTTP                                         |
| network_profile_ref                | System-TCP-Proxy                                    |
| pool_ref                           | pool-1                                              |
| se_group_ref                       | Default-Group                                       |
| vrf_context_ref                    | global                                              |
| enable_autogw                      | True                                                |
| analytics_profile_ref              | System-Analytics-Profile                            |
| weight                             | 1                                                   |
| delay_fairness                     | False                                               |
| max_cps_per_client                 | 0                                                   |
| limit_doser                        | False                                               |
| type                               | VS_TYPE_NORMAL                                      |
| cloud_type                         | CLOUD_NONE                                          |
| use_bridge_ip_as_vip               | False                                               |
| flow_dist                          | LOAD_AWARE                                          |
| ign_pool_net_reach                 | False                                               |
| ssl_sess_cache_avg_size            | 1024                                                |
| remove_listening_port_on_vs_down   | False                                               |
| close_client_conn_on_config_update | False                                               |
| bulk_sync_kvcache                  | False                                               |
| tenant_ref                         | admin                                               |
| cloud_ref                          | gcp-cloud                                           |
| east_west_placement                | False                                               |
| scaleout_ecmp                      | True                                                |
| active_standby_se_tag              | ACTIVE_STANDBY_SE_1                                 |
| flow_label_type                    | NO_LABEL                                            |
| vip[1]                             |                                                     |
|   vip_id                           | 0                                                   |
|   ip_address                       | 10.138.0.134                                        |
|   enabled                          | True                                                |
|   network_ref                      | subnet-2                                            |
|   port_uuid                        | avi-ilbip-32e725c521ea-fa4d0dada487                 |
|   subnet_uuid                      | subnet-2                                            |
|   subnet                           | 10.138.0.128/25                                     |
|   auto_allocate_ip                 | True                                                |
|   floating_ip                      | 35.78.2.109                                         |
|   auto_allocate_floating_ip        | False                                               |
|   avi_allocated_vip                | True                                                |
|   avi_allocated_fip                | False                                               |
|   ipam_network_subnet              |                                                     |
|     network_ref                    | subnet-2                                            |
|     subnet                         | 10.138.0.128/25                                     |
|     subnet_uuid                    | subnet-2                                            |
|   auto_allocate_ip_type            | V4_ONLY                                             |
| vsvip_ref                          | vsvip-P4fAJB                                        |
| use_vip_as_snat                    | False                                               |
| traffic_enabled                    | True                                                |
| allow_invalid_client_cert          | False                                               |
+------------------------------------+-----------------------------------------------------+

制限

  • 複数のクラスタ間で更新を調整できないため、複数のクラスタで同じクラウド ルーターを共有することはできません。

  • 複数の NSX Advanced Load Balancer クラウドで同じ Cloud Router を共有することはできません。

  • Cloud Router がクラウド構成から削除された場合、コントローラはそのルーターを管理しなくなるため、Cloud Router 上の NSX Advanced Load Balancer フローティング IP アドレス (FIP) を GCP の Cloud Router から手動で削除する必要があります。

Cloud Router のトラブルシューティング

Cloud Router の更新ごとに、対応するイベントが次のように生成されます。

  • GCP_CLOUD_ROUTER_UPDATE_SUCCESS:Cloud Router が正常に更新されるたびに生成される内部イベント。

  • GCP_CLOUD_ROUTER_UPDATE_FAIL:Cloud Router の更新に失敗したときに生成される外部イベント。

注:

Cloud Router には、NSX Advanced Load Balancer によって作成されなかった他の IP アドレスも含めることができます。これらの IP アドレスはそのまま残り、Cloud Router の NSX ALB によって構成されたすべての IP アドレスには、NSX Advanced Load Balancer によって追加されたことを示す説明が付加されます。

FIP がアドバタイズされない場合は、Cloud Router の詳細で次のようにカスタム IP アドレス範囲を表示できます。

  1. [ハイブリッド接続] > [Cloud Routers] の順に移動します。

  2. 必要な Cloud Router をクリックします。

  3. [カスタム IP アドレス範囲] タブをクリックして、次のように IP アドレス範囲と説明を表示します。



FIP がカスタム IP アドレス範囲の下にリストされていない場合は、次のように NSX Advanced Load Balancer ユーザー インターフェイスでコントローラの [イベント] ページを表示できます。

  1. [操作] > [イベント] の順に移動します。

  2. GCP_CLOUD_ROUTER_UPDATE_FAIL イベントをクリックすると、次のようなエラー メッセージが表示されます。



SE プロジェクト ID の更新

クラウドの SE プロジェクト ID フィールドは、SE が作成されるプロジェクトを指定します。このフィールドの設定後は、次の条件が満たされた場合にのみ、このフィールドを修正できます。

  • VIPAllocationStrategy:ILB

    • クラウドに仮想サービスまたは SE が存在しません。

    • 自動スケーリング グループでプールが構成されていません。

  • VIPAllocationStrategy:ルート

    • すべての仮想サービスは、VIPAllocationModeRoutes に設定して作成されます。

    • どの仮想サービスにもパブリック IP アドレスが割り当てられていません。

注:

SE プロジェクト ID の変更に影響を受ける領域のリストは次のとおりです。

  1. 新しい SE の作成は、常に新しい SE プロジェクトで実行されます。

  2. クラウドの network_config オプションで指定されたネットワークは、新しい SE プロジェクトとも共有する必要があります。

  3. 古いプロジェクトの既存の SE は、この製品によって管理されます。

  4. NSX Advanced Load Balancer は、古い SE プロジェクトのイメージをクリーンアップします。

  5. NSX Advanced Load Balancer は、古い SE プロジェクトのトピックとサブスクリプションをクリーンアップします。