ASM に Waypoint プロキシをインストールした後、レイヤー 7 ロードバランシングを使用して、サービス間のトラフィックを比例的に分散できます。 このトピックでは、Bookinfo アプリケーションのサービス間で比例的なトラフィック分散を構成する方法について説明します。
前提条件
「サンプル アプリケーションをデプロイし、暗号化通信のためのアンビエントを有効にする」のすべての操作を完了していること。
Waypoint をデプロイし、デフォルトの名前空間のトラフィックが Waypoint を通過するようにタグを構成していること。
手順
Bookinfo アプリケーションには、reviews サービスの 3 つのバージョンがあります。 次の手順では、v1 バージョンと v2 バージョンの間でトラフィックを比例的に分散する仮想サービスをデプロイします。
reivewsサービスを対象とするリクエストの 90% をreviews-v1に、10% をreviews-v2に送信するようにトラフィックルールを構成します。kubectl apply -f - <<EOF apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: reviews spec: hosts: - reviews http: - name: route route: - destination: host: reviews-v1 weight: 90 - destination: host: reviews-v2 weight: 10 EOFsleep から 100 件のリクエストを送信します。
export RESULT=$(kubectl exec deploy/sleep -- sh -c "for i in \$(seq 1 100); do curl -s http://productpage:9080/productpage | grep reviews-v.-; done")トラフィック比率を確認します。
Bookinfo アプリケーションにアクセスするたびに、2 つの同一のレビューバージョンが返されるため、2 のコマンドの出力数は 200 になります。
reviews-v1 の数をチェックします。
echo $RESULT|grep reviews-v1 |wc -l期待される結果:
178reviews-v2 の数をチェックします。
echo $RESULT|grep reviews-v2 |wc -l期待される結果:
22reviews-v1 と reviews-v2 の比率が約 9:1 であり、仮想サービスで構成された重みと一致していることがわかります。