このトピックでは、IngressとApplication Load Balancer (ALB) Ingressコントローラー、およびALB Ingressコントローラーの動作について説明します。
Ingressの概要
Kubernetesクラスターでは、Ingressはクラスター内のサービスを公開するアクセスポイントとして機能します。 Ingressは、クラスター内のサービス向けのネットワークトラフィックのほとんどを分散します。 Ingressは、Kubernetesクラスター内のサービスへの外部アクセスを有効にするために使用されるKubernetesリソースオブジェクトです。 Ingressの転送ルールを設定して、ネットワークトラフィックを異なるサービスのバックエンドポッドにルーティングできます。
ALB Ingressコントローラのしくみ
ALB Ingressコントローラーは、APIサーバーからIngressへの変更を取得し、Ingressの変更が検出されたときにAlbConfigオブジェクトを動的に生成します。 次に、ALB Ingressコントローラーは、ALBインスタンスの作成、リスナーの設定、Ingressルールの作成、およびバックエンドサーバーグループの設定という操作を順番に実行します。 Services、Ingress、およびAlbConfigsオブジェクトは、次の方法で相互作用します。
サービスは、レプリケートされたポッドのグループにデプロイされるアプリケーションの抽象化です。
Ingressにはリバースプロキシルールが含まれています。 HTTPまたはHTTPSリクエストがルーティングされるサービスを制御します。 たとえば、Ingressは、リクエスト内のホストとURLに基づいて、リクエストを別のサービスにルーティングします。
AlbConfigは、ALB IngressコントローラーがALBインスタンスとリスナーを構成するために使用するカスタムリソース定義 (CRD) です。 AlbConfigオブジェクトは、1つのALBインスタンスに対応する。
ALB Ingressコントローラのしくみ
Ingressにサービスを提供するALBインスタンスは、ALB Ingressコントローラーによって完全に管理されます。 Ingressエラーによるサービスの中断を防ぐため、ALBコンソールでこれらのALBインスタンスを変更しないことを推奨します。 ALBに関連するクォータの詳細については、「関数と機能」をご参照ください。
ALB IngressコントローラーはNGINX Ingressコントローラーと互換性があり、ALBインスタンスに基づいて改善されたトラフィックルーティング機能を提供します。 ALB Ingressコントローラーは、複雑なルーティング、自動証明書検出、HTTP、HTTPS、およびQUICプロトコルをサポートします。 ALB Ingressコントローラーは、レイヤー7での超高弾力性と重いトラフィック負荷のバランスを取るためのクラウドネイティブアプリケーションの要件を満たしています。