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

Alibaba Cloud Service Mesh:ミラーリングの構成

最終更新日:Jan 13, 2025

Service Mesh(ASM)を使用して、サービス宛てのトラフィックのコピーをミラーリングされたサービスに送信できます。このトピックでは、ミラーリングを構成する方法について説明します。

前提条件

準備が完了し、helloworld サービスと sleep サービスがデプロイされています。詳細については、「準備」をご参照ください。

手順

  1. サービス構成が有効になっているかどうかを確認します。

    1. kubeconfig ファイルの情報に基づいて、kubectl を使用して Container Service for Kubernetes(ACK)クラスターに接続し、次のコマンドを実行して sleep サービスの bash を有効にします。

      kubectl exec -it deploy/sleep -- sh
    2. 次のコマンドを実行して、helloworld サービスにリクエストを送信します。

      curl helloworld:5000/hello

      予想される出力:

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

      予想される出力は、helloworld-v1 または helloworld-v2 がランダムにリクエストに応答することです。

  2. helloworld サービスのトラフィックルールを構成し、helloworld-v1 がリクエストを受信して応答するように構成し、リクエストを helloworld-v2 にミラーリングします。

    1. 次のコンテンツを使用して、宛先ルールを構成します。詳細については、「宛先ルールの管理」をご参照ください。

      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
      
    2. 次のコンテンツを使用して、仮想サービスを作成します。詳細については、「仮想サービスの管理」をご参照ください。

      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. 構成が有効になっているかどうかを確認します。

    1. kubeconfig ファイルの情報に基づいて、kubectl を使用して ACK クラスターに接続し、次のコマンドを実行して sleep サービスの bash を有効にします。

      kubectl exec -it deploy/sleep -- sh
    2. 次のコマンドを実行して、helloworld サービスにリクエストを送信します。

      curl helloworld:5000/hello

      予想される出力は、常に helloworld-v1 がリクエストに応答することです。

      Hello version: v1, instance: helloworld-v1-6d77f4c4cf-p****
    3. サービスのトポロジを表示します。詳細については、「メッシュトポロジを使用してアプリケーションのトポロジを表示する」をご参照ください。

      予想される出力:リクエストは helloworld-v2 にコピーされます。

      查看应用网格拓扑.png