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

Alibaba Cloud Service Mesh:ルースモードトラフィックレーンによるエンドツーエンドトラフィックの管理

最終更新日:Jun 18, 2026

ルースモードトラフィックレーンは、VirtualService や DestinationRule などのカスタムルーティングリソースと連携して、統一されたエンドツーエンドトラフィックのイングレス、きめ細かなルーティング、およびプラグインベースのトラフィック処理を提供します。

機能紹介

ルースモードトラフィックレーンを使用すると、アプリケーションのバージョンを分離できます。トラフィックは、パススルーリクエストヘッダーとトラフィック誘導リクエストヘッダーに基づいて、異なるレーンにルーティングされます。レーン内のサービスが相互に呼び出す際、現在のレーンにターゲットサービスが存在しない場合、トラフィックはベースラインレーンに転送されます。これにより、リンクの整合性が確保され、トラフィック管理が簡素化されます。

ルースモードトラフィックレーンを使用する前に、以下の概念を理解しておく必要があります。

呼び出しチェーンコンテキストのパススルー方法

呼び出しチェーンコンテキストのパススルーは、ルースモードトラフィックレーンの前提条件です。単一の呼び出しチェーンでは、すべてのリクエストが同じリクエストヘッダーを共有する必要があります。

ルースモードトラフィックレーンは、呼び出しチェーンコンテキストをパススルーするための一般的な方法をサポートしています。ご自身のアプリケーションに合ったシナリオを選択してください。

シナリオ 1:トレース ID のパススルー

トレース ID は、以下の特徴を持つリクエストヘッダーです:

  • リクエストヘッダーが呼び出しチェーン全体でパススルーされます。

  • リクエストヘッダーが各呼び出しチェーンで一意です。

トレース ID は、完全な呼び出しチェーンを一意に識別します。その値は通常、ランダムな文字列です。アプリケーションがトレーシングシステムと統合されている場合、トレース ID がパススルーされる可能性が高いです。一般的なトレーシング標準では、x-b3-trace-idx-datadog-trace-id などの、トレース ID 用の一意のリクエストヘッダーが使用されます。

シナリオ 2:カスタムリクエストヘッダーのパススルー

アプリケーションコードで、versionenv といったビジネス上の意味を持つリクエストヘッダーがすでにパススルーされている場合があります。これらのヘッダーは、多くの場合、呼び出しチェーンのバージョンと環境を識別します。このシナリオでは、パススルーされたカスタムリクエストヘッダーをトラフィック誘導リクエストヘッダーとして使用する必要があります。

シナリオ 3:Baggage リクエストヘッダーのパススルー

Baggage は、HTTP ヘッダーに Baggage フィールドを追加することで、分散呼び出しチェーンのプロセス間でコンテキスト情報を渡すための標準的な OpenTelemetry のメカニズムです。フィールド値はキーと値のペアのセットであり、テナント ID、トレース ID、セキュリティ認証情報などのコンテキストデータを伝達でき、コードを変更することなくトレーシングとログの関連付けを可能にします。例:

baggage: userId=alice,serverNode=DF%2028,isProduction=false

Baggage は、呼び出しチェーンコンテキストをパススルーするための標準的な OpenTelemetry のメカニズムであるため、ルースモードトラフィックレーンを設定する際に推奨される方法です。

説明

シナリオ 1 と 3 について:アプリケーションがトレーシングシステムと統合されていない場合、またはコード内で Baggage をパススルーしない場合は、自動計装を使用できます。OpenTelemetry Operator を使用して、自動計装機能をアプリケーションにインジェクションできます。これにより、アプリケーションコードを変更することなく、トレース ID リクエストヘッダーのパススルーが可能になります。自動計装を設定するには、コミュニティドキュメントの手順に従ってください。OpenTelemetry Operator をインストールし、自動計装を設定し、アプリケーションの Pod にアノテーションを追加する必要があります。OpenTelemetry の自動計装は、W3C Baggage や B3 など、分散呼び出しチェーンコンテキストをパススルーするための多くの一般的な標準をサポートしています。コミュニティドキュメントでは、W3C TraceContext と W3C Baggage をパススルーする例が提供されています。詳細については、「自動計装」をご参照ください。

トラフィック誘導リクエストヘッダー

ルースモードトラフィックレーンは、トラフィック誘導リクエストヘッダーを使用してリクエストチェーンにタグを付けます。アプリケーションの既存のビジネス関連ヘッダーと競合しない任意のリクエストヘッダーを指定できます。選択した呼び出しチェーンコンテキストのパススルー方法に基づいて、ルースモードトラフィックレーンは、呼び出しチェーンのすべてのステップでトラフィック誘導リクエストヘッダーが含まれることを保証します。ヘッダーの値はトラフィックレーンの名前です。たとえば、トラフィック誘導リクエストヘッダーとして x-asm-prefer-tag を指定した場合、s1 という名前のレーン内のサービスにリクエストが送信されると、呼び出しチェーン内の後続のリクエストには常に x-asm-prefer-tag: s1 リクエストヘッダーが付与されます。トラフィックレーンは、リクエストヘッダー内のレーンタグを使用して、異なるアプリケーションバージョン用に分離された環境を作成します。

カスタムリクエストヘッダーをパススルーすることを選択した場合は、同じヘッダーをトラフィック誘導リクエストヘッダーとして使用する必要があります。

シナリオ概要

以下のシナリオでは、3 つの異なるリクエストヘッダーのパススルー方法を使用してレーンにトラフィックをルーティングする方法と、カスタムの VirtualService を設定してルースモードレーンにトラフィックを誘導する方法を示します。

関連ドキュメント