vSphere with Tanzu と Distributed Switch ネットワークを併用している場合、HAProxy は、Tanzu Kubernetes 制御プレーンにアクセスする開発者と、ロード バランサ タイプの Kubernetes サービスに対応したロード バランシングを提供します。HAProxy ロード バランサに実装可能なトポロジを確認してください。
スーパーバイザー クラスタ のワークロード ネットワーク
vSphere ネットワーク スタックを使用した スーパーバイザー クラスタ を構成するには、クラスタ内のすべてのホストを vSphere Distributed Switch に接続する必要があります。スーパーバイザー クラスタ ワークロード ネットワーク用に実装するトポロジに応じて、1 つ以上の分散ポート グループを作成します。作成したポート グループを、ワークロード ネットワークとして、vSphere 名前空間 に指定します。
ホストを スーパーバイザー クラスタ に追加する前に、クラスタに含まれるすべての vSphere Distributed Switch にホストを追加する必要があります。
スーパーバイザー クラスタ 上の Kubernetes 制御プレーン仮想マシンは、プライマリ ワークロード ネットワークに割り当てられた IP アドレス範囲から 3 つの IP アドレスを使用します。Tanzu Kubernetes クラスタの各ノードには、この Tanzu Kubernetes クラスタが実行されている名前空間で構成されたワークロード ネットワークのアドレス範囲から割り当てられた、それぞれ別の IP アドレスが割り当てられます。
IP アドレス範囲の割り当て
- HAProxy に対する仮想 IP アドレスの割り当ての範囲。HAProxy の仮想サーバ用に構成した IP アドレス範囲は、ロード バランサ アプライアンスによって予約されます。たとえば、仮想 IP アドレス範囲が
192.168.1.0/24
の場合、この範囲に含まれるすべてのホストは、仮想 IP トラフィック以外のトラフィックではアクセスできません。注: HAProxy 仮想 IP アドレス範囲内にゲートウェイを構成するとゲートウェイへのすべてのルートが失敗するため、構成しないようにします。 - スーパーバイザー クラスタ および Tanzu Kubernetes クラスタのノードの IP アドレス範囲。スーパーバイザー クラスタ 内の Kubernetes 制御プレーン仮想マシンにはそれぞれ IP アドレスが割り当てられていて、合計で 3 つの IP アドレスがあります。Tanzu Kubernetes クラスタの各ノードには、別の IP アドレスが割り当てられます。名前空間に構成する スーパーバイザー クラスタ の各ワークロード ネットワークに、一意の IP アドレス範囲を割り当てる必要があります。
1 つの /24 ネットワークによる構成の例:
- ネットワーク:192.168.120.0/24
- HAProxy 仮想 IP アドレス:192.168.120.128/25
- HAProxy ワークロード インターフェイスの 1 つの IP アドレス:192.168.120.5
最初の 128 アドレスに含まれる制限のない IP アドレスに応じて、スーパーバイザー クラスタ のワークロード ネットワークの IP アドレス範囲を定義できます。たとえば、次のようにします。
- 192.168.120.31 ~ 192.168.120.40:プライマリ ワークロード ネットワーク
- 192.168.120.51 ~ 192.168.120.60:別のワークロード ネットワーク
HAProxy ネットワーク トポロジ
ネットワーク構成には、[デフォルト] と [フロントエンド] という、HAProxy をデプロイする 2 つのオプションがあります。デフォルト ネットワークには、管理ネットワーク用とワークロード ネットワーク用の 2 つの NIC があります。フロントエンド ネットワークには、管理ネットワーク、ワークロード ネットワーク、クライアント用のフロントエンド ネットワークの 3 つの NIC があります。次の表に、各ネットワークの特性の一覧と説明を示します。
ネットワーク | 特性 |
---|---|
[管理] |
スーパーバイザー クラスタは管理ネットワークを使用して HAProxy ロード バランサに接続し、このバランサをプログラムします。
|
[ワークロード] |
HAProxy 制御プレーン仮想マシンは、ワークロード ネットワークを使用して、スーパーバイザー クラスタおよび Tanzu Kubernetes クラスタ ノードのサービスにアクセスします。
注: ワークロード ネットワークは、管理ネットワークとは別のサブネットに配置してください。
システム要件を参照してください。
|
[フロントエンド ](オプション) | クラスタ ワークロードにアクセスする外部クライアント(ユーザーやアプリケーションなど)は、フロントエンド ネットワークを使用して、仮想 IP アドレスによってバックエンド ロード バランシング サービスにアクセスします。
|
次の図に、[フロントエンド ネットワーク] トポロジを使用した HAProxy デプロイを示します。この図は、インストールおよび構成プロセスで想定される構成フィールドの場所を示しています。
1 つのワークロード ネットワークを使用する スーパーバイザー クラスタ トポロジと 2 つの仮想 NIC を使用する HA プロキシ
このトポロジでは、次のコンポーネントに対する 1 つのワークロード ネットワークを持つ スーパーバイザー クラスタ を構成します。
- Kubernetes 制御プレーンの仮想マシン
- Tanzu Kubernetes クラスタのノード。
- 外部サービスと DevOps ユーザーが接続する HAProxy の仮想 IP アドレス範囲。この構成では、2 つの仮想 NIC を使用する HAProxy がデプロイされます([デフォルト] 構成)。1 つは管理ネットワークに接続され、もう 1 つはプライマリ ワークロード ネットワークに接続されます。仮想 IP アドレスは、プライマリ ワークロード ネットワークとは別のサブネットに割り当てる必要があります。
- DevOps ユーザーまたは外部サービスは、分散ポート グループのワークロード ネットワーク サブネット上の仮想 IP アドレスにトラフィックを送信します。
- HAProxy は、仮想 IP トラフィックを Tanzu Kubernetes ノードの IP アドレス、または制御プレーン仮想マシンの IP アドレスのいずれかにロード バランシングします。HAProxy は、仮想 IP アドレスを要求して、その IP アドレスで受信されるトラフィックのロード バランシングを行うことができるようにします。
- 制御プレーン仮想マシンまたは Tanzu Kubernetes クラスタ ノードは、スーパーバイザー クラスタ または Tanzu Kubernetes クラスタ内でそれぞれ実行されているターゲット ポッドにトラフィックを配信します。
隔離されたワークロード ネットワークを使用する スーパーバイザー クラスタ トポロジと 2 つの仮想 NIC を使用する HA プロキシ
- Kubernetes 制御プレーン仮想マシン。Kubernetes 制御プレーン仮想マシンのトラフィックを処理するプライマリ ワークロード ネットワーク。
- Tanzu Kubernetes クラスタ ノード。ワークロード ネットワーク。これは、スーパーバイザー クラスタ 上のすべての名前空間に割り当てられます。このネットワークは Tanzu Kubernetes クラスタ ノードに接続します。
- HAProxy の仮想 IP アドレス。この構成では、2 つの仮想 NIC を使用する HAProxy 仮想マシンがデプロイされます([デフォルト] 構成)。HAProxy 仮想マシンは、プライマリ ワークロード ネットワークか、名前空間に使用するワークロード ネットワークのいずれかに接続できます。また、HAProxy は、vSphere に既存の、プライマリ ネットワークおよびワークロード ネットワークにルーティング可能な仮想マシン ネットワークに接続することもできます。
- DevOps ユーザーまたは外部サービスは、仮想 IP アドレスにトラフィックを送信します。トラフィックは、HAProxy が接続されているネットワークにルーティングされます。
- HAProxy は、仮想 IP トラフィックを Tanzu Kubernetes ノードの IP アドレス、または制御プレーン仮想マシンのいずれかにロード バランシングします。HAProxy は、仮想 IP アドレスを要求して、その IP アドレスで受信されるトラフィックのロードバランシングを行うことができるようにします。
- 制御プレーン仮想マシンまたは Tanzu Kubernetes クラスタ ノードは、Tanzu Kubernetes クラスタ内で実行されているターゲット ポッドにトラフィックを配信します。
複数のワークロード ネットワークを使用する スーパーバイザー クラスタ トポロジと 2 つの仮想 NIC を使用する HA プロキシ
このトポロジでは、1 つのポート グループがプライマリ ワークロード ネットワークとして動作するように、また、1 つの専用ポート グループが各名前空間に対するワークロード ネットワークとして機能するように構成できます。HAProxy は 2 つの仮想 NIC とともにデプロイされ([デフォルト] 構成)、プライマリ ワークロード ネットワークか、いずれかのワークロード ネットワークに接続することができます。プライマリおよびワークロード ネットワークにルーティング可能な、既存の仮想マシン ネットワークを使用することもできます。
複数のワークロード ネットワークを使用する スーパーバイザー クラスタ トポロジと 3 つの仮想 NIC を使用する HA プロキシ
使用できるトポロジからの選択
使用できるトポロジから選択する前に、次のように環境のニーズを検討します。
- スーパーバイザー クラスタ と Tanzu Kubernetes クラスタの間でレイヤー 2 の隔離が必要ですか。
- いいえ:すべてのコンポーネントで使用される 1 つのワークロード ネットワークを持つ最もシンプルなトポロジ。
- はい:分離されたプライマリ ネットワークとワークロード ネットワークを持つ、隔離ワークロード ネットワーク トポロジ。
- Tanzu Kubernetes クラスタの間でさらにレイヤー 2 の隔離が必要ですか。
- いいえ:分離されたプライマリ ネットワークとワークロード ネットワークを持つ、隔離ワークロード ネットワーク トポロジ。
- はい:名前空間ごとに分離されたワークロード ネットワークと専用のプライマリ ワークロード ネットワークを持つ、複数のワークロード ネットワーク トポロジ。
- DevOps ユーザーと外部サービスが Kubernetes 制御プレーン仮想マシンと Tanzu Kubernetes クラスタ ノードに直接ルーティングされないようにする必要がありますか?
- いいえ:2 つの NIC を使用する HAProxy 構成。
- はい:3 つの NIC を使用する HAProxy 構成。この構成は、本番環境に推奨されます。