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

Alibaba Cloud Service Mesh:トラフィックミラーリングの設定

最終更新日:Mar 11, 2026

トラフィックミラーリングでは、実際の本番環境トラフィックのコピーをセカンダリのサービスバージョンに送信し、エンドユーザに影響を与えることなく、リアルな本番リクエストに対するテストを実行できます。本番トラフィックを新バージョンに切り替える前に、トラフィックミラーリングを活用して新サービスバージョンの検証を行ってください。

このトピックでは、すべてのトラフィックを helloworld-v1 にルーティングするとともに、各リクエストのコピーを helloworld-v2 にミラーする手順について説明します。

前提条件

事前準備を完了し、helloworld および sleep サービスをデプロイしてください。詳細については、「事前準備」をご参照ください。

手順 1:ベースラインルーティングの確認

ミラーリングルールを適用する前に、通常の負荷分散により、helloworld-v1helloworld-v2 の両方にトラフィックが届いていることを確認します。

  1. sleep Pod 内でシェルを開きます:

    kubectl exec -it deploy/sleep -- sh
  2. helloworld サービスにリクエストを送信します:

    curl helloworld:5000/hello

    応答は、v1 または v2 のいずれかからランダムに返されます:

    Hello version: v1, instance: helloworld-v1-6d77f4c4cf-p****

    または

    Hello version: v2, instance: helloworld-v2-6b96c5684-4****

手順 2:宛先ルールおよび仮想サービスの作成

helloworld サービスに対して v1 および v2 の 2 つのサブセットを定義した後、すべてのトラフィックを v1 にルーティングしつつ、v2 へミラーする仮想サービスを作成します。

宛先ルールの作成

以下の DestinationRule を適用して、v1 および v2 のサブセットを定義します。詳細については、「宛先ルールの管理」をご参照ください。

apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
  name: helloworld
  namespace: default
spec:
  host: helloworld
  subsets:
    - labels:
        version: v1
      name: v1
    - labels:
        version: v2
      name: v2

ミラーリング機能付き仮想サービスの作成

以下の VirtualService を適用します。route ブロックにより、すべてのトラフィックが helloworld-v1 に送信されます。mirror ブロックにより、各リクエストのコピーが helloworld-v2 に送信されます。詳細については、「仮想サービスの管理」をご参照ください。

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: helloworld-vs
  namespace: default
spec:
  hosts:
    - helloworld
  http:
    - mirror:
        host: helloworld
        subset: v2
      route:
        - destination:
            host: helloworld
            subset: v1

手順 3:ミラーリングの確認

v1 がすべての応答を処理することを確認

  1. sleep Pod 内でシェルを開きます:

    kubectl exec -it deploy/sleep -- sh
  2. helloworld サービスにリクエストを送信します:

    curl helloworld:5000/hello

    すべての応答が今後 v1 のみから返されるようになります:

    Hello version: v1, instance: helloworld-v1-6d77f4c4cf-p****

v2 がミラーされたトラフィックを受信していることを確認

Mesh Topology を開き、サービストポロジーを確認します。トポロジーには、クライアントからの応答を処理しているのは v1 のみであるにもかかわらず、リクエストが helloworld-v2 にコピーされている様子が表示されます。詳細については、「Mesh Topology を使用してアプリケーションのトポロジーを表示する」をご参照ください。

Service topology showing mirrored traffic to helloworld-v2