Ingress は、定義したルールに基づいて、Kubernetes クラスター内のサービスを外部トラフィックに公開し、リクエストをバックエンド Pod にルーティングします。Ingress は、ホスト名と URL パスに基づいて、HTTP または HTTPS トラフィックをどのサービスにルーティングするかを制御する Kubernetes リソースオブジェクトです。
基本概念
| コンポーネント | 説明 |
|---|---|
| サービス | レプリケートされた Pod のグループで実行されているアプリケーションの抽象化 |
| Ingress | ホスト名と URL パスに基づいて、HTTP または HTTPS トラフィックをサービスにルーティングするためのリバースプロキシ ルールを定義する Kubernetes リソース |
| Ingress コントローラー | Ingress ルールを読み取り、受信リクエストを適切なサービスに転送するリバースプロキシ プログラムです。Ingress ルールに変更が加えられた場合、Ingress コントローラーはそれに応じてルールを更新します。 |
仕組み
リクエストが Ingress コントローラーに到着すると、設定された Ingress ルールとリクエストを照合し、対応するサービスに転送します。その後、サービスはリクエストをバックエンド Pod のいずれかにルーティングして処理します。
Kubernetes クラスター内の Ingress への変更は、クラスター API サーバーを通じて Ingress コントローラーに伝播されます。Server Load Balancer (SLB) インスタンス構成は、これらの変更に基づいて動的に生成され、Ingress ルールはそれに応じて更新されます。
サーバーレス Kubernetes の NGINX Ingress コントローラー
サーバーレス Kubernetes クラスターには、オープンソース版から最適化された NGINX Ingress コントローラーが含まれています。サーバーレス Kubernetes クラスターを作成する際にインストールできます。