Ingress Controllerとは
Ingressコントローラーは、Kubernetes(およびその他のコンテナ化された)環境向けに特化したロードバランサーです。Kubernetesは、コンテナ化されたアプリケーションを管理するための事実上の標準です。多くの企業にとって、本番ワークロードをKubernetesに移行すると、アプリケーショントラフィック管理に関する新たな課題や複雑さが生じます。Ingressコントローラーは、Kubernetesアプリケーションのトラフィックルーティングの複雑さを抽象化し、Kubernetesサービスと外部サービスを橋渡しします。
Kubernetes Ingressコントローラー:
- Kubernetesプラットフォーム外部からのトラフィックを受け入れ、プラットフォーム内で稼働するPod(コンテナ)に負荷分散します
- クラスター外の他のサービスと通信する必要があるサービスについて、クラスター内のエグレストトラフィックを管理できます
- Kubernetes APIを使用して設定し、「Ingress Resources」と呼ばれるオブジェクトをデプロイできます
- Kubernetesで実行中のPodを監視し、サービスにPodが追加された場合やサービスから削除された場合に、負荷分散ルールを自動的に更新します
NGINX Sprintのこのセッションでは、Kubernetesのネットワークに関する概念やIngressコントローラーの役割について詳しく解説します。また、Ingressコントローラーの3つの基本タイプ(オープンソース、クラウドベンダーのデフォルト、商用)のうち、どれが最適かを判断するための実践的なアドバイスもご紹介します。
NGINX Plusはどのように役立つのか
Ingressコントローラーの設定を頻繁に変更していませんか?Kubernetesサービスを攻撃から保護することが最優先事項ではありませんか?その場合は、次のような機能を備えた本番環境向けのIngressコントローラーが必要です。
- 動的再構成
- 軽量でモダンなWebアプリケーションファイアウォール(WAF)
- 実績ある標準的なシングルサインオン(SSO)ソリューション(OpenID Connect(OIDC)など)による認可と認証
- 24時間365日のサポートにより、本番ワークロードのKubernetesへの迅速な移行を支援
The NGINX Ingress Controllerは、本番環境向けのIngressコントローラー(デーモン)であり、Kubernetes環境でNGINX Open SourceまたはNGINX Plusのインスタンスとともに動作します。このデーモンは、NGINX IngressリソースとKubernetes Ingressリソースを監視し、Ingressロードバランシングを必要とするサービスへのリクエストを検出します。また、NGINX App Protectと互換性があります。NGINX App Protectは、Ingressコントローラー、サービス単位のプロキシ、Pod単位のプロキシとしてデプロイできる、軽量で最新のF5のWAFです。
NGINX Ingress Controllerを使用すると、レイヤー4~7のKubernetesネットワークを活用し、Kubernetesサービス間のセキュリティとトラフィック制御を強化できます。
NGINXをデータプレーンとして使用するIngress Controllerは数多くあり、どれが自社に適しているか迷うこともあるでしょう。F5のブログでは、NGINXを基盤とする代表的な3つのIngress Controllerの概要を紹介しています。
- Kubernetesコミュニティ(kubernetes/ingress-nginx GitHub上)
- NGINX Open Source(nginxinc/kubernetes-ingress、GitHub)
- NGINX Plus(商用製品。NGINX Plusをベースとしています)
適切なIngressコントローラーは、ユースケースに応じて選択する必要があります。本番環境レベルのアプリケーションデリバリーが必要な場合、上記の機能が重要となり、これらを提供するのはNGINX Ingress ControllerのNGINX Plusベース版のみです。

