本トピックでは、Ingress の基本概念、Ingress コントローラーの仕組み、および NGINX Ingress コントローラーの使用方法について説明します。
オープンソースの Ingress-NGINX プロジェクトは、2026 年 3 月以降、メンテナンスが終了する予定です。そのため、Container Service for Kubernetes は、NGINX Ingress コントローラーコンポーネントのメンテナンスを停止します。関連するリスクにご注意ください。詳細については、「製品発表:NGINX Ingress コントローラーコンポーネントのメンテナンス終了」をご参照ください。
Ingress の基本概念
Kubernetes クラスターにおいて、Ingress は内部サービスを公開するアクセスポイントとして機能し、ほとんどのサービストラフィックを処理します。Ingress は、外部トラフィックが内部サービスにアクセスする方法を管理するために使用される Kubernetes リソースオブジェクトです。Ingress リソースに転送ルールを構成することで、トラフィックを異なるサービスのバックエンド Pod にルーティングできます。ACK における各種 Ingress の比較に関する詳細については、「Nginx Ingress、ALB Ingress、MSE Ingress の比較」をご参照ください。
Ingress コントローラーの仕組み
Ingress コントローラーは、Ingress で定義された転送ルールを解析します。Ingress コントローラーはリクエストを受信すると、そのリクエストを Ingress ルールと照合し、対応するサービスの Pod に転送します。Kubernetes におけるサービス、Ingress、Ingress コントローラーの関係は次のとおりです。
サービスは、複製された Pod のグループにデプロイされたアプリケーションの抽象化です。
Ingress にはリバースプロキシのルールが含まれています。HTTP または HTTPS リクエストがどのサービスにルーティングされるかを制御します。たとえば、Ingress はリクエスト内のホストと URL に基づいて、リクエストを異なるサービスにルーティングします。
Ingress コントローラーは、Ingress ルールを解析するリバースプロキシプログラムです。Ingress ルールに変更が加えられると、Ingress コントローラーはそれに応じて Ingress ルールを更新します。Ingress コントローラーはリクエストを受信した後、Ingress ルールに基づいてリクエストをサービスにリダイレクトします。
Kubernetes クラスター内の Ingress への変更は、クラスター API サーバーを介して Ingress コントローラーに更新されます。SLB インスタンスの構成は、これらの変更に基づいて動的に生成されます。その後、その構成に基づいて Ingress ルールが更新されます。
NGINX Ingress コントローラーの使用方法
公式の Kubernetes プロジェクトは現在、NGINX Ingress コントローラーをメンテナンスしています。ACK Serverless は、コミュニティ版の NGINX Ingress コントローラーの最適化バージョンを提供しています。ACK Serverless クラスターを作成する際に、このカスタマイズされたバージョンの NGINX Ingress コントローラーコンポーネントをインストールできます。