Kubernetes Ingressとは?
くーばねてぃすいんぐれす
Kubernetes Ingressとは、クラスター外部からのHTTP/HTTPSトラフィックをルールに基づいて内部のServiceに振り分けるAPIオブジェクトです。
Kubernetes Ingressは、クラスター外部からのHTTP・HTTPSリクエストを受け付け、URLパスやホスト名に基づいて適切なServiceへルーティングするための仕組みです。LoadBalancer Serviceを複数用意する代わりに、1つのIngressリソースで複数のサービスへのアクセスを一元管理できます。
Ingressの主な機能は以下の通りです。
- パスベースルーティング: /api/ はAPIサービス、/static/ はファイルサービスなど、URLパスによって転送先を振り分けます。
- ホストベースルーティング: app.example.com と api.example.com のように、ホスト名(バーチャルホスト)で転送先を分けられます。
- TLS終端: HTTPS証明書をIngressで管理し、バックエンドのServiceはHTTPのままにすることができます。
- リダイレクトや書き換え: Ingress Controllerの種類によっては、URLの書き換えや認証連携なども設定できます。
Ingressを機能させるにはIngressリソースの定義に加えて、nginx-ingress-controllerやTraefikなど「Ingress Controller」と呼ばれる実装が別途必要です。クラウドごとに推奨されるControllerが異なるため、環境に合わせた選択が重要です。Ingressはクラスターへの入口を一本化してセキュリティポリシーの適用やコスト削減に貢献します。
使い方・例文
単一のIPアドレスに対してIngressを設定し、example.com/shop はショッピングサービスへ、example.com/blog はブログサービスへと振り分けることで、ロードバランサーのコストを抑えながら複数のWebサービスを運用できます。
この用語をシェア
最終更新: