このドキュメントでは、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 に転送されるように、ロードバランサを手動で構成します。