このドキュメントでは、Google Distributed Cloud でサポートされているロード バランシング オプションについて説明します。
2 種類のロード バランシング オプションを使用できます。ご使用の環境やニーズに最適なオプションを選択してください。たとえば、最小限の構成を必要とするオプションを選択することができます。あるいは、ネットワークにすでに存在するロードバランサに合わせたオプションを選択することもできます。
使用できるオプションは次のとおりです。
MetalLB バンドル
F5 BIG-IP Citrix などのサードパーティ ロードバランサの手動ロード バランシング
MetalLB
MetalLB ロードバランサは Google Distributed Cloud にバンドルされており、特に構成が簡単です。MetalLB コンポーネントはクラスタノード上で実行されるため、ロードバランサ用に個別の VM を作成する必要はありません。
IP アドレス管理を行うように MetalLB を構成できます。つまり、デベロッパーは、LoadBalancer
タイプの Service を作成するときに、Service の VIP を指定する必要はありません。代わりに、MetalLB が事前に提供されたアドレスプールから VIP を自動的に選択します。
詳細については、MetalLB によるバンドルされたロード バランシングをご覧ください。
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 アドレス
ロードバランサとして MetalLB を選択した場合は、クラスタノードに静的 IP アドレスを使用するか、クラスタノードで DHCP サーバーから IP アドレスを取得できます。
手動ロード バランシング オプションを選択する場合は、クラスタノードに静的 IP アドレスを使用する必要があります。
静的 IP アドレスを使用する場合は、管理クラスタ内のノードと、作成するすべてのユーザー クラスタのノードに十分なアドレスを確保する必要があります。確保するノード IP アドレスの数の詳細については、IP アドレスの計画をご覧ください。
クラスタで Service を作成する
ユーザー クラスタを実行したら、Kubernetes Services を作成し、外部クライアントに公開します。
LoadBalancer
タイプの Service では、VIP をロードバランサで構成する必要があります。VIP の構成方法は、ロードバランサの選択によって異なります。
MetalLB
ユーザー クラスタの構成ファイルで、MetalLB コントローラが Service に VIP を割り当てるために使用するアドレスプールを指定します。デベロッパーが LoadBalancer
タイプの Service を作成すると、MetalLB コントローラがプールからアドレスを選択し、そのアドレスを Service に割り当てます。デベロッパーは Service マニフェストを参照して、loadBalancerIP
の値を指定する必要はありません。
手動で構成したロードバランサ
手動によるロード バランシングのオプションを選択した場合、デベロッパーは次の手順に沿って Service を外部クライアントに公開できます。
NodePort タイプの Service を作成します。
Service の VIP を選択します。
VIP に送信されたトラフィックが Service に転送されるように、ロードバランサを手動で構成します。