このトピックでは、IngressコントローラとNGINX Ingressコントローラの動作について説明します。
Ingressの紹介
Kubernetesクラスターでは、Ingressはクラスター内のサービスを公開するアクセスポイントとして機能します。 クラスター内のサービス向けのネットワークトラフィックのほとんどを分散します。 Ingressは、Kubernetesクラスター内のサービスへの外部アクセスを有効にするために使用されるKubernetesリソースオブジェクトです。 Ingressのルーティングルールを設定して、ネットワークトラフィックを異なるサービスのバックエンドポッドにルーティングできます。
Ingressコントローラーのしくみ
Ingressコントローラーは、Kubernetesクラスター内のIngressの転送ルールを解析するために使用されます。 IngressコントローラーがIngressルールに一致する要求を受信すると、Ingressコントローラーはその要求を対応するサービスにルーティングします。 次に、サービスは要求をポッドに転送し、ポッドは要求を処理します。 Kubernetesクラスターでは、Services、Ingress、およびIngressコントローラーは次のプロセスで動作します。
サービスは、レプリケートされたポッドのグループにデプロイされるアプリケーションの抽象化です。
Ingressにはリバースプロキシルールが含まれています。 HTTPまたはHTTPSリクエストのルーティング先を制御します。 たとえば、Ingressは、リクエスト内のホストとURLに基づいて、リクエストを別のサービスにルーティングします。
Ingressコントローラは、Ingressルールを解析するリバースプロキシプログラムです。 Ingressルールに変更が加えられた場合、Ingressコントローラはそれに応じてIngressルールを更新します。 Ingressコントローラは、リクエストを受信した後、Ingressルールに基づいてリクエストをサービスにリダイレクトします。
Kubernetesクラスター内のIngressへの変更は、クラスターAPIサーバーを介してIngressコントローラーに更新されます。 SLBインスタンスの設定は、これらの変更に基づいて動的に生成されます。 次に、設定に基づいてIngressルールが更新されます。 
NGINX Ingressコントローラの使用方法
ACKサーバーレスクラスタは、オープンソースバージョンに基づいて最適化されたNGINX Ingressコントローラを提供します。 NGINX Ingressコントローラーは、ACKサーバーレスクラスターの作成時にインストールできます。