Container Service for Kubernetes (ACK) Edgeクラスターでは、Ingressはレイヤー7の負荷分散をサポートするAPIオブジェクトです。 Ingressを使用して、登録済みクラスターのサービスへの外部アクセスを管理できます。 このトピックでは、Ingressについて説明し、Ingressコントローラーの動作とIngressコントローラーの使用方法について説明します。
基本概念
ACK Edgeクラスターでは、Ingressはインターネットからアクセスするサービスのエントリポイントとして機能し、クラスター内のほとんどすべてのトラフィックを処理します。 Ingressは、Kubernetesクラスター内のサービスへの外部アクセスを管理するKubernetesリソースです。 Ingressリソースを設定することで、クラスター内の各サービスに関連付けられているバックエンドポッドにアクセスするためのさまざまな転送ルールを定義できます。 Ingressの原則の詳細については、「Ingressの概要」をご参照ください。
Ingressでは、HTTPトラフィックルーティングルールのみを設定できます。 Ingressは、負荷分散アルゴリズムやセッションアフィニティなどの高度な機能をサポートしていません。 これらの機能を有効にするには、Ingressコントローラーで設定する必要があります。
ACK EdgeクラスターにIngressコントローラーをデプロイする方法
ACKエッジクラスターは、ACK Proクラスターに基づいてエッジノードプールの機能を拡張し、エッジノードとデータセンターを接続します。 ノードプールの詳細については、「ノードプールの概要」をご参照ください。 ACK Edgeクラスターは、次の2つの部分で構成されます。
クラウドノードプール: クラスターVPC内のECS (Elastic Compute Service) リソースなどのリソースが含まれます。
エッジノードプール: 主にエッジノードとデータセンターを接続するために、クラスターに複数のエッジノードプールが存在できます。
Ingressコントローラーはリクエストのエントリポイントで、対応するHTTP/HTTPSリクエストをサービスに関連付けられたバックエンドポッドに転送します。 次の方法を使用して、Ingressコントローラーをデプロイできます。
デプロイ方法 | 機能 | クラウドエッジネットワークモード /トラフィックトポロジ |
ノードプールの展開 | クラスター内の必要な各ノードプールにIngressのセットをデプロイします。 NGINX Ingressのみがサポートされています。 詳細については、「NGINX Ingressコントローラーのインストール」をご参照ください。 |
|
クラウドデプロイ | クラウドノードプールにのみIngressのセットをデプロイします。 NGINX IngressとApplication Load Balancer (ALB) Ingressの両方がサポートされています。 詳細については、「NGINX Ingressコントローラーのインストール」および「ALB Ingressコントローラーの管理」をご参照ください。 | トラフィックトポロジが無効な専用回線が使用されます。 |
ノードプールの展開
クラウドノードプールとエッジノードプールの両方にIngressコントローラーをデプロイします。
クラウドノードプールのIngressコントローラーは、LoadBalancerサービスを使用してインターネットに対応するサービスを提供します。 Classic Load Balancer (CLB) インスタンスのIPアドレスがエンドポイントとして使用されます。
エッジノードプールのIngressコントローラーは、NodePortサービスを使用してインターネットに対応するサービスを提供します。 ノードプール内の任意のノードのIPアドレスをエンドポイントとして使用できます。
リクエストがIngressコントローラーを介して同じノードプール内のサービスに関連付けられたバックエンドポッドに転送されるように、サービストポロジを設定する必要があります。 詳細については、「サービストポロジの設定」をご参照ください。
クラウドデプロイ
クラウドノードプールにのみIngressコントローラーをデプロイします。
クラウドノードプールとエッジノードプールが、ホストとコンテナネットワーク間の相互接続など、イントラネット通信用の専用回線を介して接続されていることを確認します。
クラウドノードプールのIngressコントローラーは、LoadBalancerサービスを使用してインターネットに対応するサービスを提供します。 CLBインスタンスのIPアドレスがエンドポイントとして使用されます。
リクエストは、Ingressコントローラーを介して、サービスに関連付けられたバックエンドポッドに転送されます。 この方法では、トラフィックトポロジは使用されません。