Container Service for Kubernetes (ACK) エッジクラスターでは、Ingress はレイヤー 7 ロードバランシングをサポートする API オブジェクトです。Ingress を使用して、登録済みクラスター内のサービスへの外部アクセスを管理できます。このトピックでは、Ingress について紹介し、Ingress コントローラーのしくみと使用方法について説明します。
概念
ACK エッジクラスターでは、Ingress はインターネットからアクセスされるサービスのエントリポイントとして機能し、クラスター内のほぼすべてのトラフィックを処理します。Ingress は Kubernetes リソースであり、Kubernetes クラスター内のサービスへの外部アクセスを管理します。Ingress リソースを設定することにより、クラスター内の各サービスに関連付けられているバックエンド ポッドにアクセスするためのさまざまな転送ルールを定義できます。Ingress の原則の詳細については、「Ingress の管理」をご参照ください。
Ingress では、HTTP または HTTPS トラフィックのルーティングルールのみを設定できます。Ingress は、ロードバランシングアルゴリズムやセッション保持などの高度な機能をサポートしていません。これらの機能を使用するには、Ingress コントローラーで設定する必要があります。
ACK エッジクラスターに Ingress コントローラーをデプロイする方法
ACK エッジクラスターは、ACK Pro マネージドクラスターに基づいてエッジノードプールの機能を拡張し、エッジノードとデータセンターを接続します。ノードプールの詳細については、「ノードプール」をご参照ください。 ACK エッジクラスターは、次の 2 つの部分で構成されています。
クラウドノードプール: クラスター VPC 内の Elastic Compute Service (ECS) リソースなどのリソースが含まれます。
エッジノードプール: クラスターには複数のエッジノードプールが存在する可能性があり、主にエッジノードとデータセンターを接続するために使用されます。
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 コントローラーを介してサービスのバックエンド ポッドにルーティングされ、ロードバランシングポリシーが適用されます。この方法では、トラフィック トポロジー は使用されません。