Application Load Balancer(ALB)Ingress は、Alibaba Cloud によって開始されたクラウドネイティブ Ingress の一種です。Container Service for Kubernetes(ACK)および Container Service for Kubernetes Serverless(Serverless Kubernetes クラスター)は ALB Ingress と緊密に統合されており、外部トラフィックをクラスターにルーティングする際にレイヤー 7 ロードバランシングを実装します。このトピックでは、概念、利点、ユースケース、および ALB Ingress の使用方法について説明します。
概念
ALB Ingress を使用すると、レイヤー 7 で ACK または Serverless Kubernetes クラスターへの外部トラフィックを分散できます。Kubernetes クラスターにデプロイされた ALB Ingress コントローラーは、API サーバー上の AlbConfig、Ingress、およびサービスの変更を監視し、既存の AlbConfig を動的に更新できます。ALB Ingress コントローラーの詳細については、「ALB Ingress コントローラー」をご参照ください。
ALB Ingress を使用する
ALB によって強化された ALB Ingress は、ネットワークトラフィックに対してより強力な管理機能を提供します。ALB Ingress は NGINX Ingress と互換性があります。これにより、ALB Ingress は複雑なルーティングを実行し、証明書を自動的に検出し、HTTP、HTTPS、および QUIC をサポートできます。ALB Ingress は、レイヤー 7 での高スケーラビリティと大規模トラフィック転送を必要とするクラウドネイティブシナリオに最適です。
手順
ALB Ingress はフルマネージドです。ALB コンソールで ALB Ingress を構成しないでください。構成すると、Ingress エラーが発生する可能性があります。ALB クォータの詳細については、「制限」をご参照ください。
ALB Ingress はクラウドネイティブサービスと緊密に統合されています。ALB Ingress は幅広い機能をサポートし、すぐに使用できます。次の手順は、ACK または Serverless Kubernetes クラスターで ALB Ingress を使用する方法を示しています。
操作 | 説明 |
ALB Ingress コントローラーをインストールする | クラスターの作成時、または [アドオン] ページで、ALB Ingress コントローラーをインストールできます。詳細については、以下のトピックをご参照ください。
説明
|
(オプション) 専用クラスターへのアクセス権限を付与する | ACK 専用クラスターで ALB Ingress を使用してサービスにアクセスする場合、サービスをデプロイする前に、必要な権限を ALB Ingress コントローラーに付与する必要があります。 |
サービスやデプロイメントなどのバックエンドサービスをデプロイする | ALB Ingress がネットワークトラフィックを転送する Kubernetes に、サービスやデプロイメントなどのバックエンドサービスをデプロイできます。詳細については、以下のトピックをご参照ください。
|
(オプション) AlbConfig と IngressClass を作成する | 重要 ALB Ingress コントローラーの作成時に、[ゲートウェイソース] を [新規] または [既存] に設定すると、コントローラーは自動的に alb という名前の AlbConfig と alb という名前の IngressClass を作成します。この場合、この手順はスキップできます。 ALB Ingress コントローラーに権限を付与した後、AlbConfig と IngressClass を作成し、それらを相互に関連付けることができます。詳細については、以下のトピックをご参照ください。
|
Ingress を作成する | 上記の手順を完了した後、Ingress を作成し、転送ルールに基づいてリクエストをバックエンドサービスに転送するように Ingress を構成し、Ingress を IngressClass および AlbConfig に関連付けます。その後、クライアントは ALB Ingress を使用して Kubernetes のリソースにアクセスできます。詳細については、以下のトピックをご参照ください。
|
転送ルールに加えて、ALB Ingress にアノテーションを追加して、セッション維持やカナリアリリースなどの高度な機能を構成できます。ALB Ingress のその他の機能の詳細については、以下のトピックをご参照ください。
ACK クラスター: ALB Ingress の高度な構成
Serverless Kubernetes クラスター: ALB Ingress の高度な構成
ALB Ingress のしくみ
ALB Ingress は Kubernetes の機能と互換性があり、CustomResourceDefinitions(CRD)オブジェクトである AlbConfig オブジェクトとアノテーションを使用して高度な設定を構成できます。
AlbConfig CRD: AlbConfig CRD は、ALB インスタンスとリスナーを構成するために使用されます。各 AlbConfig オブジェクトは 1 つの ALB インスタンスに対応します。
アノテーション: 転送ルールを構成するために使用されます。転送ルールに基づいて、HTTP および HTTPS リクエストがサービスに転送されます。
サービス: レプリケートされた Pod のセットで実行されるバックエンドアプリケーションの抽象化。
利点
ALB Ingress は Alibaba Cloud によって完全に管理され、非常に高い処理能力を提供します。一方、NGINX Ingress は高度にカスタマイズ可能ですが、手動管理が必要です。NGINX Ingress と ALB Ingress は、異なるサービス範囲、アーキテクチャ、処理能力、およびセキュリティ機能を提供します。詳細については、「NGINX Ingress と ALB Ingress の比較」をご参照ください。
ALB Ingress は、次のシナリオで NGINX Ingress よりも優れています。
持続的接続
持続的接続は、IoT(モノのインターネット)、インターネット金融、オンラインゲームなど、頻繁なインタラクションが必要なシナリオに最適です。構成が変更されると、NGINX Ingress はプロセスを再読み込みし、持続的接続を一時的に閉じます。これにより、サービス中断が発生する可能性があります。この問題を防ぐために、ALB Ingress はローリングアップデートを使用して持続的接続の安定性を確保します。
高同時実行性
IoT サービスは、端末デバイスから開始された多数の同時接続を維持することが期待されています。ALB Ingress は Alibaba Cloud のクラウドネットワーク管理プラットフォームで実行され、セッションを効率的に管理できます。各 ALB インスタンスは数千万の接続をサポートします。NGINX Ingress は限られた数のセッションのみをサポートし、手動での O&M が必要です。NGINX Ingress のスケールアウトはクラスター内のリソースを消費し、手動操作が必要です。スケールアウトの費用は比較的高くなります。
高 QPS
インターネットサービスは、プロモーション活動や重大なイベントなど、ほとんどのシナリオで高 QPS に耐えることが期待されています。ALB Ingress は自動スケーリングをサポートしています。QPS 値が増加すると、仮想 IP アドレスが自動的に追加されます。各 ALB インスタンスは最大 100 万 QPS をサポートするため、ALB Ingress は NGINX Ingress よりも低いネットワークレイテンシをサポートします。さらに、NGINX Ingress はクラスター内のリソースに依存しており、高 QPS シナリオではパフォーマンスボトルネックが発生する可能性があります。
大きなワークロード変動
ALB は、e コマースやゲームサービスなど、ワークロードの変動が大きいサービスに最適な、より費用対効果の高い価格モデルを提供します。ALB は従量課金制をサポートしています。オフピーク時には、消費されるロードバランサーキャパシティユニット(LCU)が少なくなります。さらに、ALB は自動スケーリングをサポートしています。トラフィックフローをリアルタイムでチェックする必要はありません。ただし、NGINX はオフピーク時にアイドルリソースを自動的に解放しません。ワークロードの変動に対応するために、クラスター内に一定量のリソースを手動で予約する必要があります。
アクティブなゾーン冗長性とアクティブな地理的冗長性
ソーシャルネットワーキングやストリーミングメディアサービスなど、高い業務継続性と信頼性を必要とする業界およびアプリケーションシナリオでは、Distributed Cloud Container Platform for Kubernetes(ACK One)を使用して ALB マルチクラスターゲートウェイを作成し、ALB Ingress を使用してマルチクラスタートラフィックを管理できます。これらにより、アクティブなゾーン冗長性とアクティブな地理的冗長性を実装できます。
シナリオ
ALB Ingress はオープンでプログラム可能であり、完全に管理されています。ALB Ingress は高パフォーマンスを提供し、自動スケーリングをサポートします。
複数レベルでのロードバランシングとスケジューリングをサポートし、インスタンスあたり最大 100 万 QPS をサポートできます。
ハードウェア統合とアクセラレーションによって強化された堅牢な転送機能をサポートします。
自動スケーリングをサポートして O&M を簡素化し、99.995% のサービス稼働時間を保証します。
複雑なワークロードをルーティングするためのカスタマイズ可能なシステムを提供します。