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

Alibaba Cloud Service Mesh:タイムアウトポリシーの構成

最終更新日:Jan 13, 2025

Service Mesh(ASM)では、アプリケーションが異常と見なされるまでに応答しない期間、つまりリクエストの許容応答レイテンシを指定できます。このトピックでは、タイムアウトポリシーを構成する方法について説明します。

前提条件

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

手順

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

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

      kubectl exec -it deploy/sleep -- sh
    2. 次のコマンドを実行して HTTPBin サービスにリクエストを送信し、HTTPBin サービスが応答メッセージを送信する前に 1 秒遅延するように要求します。

      curl -I httpbin:8000/delay/1

      予想される出力:

      HTTP/1.1 200 OK
      server: envoy
      date: Fri, 11 Aug 2023 09:57:36 GMT
      content-type: application/json
      content-length: 481
      access-control-allow-origin: *
      access-control-allow-credentials: true
      x-envoy-upstream-service-time: 1006

      出力は、応答が 1 秒遅延していることを示しています。

    3. 次のコマンドを実行して HTTPBin サービスにリクエストを送信し、HTTPBin サービスが応答メッセージを送信する前に 2 秒遅延するように要求します。

      curl -I httpbin:8000/delay/2

      予想される出力:

      HTTP/1.1 200 OK
      server: envoy
      date: Fri, 11 Aug 2023 09:57:26 GMT
      content-type: application/json
      content-length: 481
      access-control-allow-origin: *
      access-control-allow-credentials: true
      x-envoy-upstream-service-time: 2004

      出力は、応答が 2 秒遅延していることを示しています。

  2. 次のコンテンツを使用してテストシナリオを作成し、HTTPBin サービスのトラフィックルールを構成し、許容される timeout2s に設定します。詳細については、仮想サービスの管理をご参照ください。

  3. apiVersion: networking.istio.io/v1beta1
    kind: VirtualService
    metadata:
      name: httpbin-vs
      namespace: default
    spec:
      hosts:
        - httpbin
      http:
        - route:
            - destination:
                host: httpbin
          timeout: 2s
  4. 構成が有効になっているかどうかを確認します。

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

      kubectl exec -it deploy/sleep -- sh
    2. 次のコマンドを実行して HTTPBin サービスにリクエストを送信し、HTTPBin サービスが応答メッセージを送信する前に 1 秒遅延するように構成します。

      curl -I httpbin:8000/delay/1

      予想される出力:

      HTTP/1.1 200 OK
      server: envoy
      date: Fri, 11 Aug 2023 09:56:30 GMT
      content-type: application/json
      content-length: 481
      access-control-allow-origin: *
      access-control-allow-credentials: true
      x-envoy-upstream-service-time: 1005

      出力は、応答が 1 秒遅延していることを示しています。

    3. 次のコマンドを実行して HTTPBin サービスにリクエストを送信し、HTTPBin サービスが応答メッセージを送信する前に 2 秒遅延するように構成します。

      curl -I httpbin:8000/delay/2

      予想される出力:

      HTTP/1.1 504 Gateway Timeout
      content-length: 24
      content-type: text/plain
      date: Fri, 11 Aug 2023 09:56:35 GMT
      server: envoy

      HTTP 504 ステータスコードが返されます。これは、タイムアウトポリシーが有効になっていることを示します。