GKE on VMware のロード バランシングの概要

このドキュメントでは、GKE on VMware でサポートされているロード バランシング オプションについて説明します。

いくつかのロード バランシング オプションを使用できます。ご使用の環境やニーズに最適なオプションを選択してください。たとえば、最小限の構成を必要とするオプションを選択することができます。あるいは、ネットワークにすでに存在するロードバランサに合わせたオプションを選択することもできます。

使用できるオプションは次のとおりです。

  • MetalLB バンドル

  • 統合 F5 BIG-IP(Controlplane V2 を使用するユーザー クラスタではサポートされていません)

  • 手動による F5 BIG-IP の設定

  • 手動による Citrix の設定

  • 手動で設定したロードバランサ

MetalLB

MetalLB ロードバランサは GKE on VMware にバンドルされており、特に構成が簡単です。MetalLB コンポーネントはクラスタノード上で実行されるため、ロードバランサ用に個別の VM を作成する必要はありません。

IP アドレス管理を行うように MetalLB を構成できます。つまり、デベロッパーが LoadBalancer タイプの Service を作成する場合に、デベロッパーが Service の VIP を指定する必要はありません。代わりに、MetaLB が事前に提供されたアドレスプールから VIP を自動的に選択します。

詳細については、MetalLB によるバンドルされた負荷分散をご覧ください。

F5 BIG-IP

F5 BIG-IP ロードバランサは、GKE on VMware にバンドルされていないため、GKE on VMware のインストールとは別にライセンスを取得し、ロードバランサを設定する必要があります。

GKE on VMware を F5 BIG-IP と統合するように構成するには、次の方法があります。デベロッパーが LoadBalancer タイプのサービスを作成し、そのサービスの VIP を指定すると、GKE on VMware によってロードバランサで VIP が自動的に構成されます。

F5 BIG-IP 統合は、Controlplane V2 を使用するユーザー クラスタではサポートされていません。代わりに、手動で構成したロードバランサとして F5 BIG-IP を使用できます。この場合、GKE on VMware はサービス VIP を自動的に構成しません。

Citrix

ロードバランサを手動で設定する例として Citrix ロードバランサを設定する方法について解説しています。ロードバランサを手動で設定する場合は、VIP、ノードアドレス、nodePort 値の間のマッピングを構成する必要があります。Citrix ロードバランサでこれを行う方法については、Citrix での手動ロード バランシングをご覧ください。

一般的な手動ロード バランシング

手動で設定したロードバランサであれば、任意のものを使用できます。ロードバランサを手動で設定する場合は、VIP、ノードアドレス、nodePort 値の間のマッピングを構成する必要があります。これを行うための一般的情報については、手動ロード バランシングをご覧ください。

仮想 IP アドレスの確保

いずれのロードバランサを選択するかによらず、ロード バランシングに使用する仮想 IP アドレス(VIP)をいくつか確保する必要があります。

管理クラスタ用に、次の VIP を確保する必要があります。

  • Kubernetes API サーバーの VIP
  • アドオンの VIP

作成する各ユーザー クラスタ用に、次の VIP を確保する必要があります。

  • Kubernetes API サーバーの VIP
  • Ingress サービスの VIP

たとえば、2 つのユーザー クラスタを設定するとします。この場合、管理クラスタに 2 つの VIP が、各ユーザー クラスタに 2 つの VIP が必要になります。そのため、6 つの VIP を確保する必要があります。

ノード IP アドレス

次のいずれかのロード バランシング オプションを選択する場合は、クラスタノードに静的 IP アドレスを使用するか、クラスタノードで DHCP サーバーから IP アドレスを取得することが可能です。

  • MetalLB
  • 統合型 F5 BIG-IP

手動ロード バランシング オプションを選択する場合は、クラスタノードに静的 IP アドレスを使用する必要があります。

静的 IP アドレスを使用する場合は、管理クラスタ内のノードと、作成するすべてのユーザー クラスタのノードに十分なアドレスを確保する必要があります。確保するノード IP アドレスの数の詳細については、IP アドレスの計画をご覧ください。

クラスタで Service を作成する

ユーザー クラスタを実行したら、Kubernetes Service を作成し、外部クライアントに公開できます。

LoadBalancer タイプの Service では、VIP をロードバランサで構成する必要があります。VIP の構成方法は、ロードバランサの選択によって異なります。

MetalLB

ユーザー クラスタ構成ファイルで、MetalLB コントローラが Service に VIP を割り当てるために使用するアドレスプールを指定します。デベロッパーが LoadBalancer タイプの Service を作成すると、MetaLB コントローラがプールからアドレスを選択し、そのアドレスを Service に割り当てます。デベロッパーは Service マニフェストで loadBalancerIP の値を指定する必要はありません。

統合型 F5 BIG-IP

デベロッパーが LoadBalancer タイプの Service を作成する場合は、デベロッパーが外部 IP アドレスを指定します。次に例を示します。

spec:
  type: LoadBalancer
  loadBalancerIP: 192.168.100.2

GKE on VMware は、F5 BIG-IP ロードバランサのネットワーク インターフェースで指定されたアドレスを自動的に構成します。

手動で構成したロードバランサ

手動によるロード バランシングのオプションを選択した場合、デベロッパーは次の手順に沿って Service を外部クライアントに公開できます。

  • NodePort 型の Service を作成します。

  • Service の VIP を選択します。

  • VIP に送信されたトラフィックが Service に転送されるように、ロードバランサを手動で構成します。