すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:LoadBalancer Servicesを使用したACK Edgeクラスターでのアプリケーションの公開

最終更新日:Jan 26, 2025

Kubernetesでは、サービスはClusterIP、NodePort、およびLoadBalancerサービスに分類されます。 このトピックでは、LoadBalancer Servicesを使用してACK Edgeクラスターでアプリケーションを公開する方法について説明します。

背景情報

Kubernetesクラスターは、すべてのタイプのサービスをサポートしています。 次のトピックでは、LoadBalancerサービスを設定する方法について説明します。

LoadBalancerサービスを使用するクラウド上アプリケーション

ポッドが仮想プライベートクラウド (VPC) のElastic Compute Service (ECS) インスタンスにデプロイされている場合、LoadBalancer Servicesを使用してアプリケーションを公開できます。 クラウド上のコントロールプレーンは、ポッドのClassic Load Balancer (CLB) リスナーとバックエンドサーバーを自動的に管理します。 リクエストは、CLBを使用してバックエンドポッドに均等に分散されます。

LoadBalancerサービスを使用するENSアプリケーション

ポッドがエッジのサーバーにデプロイされている場合、クラウド上のECSの転送機能を使用して、エッジのポッドにリクエストを転送できます。

重要

事前に次の操作を実行する必要があります。

  • Express Connect回路を使用して、オンクラウドVPCとエッジデータセンターを接続します。

  • LoadBalancerサービスの外部トラフィックポリシーをクラスターに設定します。 外部トラフィックポリシーの詳細については、「外部トラフィックポリシー」をご参照ください。

  • トラフィック負荷分散は、ECSインスタンスのネットワーク転送機能なしでは実装できません。

NLBを使用したクラウドノードプールまたはエッジノードプールでのアプリケーションの公開 (推奨)

ポッドがクラウドまたはオンプレミスのデータセンターにデプロイされている場合、Network Load Balancer (NLB) を使用してアプリケーションを公開できます。 前提条件は次のとおりです。

  • オンクラウドおよびエッジノードプールは、Express Connect回路を使用して接続されます。

  • Terway Edgeはネットワークプラグインとして使用されます。

次の表に、ポッドがNLBインスタンスのバックエンドサーバーとして使用されるようにするためにNLBサービスに追加する必要があるアノテーションを示します。

注釈

説明

service.beta.kubernetes.io/backend-type: "eni"

NLBインスタンスにバックエンドサーバーとしてポッドを追加します。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type: "Ip"

バックエンドサーバーグループのタイプをIPに設定します。

外部トラフィックポリシー

externalTrafficPolicyパラメーターを使用して、LoadBalancerまたはNodePortサービスの外部トラフィックポリシーを設定できます。 外部トラフィックポリシーは、外部リクエストをバックエンドポッドにルーティングする方法を指定します。 外部トラフィックポリシーには、ローカルポリシーとクラスタポリシーが含まれます。

説明

トラフィックポリシーは、Terway EdgeおよびFlannel Virtual Extensible Local Area Network (VXLAN) プラグインで有効になります。

  • ローカル: トラフィックは、リクエストの送信先ノードのポッドにのみルーティングされます。

  • クラスター: トラフィックは、クラスター内の他のノードのポッドにルーティングできます。

項目

ローカル

クラスター

バックエンドサーバー

バックエンドポッドがデプロイされているノードのみが、バックエンドサーバーとしてSLBインスタンスに追加されます。

クラスター内のすべてのノードがバックエンドサーバーとしてSLBインスタンスに追加されます。

SLBリソースのクォータ

このポリシーは少量のSLBリソースを消費し、高いSLBリソースクォータを必要としません。 SLBリソースクォータの詳細については、「クォータ」をご参照ください。

クラスター内のすべてのノードがバックエンドサーバーとしてSLBインスタンスに追加されるため、このポリシーでは高いSLBリソースクォータが必要です。 SLBリソースクォータの詳細については、「クォータ」をご参照ください。

SLBインスタンスのIPアドレスへのアクセス

バックエンドポッドがデプロイされているノードのみが、SLBインスタンスのIPアドレスにアクセスできます。

クラスター内のすべてのノードがSLBインスタンスのIPアドレスにアクセスできます。

ポッド間の負荷分散

デフォルトでは、ポッド間の負荷分散は無効になっています。

ポッド間の負荷分散を有効にするには、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler:"WRR" アノテーションをService YAMLファイルに追加して、スケジューリングアルゴリズムをwrr (加重ラウンドロビン) に設定します。

デフォルトでは、ポッド間の負荷分散が有効になっています。

ソースIPの保存

対応

非対応

セッション維持

対応

非対応

利用シナリオ

クライアントIPアドレスをログに記録する必要があるアプリケーションなど、クライアントIPアドレスを保持する必要があるアプリケーション。

大規模なwebアプリケーションクラスタなど、高可用性を必要とするがクライアントIPアドレスを保持する必要のないアプリケーション。

関連ドキュメント

Edge Load Balancer (ELB) インスタンスを使用してEdge Node Service (ENS) ノードプールにデプロイされたサービスを公開する方法の詳細については、「ELBインスタンスを使用して複数のリージョンでサービスを公開する」をご参照ください。