NGINX Full Version

KubernetesのTCPとUDPトラフィックのロードバランシング


[この投稿は、eBook「Managing Kubernetes Traffic with F5 NGINX: A Practical Guide」からの抜粋です。今すぐ無料でダウンロードしてください。]

HTTPトラフィックに加え、NGINX Ingress ControllerはTCPとUDPのトラフィックをロードバランシングするため、下記に含まれるプロトコルに基づくさまざまなアプリやユーティリティのトラフィック管理に使用することができます。

NGINX Ingress ControllerによるTCPおよびUDPのロードバランシングは、以下のような状況でKubernetesアプリケーションにネットワークトラフィックを分散させるのにも効果的なソリューションです。

NGINX Ingress Controllerには、TCP/UDPのロードバランシングをサポートする2つのNGINX Ingressリソースが付属しています。

次の図は、GlobalConfiguration および TransportServer リソースの使用例の例です。gc.yamlでは、クラスタ管理者がGlobalConfigurationリソースでTCPおよびUDPリスナーを定義しています。ts.yamlでは、DevOpsエンジニアがTransportServerリソースでTCPリスナーを参照し、MySQL展開にトラフィックをルーティングしています。

gc.yaml definesのGlobalConfigurationリソースは、2つのリスナーを定義しています。ポート514のUDPリスナーはsyslogサービスへの接続用、ポート5353のTCPリスナーはMySQLサービスへの接続用です。

ts.yamlのTransportServerリソースの6~8行目は、gc.yamlで定義されているTCPリスナーを名前(mysql-tcp)で参照し、9~14行目はTCPトラフィックをmysql-db upstreamに送るルーティングルールを定義しています。

この例では、DevOpsエンジニアがMySQLクライアントを使用して、MySQLデプロイメント内のrawdata_content_schemaデータベースのテーブルのリストを出力して確認し、設定が機能していることを検証しています。

$ echo “SHOW TABLES” | mysql –h <external_IP_address> -P <port> -u <user> –p rawdata_content_schema
Enter Password: <password>
Tables_in_rawdata_content_schema
authors
posts

UDPトラフィック用のTransportServerリソースも同様に構成されます。完全な例については、GitHubのNGINX Ingress ControllerリポジトリのBasic TCP/UDP Load Balancingをご覧ください。NGINXに詳しい ユーザーであれば、リポジトリの Support for TCP/UDP Load Balancing の例で示されているように、stream-snippets ConfigMap キーを使用してネイティブ NGINX 設定で TransportServer リソースを拡張することができます。

TransportServerリソースで設定可能な機能の詳細については、NGINX Ingress Controllerのドキュメントのドキュメントを参照してください。

この投稿は、当社のeBook「Managing Kubernetes Traffic with F5 NGINX: A Practical Guide」からの抜粋です。今すぐ無料でダウンロードできます。

NGINX PlusをベースにしたNGINX Ingress Controllerを30日間の無料トライアルで今すぐお試しいただくか、お客様の使用例について弊社までお問い合わせください。