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サービスに追加する必要があるアノテーションを示します。
注釈 | 説明 |
| NLBインスタンスにバックエンドサーバーとしてポッドを追加します。 |
| バックエンドサーバーグループのタイプを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アドレスにアクセスできます。 |
ポッド間の負荷分散 | デフォルトでは、ポッド間の負荷分散は無効になっています。 ポッド間の負荷分散を有効にするには、 | デフォルトでは、ポッド間の負荷分散が有効になっています。 |
ソースIPの保存 | 対応 | 非対応 |
セッション維持 | 対応 | 非対応 |
利用シナリオ | クライアントIPアドレスをログに記録する必要があるアプリケーションなど、クライアントIPアドレスを保持する必要があるアプリケーション。 | 大規模なwebアプリケーションクラスタなど、高可用性を必要とするがクライアントIPアドレスを保持する必要のないアプリケーション。 |
関連ドキュメント
Edge Load Balancer (ELB) インスタンスを使用してEdge Node Service (ENS) ノードプールにデプロイされたサービスを公開する方法の詳細については、「ELBインスタンスを使用して複数のリージョンでサービスを公開する」をご参照ください。