Enterprise Distributed Application Service(EDAS)のContainer Service for Kubernetes(ACK)クラスターでアプリケーションを作成した後、インターネット向けまたは内部向けのClassic Load Balancer(CLB)インスタンスをアプリケーションにバインドして、インターネットまたはプライベートネットワーク経由でアプリケーションにアクセスできるようにすることができます。このトピックでは、インターネット向けまたは内部向けのCLBインスタンスをACKクラスターのアプリケーションにバインドする方法について説明します。
背景情報
CLBインスタンスをアプリケーションにバインドするには、EDASコンソールでCLBインスタンスのリスナーの構成を変更する必要があります。
Server Load Balancer(SLB)コンソールでリスナーと証明書の構成を変更することはできません。変更に失敗し、アプリケーションにアクセスできなくなる可能性があります。
ACKクラスターと自己管理型KubernetesクラスターのアプリケーションへのCLBインスタンスのバインドの違いは、以下のとおりです。
自己管理型Kubernetesクラスター:CLBインスタンスをアプリケーションにバインドするには、新しいCLBインスタンスを購入する必要があります。各アプリケーションには専用のCLBインスタンスがあります。
ACKクラスター:アプリケーションごとに新しいCLBインスタンスを購入するか、他のアプリケーションにバインドされている既存のCLBインスタンスを使用できます。アプリケーション用に新しいCLBインスタンスを購入した場合、アプリケーションはそのCLBインスタンスを排他的に使用します。
制限事項
自己管理型KubernetesクラスターまたはACKクラスターのアプリケーションにCLBインスタンスをバインドする場合、以下の制限事項に注意してください。制限事項に準拠しないと、変更に失敗し、アプリケーションにアクセスできなくなる可能性があります。
ACKコンソール、kubectl、またはサードパーティツールを使用して、EDASによって作成されたServiceリソースを削除または変更することはできません。これらのリソースには、edas-domain:edas-adminラベルが付いています。
SLBコンソールを使用して、EDASによって購入されたCLBインスタンスを削除または変更することはできません。
SLBコンソールを使用して、EDASで使用されているCLBインスタンスのリスナーを削除または変更することはできません。
kubectlまたはACKコンソールを使用して、Serviceの外部トラフィックポリシーを変更することはできません。
新しいインターネット向けCLBインスタンスをバインドする
Enterprise Distributed Application Service (EDAS) コンソールにログインします。左側のナビゲーションペインで、 を選択します。上部のナビゲーションバーで、リージョンを選択します。ページの上部で、マイクロサービス名前空間を選択します。Kubernetes クラスター[クラスタータイプ] ドロップダウンリストから を選択し、管理するアプリケーションの名前をクリックします。
[アプリケーション概要] ページで、
SLB(パブリックネットワーク)[アクセス設定] セクションの の横にある アイコンをクリックします。説明アプリケーションにCLBインスタンスをバインドしている場合、CLBインスタンスのIPアドレスとポート番号が表示されます。
アイコンをクリックしてコンフィギュレーターを変更するか、
アイコンをクリックしてアプリケーションからCLBインスタンスのバインドを解除できます。[ロードバランシング(パブリックネットワーク)] ダイアログボックスで、次の表に示すパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
SLBの選択
バインドするSLBインスタンス。ドロップダウンリストから [SLBの作成] または既存のSLBインスタンスを選択できます。
スケジューリングアルゴリズム
スケジューリングに使用されるアルゴリズム。有効な値:[RR] および [WRR]。
外部トラフィックポリシー
[SLBの作成] を選択すると、[外部トラフィックポリシー] パラメーターの下に表が表示されます。表には、SLBリソースとアカウント残高のチェックの状態と説明、選択できるインターネット向けSLBインスタンスの仕様、作成するSLBインスタンスの数、課金方法、サブスクリプションSLBインスタンスの有効期間、価格が記載されています。[価格の表示] をクリックして、SLBの価格を表示できます。
有効な値:[ローカル] および [クラスター]。
[ローカル]:Serviceがデプロイされているノード上のPodにのみトラフィックをルーティングします。 [ローカル] に設定すると、Serviceに対応するPodがデプロイされているノードのみがSLBインスタンスのバックエンドサーバーとして追加されます。トラフィックは、クラスター内の他のノードのPodにはルーティングされません。SLBインスタンスの負荷分散機能と組み合わせることで、このポリシーは優れたパフォーマンスを提供し、レイヤー 4 の送信元IPアドレスを保持できます。
説明[ローカル] に設定する場合は、[スケジューリングアルゴリズム] パラメーターを [WRR] に設定することをお勧めします。コンテナークラスターでは、Container Controller Manager(CCM)は、ノードにデプロイされているPodの数に基づいて、バックエンドサーバーとして使用されるノードの重みを調整できます。加重ラウンドロビン(WRR)アルゴリズムは、より良い負荷分散パフォーマンスを得るのに役立ちます。
[クラスター]:クラスター内の他のノード上のPodにネットワークトラフィックをルーティングします。
説明[クラスター] に設定すると、クラスターのすべてのノードがSLBインスタンスのバックエンドサーバーとして追加されます。アクセスされたノードでPodが起動されていなくても、アクセスリクエストをPodに転送できます。この場合、レイヤー 4 の送信元IPアドレスは保持されません。
SLBインスタンスの既存のリスニング情報
このパラメーターは、[SLBの選択] ドロップダウンリストから既存のSLBインスタンスを選択した場合にのみ表示されます。ネットワークプロトコル、ポート番号、コンテナポート番号を表示できます。
TCP | HTTP
SLBポート(アプリケーション):インターネット向けSLBインスタンスのフロントエンドポート。このポートを使用して、アプリケーションにアクセスできます。有効な値:1~65535。
コンテナポート(ターゲットポート):プロセスがリッスンするポート。このポートは、アプリケーションによって定義されます。たとえば、Webアプリケーションのデフォルトポートは 8080 です。
UDP
SLBポート(アプリケーション):インターネット向けSLBインスタンスのフロントエンドポート。このポートを使用して、アプリケーションにアクセスできます。有効な値:1~65535。
コンテナポート(ターゲットポート):プロセスがリッスンするポート。このポートは、アプリケーションによって定義されます。
HTTPSプロトコル
HTTPSポート(アプリケーション):インターネット向けSLBインスタンスのフロントエンドポート。このポートを使用して、アプリケーションにアクセスできます。有効な値:1~65535。
SSL証明書:SSL証明書。アップロードされたSSL証明書をドロップダウンリストから選択できます。
コンテナポート(ターゲットポート):プロセスがリッスンするポート。このポートは、アプリケーションによって定義されます。たとえば、Webアプリケーションのデフォルトポートは 8080 です。
説明複数のリスナーがサポートされています。[リスナーの追加] をクリックして、複数のリスナーを設定できます。
アプリケーションへのアクセスリクエストの数が既存のSLBインスタンスの仕様を超える場合は、手順 2 から 手順 3 を繰り返して、SLBインスタンスを追加します。
説明CLBインスタンスの仕様メトリックには、[最大接続数]、[1秒あたりの新規接続数]、[1秒あたりのクエリ数] が含まれます。アプリケーションへのアクセスリクエストの数が予想よりも多い場合は、トラフィックの負荷を分散するために、より多くのCLBインスタンスをバインドできます。
結果を確認する
ブラウザーのアドレスバーに、<CLBインスタンスのIPアドレス>:<CLBインスタンスのポート番号>(例:115.xx.xx.xx:80)と入力します。次に、Enterキーを押して、目的のアプリケーションのホームページに移動します。
SLB(パブリックネットワーク) の横に IP アドレスとポート番号が [アプリケーション概要] ページに表示されない場合は、バインドに失敗しています。この場合は、[変更レコード] ページに移動して変更の詳細を表示し、変更レコードに基づいて問題のトラブルシューティングを行うことができます。
新しい内部向けCLBインスタンスをバインドする
Enterprise Distributed Application Service (EDAS) コンソールにログインします。左側のナビゲーションペインで、 を選択します。上部のナビゲーションバーで、リージョンを選択します。ページの上部で、マイクロサービス名前空間を選択します。Kubernetes クラスター[クラスタータイプ] ドロップダウンリストから を選択し、管理するアプリケーションの名前をクリックします。
[アプリケーション概要] ページで、
SLB(プライベートネットワーク)[アクセス設定] セクションの の横にある アイコンをクリックします。説明アプリケーションにCLBインスタンスをバインドしている場合、CLBインスタンスのIPアドレスとポート番号が表示されます。
アイコンをクリックしてコンフィギュレーターを変更するか、
アイコンをクリックしてアプリケーションからCLBインスタンスのバインドを解除できます。[SLB(プライベートネットワーク)] ダイアログボックスで、次の表に示すパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
SLBの選択
バインドするSLBインスタンス。ドロップダウンリストから [SLBの作成] または既存のSLBインスタンスを選択できます。
スケジューリングアルゴリズム
スケジューリングに使用されるアルゴリズム。有効な値:[RR] および [WRR]。
外部トラフィックポリシー
[SLBの作成] を選択すると、[外部トラフィックポリシー] パラメーターの下に表が表示されます。表には、SLBリソースとアカウント残高のチェックの状態と説明、選択できる内部向けSLBインスタンスの仕様、作成するSLBインスタンスの数、課金方法、サブスクリプションSLBインスタンスの有効期間、価格が記載されています。
有効な値:[ローカル] および [クラスター]。
[ローカル]:Serviceがデプロイされているノード上のPodにのみトラフィックをルーティングします。[ローカル] に設定すると、Serviceに対応するPodがデプロイされているノードのみがSLBインスタンスのバックエンドサーバーとして追加されます。トラフィックは、クラスター内の他のノードのPodにはルーティングされません。SLBインスタンスの負荷分散機能と組み合わせることで、このポリシーは優れたパフォーマンスを提供し、レイヤー 4 の送信元IPアドレスを保持できます。
説明[ローカル] に設定する場合は、[スケジューリングアルゴリズム] パラメーターを [WRR] に設定することをお勧めします。コンテナークラスターでは、CCMは、ノードにデプロイされているPodの数に基づいて、バックエンドサーバーとして使用されるノードの重みを調整できます。WRRアルゴリズムは、より良い負荷分散パフォーマンスを得るのに役立ちます。
[クラスター]:クラスター内の他のノード上のPodにネットワークトラフィックをルーティングします。
説明[クラスター] に設定すると、クラスターのすべてのノードがSLBインスタンスのバックエンドサーバーとして追加されます。アクセスされたノードでPodが起動されていなくても、アクセスリクエストをPodに転送できます。この場合、レイヤー 4 の送信元IPアドレスは保持されません。
SLBインスタンスの既存のリスニング情報
このパラメーターは、[SLBの選択] ドロップダウンリストから既存のSLBインスタンスを選択した場合にのみ表示されます。ネットワークプロトコル、ポート番号、コンテナポート番号を表示できます。
TCP | HTTP
SLBポート(アプリケーション):内部向けSLBインスタンスのフロントエンドポート。このポートを使用して、アプリケーションにアクセスできます。有効な値:1~65535。
コンテナポート(ターゲットポート):プロセスがリッスンするポート。このポートは、アプリケーションによって定義されます。たとえば、Webアプリケーションのデフォルトポートは 8080 です。
HTTPSプロトコル
HTTPSポート(アプリケーション):内部向けSLBインスタンスのフロントエンドポート。このポートを使用して、アプリケーションにアクセスできます。有効な値:1~65535。
SSL証明書:SSL証明書。アップロードされたSSL証明書をドロップダウンリストから選択できます。
コンテナポート(ターゲットポート):プロセスがリッスンするポート。このポートは、アプリケーションによって定義されます。たとえば、Webアプリケーションのデフォルトポートは 8080 です。
説明複数のリスナーがサポートされています。[リスナーの追加] をクリックして、複数のリスナーを設定できます。
アプリケーションへのアクセスリクエストの数が既存のSLBインスタンスの仕様を超える場合は、手順 2 から 手順 3 を繰り返して、SLBインスタンスを追加します。
説明CLBインスタンスの仕様メトリックには、[最大接続数]、[1秒あたりの新規接続数]、[1秒あたりのクエリ数] が含まれます。アプリケーションへのアクセスリクエストの数が予想よりも多い場合は、トラフィックの負荷を分散するために、より多くのCLBインスタンスをバインドできます。
結果を確認する
ブラウザーのアドレスバーに、<CLBインスタンスのIPアドレス>:<CLBインスタンスのポート番号>(例:115.xx.xx.xx:80)と入力します。次に、Enterキーを押して、目的のアプリケーションのホームページに移動します。
SLB(パブリックネットワーク) の横に IP アドレスとポート番号が アプリケーション概要 ページに表示されない場合は、バインドに失敗しています。この場合は、[変更履歴] ページに移動して変更の詳細を表示し、変更履歴に基づいて問題のトラブルシューティングを行うことができます。