Alibaba Cloud Service Mesh (ASM) は、アプリケーションのメッシュトポロジービューを含む Service Mesh を提供します。このトピックでは、Bookinfo アプリケーションを使用して、メッシュトポロジーによって ASM のローカリティ認識ルーティング (同一 AZ ルーティングとも呼ばれる) を観察する方法について説明します。
前提条件
ASM インスタンスが作成されています。詳細については、「ASM インスタンスの作成」をご参照ください。
ACK マネージドクラスターが作成されています。詳細については、「ACK マネージドクラスターの作成」をご参照ください。
-
ご利用の ACK クラスターのノードが、少なくとも 2 つのアベイラビリティゾーンに分散されています。このトピックでは、例として cn-hangzhou-j と cn-hangzhou-k を使用します。Container Service for Kubernetes コンソールで、クラスターノードの ECS インスタンスのリージョンとアベイラビリティゾーンを確認できます。詳細については、「リージョンとアベイラビリティゾーン」をご参照ください。
-
イングレスゲートウェイとメッシュトポロジーにアクセスできることを確認します。詳細については、「ASM の概要」をご参照ください。
-
Helm v3 クライアントをインストールします。詳細については、「Helm」をご参照ください。
ステップ 1:サンプルアプリケーションのデプロイ
-
サンプルアプリケーションの Helm チャートをダウンロードします。
-
パッケージを asm-az-routing ディレクトリに展開し、values.yaml ファイルでアベイラビリティゾーンを指定します。
zone1: cn-hangzhou-j zone2: cn-hangzhou-k -
次のコマンドを実行して、サンプルアプリケーションをデプロイします。
helm install --namespace azdemo azdemo ./ -
Pod が実行中になったら、次のコマンドを実行して、イングレスゲートウェイ経由でサービスにアクセスします。
while true; do curl -I http://{replace-with-your-gateway-address}/productpage ; echo;sleep 1; done
ステップ 2:メッシュトポロジーの設定
-
ASM コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
-
[メッシュ管理] ページで、ASM インスタンスの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
-
グリッドトポロジー ページで、トークンをコピーし、新しいページで ASM メッシュトポロジを開きます。 をクリックします。
-
[メッシュトポロジーにログイン] ページで、トークンを ログイン トークン テキストボックスに貼り付け、[ログイン] をクリックします。
-
対象の名前空間を選択します。[表示] ドロップダウンリストから、[トラフィック分散]、[トラフィックレート]、[トラフィックアニメーション] を選択し、[サービスノード] チェックボックスの選択を解除します。
次の図に例を示します。

ステップ 3:自動ルートフェールオーバーの検証
-
サービスの停止をシミュレートするために、最初のアベイラビリティゾーンの reviews-v1 ワークロードを 0 Pod にスケールダウンします。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、お使いのクラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
対象アプリケーションのアクション列で、スケーリングをクリックし、必要な Pod 数を0 に設定してOKをクリックします。
-
ステップ 2 で設定したメッシュトポロジーページに戻り、トポロジーを観察します。
メッシュトポロジーは、productpage からのトラフィックがフェールオーバーしたことを示しています。reviews-v1 ワークロードが利用できなくなると、トラフィックは reviews-v2 にリダイレクトされます。reviews-v2 サービスは、v1 ワークロードからのトラフィック (約 0.38 rps) と v2 ワークロードからのトラフィック (約 0.36 rps) の両方を処理し、結合されたトラフィック (約 0.73 rps) を ratings-v2 サービスに転送します。これにより、ローカルサービスが利用できない場合に、トラフィックが別のアベイラビリティゾーンのサービスに自動的にフェールオーバーすることが確認できます。
ステップ 4:同一 AZ ルーティングの検証
-
サービスの回復をシミュレートするために、最初のアベイラビリティゾーンの reviews-v1 ワークロードを 1 Pod にスケールアップします。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、クラスターリスト をクリックします。
クラスターリスト ページで、対象クラスターの名前をクリックします。左側のナビゲーションウィンドウで、 をクリックします。
-
対象のアプリケーションの アクション 列で スケーリング をクリックし、必要な Pod 数 を 1 に設定して OK をクリックします。
-
ステップ 2 で設定したメッシュトポロジーページに戻り、トポロジーを観察します。
図に示すように、productpage v1 は、同じアベイラビリティゾーンにある reviews サービスである reviews-v1 にトラフィックを戻します。これにより、同一 AZ ルーティングが成功したことが確認できます。
