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

Alibaba Cloud Service Mesh:ASMSwimLaneGroup および ASMSwimLane フィールドリファレンス

最終更新日:Mar 12, 2026

Service Mesh (ASM) は、トラフィックレーン管理のために2つの CustomResourceDefinitions (CRD) である ASMSwimLaneGroup と ASMSwimLane を提供します。これらを組み合わせることで、特定のサービスバージョンや特定の特性を持つサービスを、トラフィックレーンと呼ばれる独立した実行環境に分離し、一致するリクエストをそれらのバージョンにルーティングできます。

これらの CRD の連携

ASMSwimLaneGroup は、分離する**対象**を定義します。つまり、トラフィックレーンに参加するサービスと、それらにリクエストをルーティングするイングレスゲートウェイです。ASMSwimLane は、分離する**方法**を定義します。つまり、どの Pod バージョンがレーンに属し、どのルーティングルールが適用されるかです。

関係は次のとおりです。

  • 1つの ASMSwimLaneGroup は、複数のサービスをグループ化し、共有イングレスゲートウェイを指定します。

  • 複数の ASMSwimLane リソース は、ラベル swimlane-group: <group-name> を介してそのグループに関連付けられます。各レーンは、グループ化されたサービスの特定のバージョンをターゲットとします。

ASM は2つのレーンモードをサポートしています。

  • Strict モード (isPermissive: false または未設定) -- すべてのレーンは、グループで定義されているすべてのサービスを含む必要があります。

  • Permissive モード (isPermissive: true) -- レーンは、グループのサービスの一部を含むことができます。不足しているサービスへのリクエストは、ベースラインレーンにフォールバックします。

設定例

次の YAML は、default 名前空間内の3つのサービス (mockamockbmockc) に対して、mock という名前のレーングループを作成します。v1v2 の2つのレーンは、それらの version ラベルによって Pod をマッチングします。istio-system 内の Istio ゲートウェイ ingressgateway から仮想サービスが生成され、各レーンにリクエストをルーティングします。

apiVersion: istio.alibabacloud.com/v1
kind: ASMSwimLaneGroup
metadata:
  name: mock
spec:
  ingress:
    gateway:
      name: ingressgateway
      namespace: istio-system
      type: ASM
  services:
  - name: mocka
    namespace: default
  - name: mockb
    namespace: default
  - name: mockc
    namespace: default
---
apiVersion: istio.alibabacloud.com/v1
kind: ASMSwimLane
metadata:
  labels:
    swimlane-group: mock
  name: v1
spec:
  ingressRules:
  - hosts:
    - '*'
    match:
      uri:
        exact: /mock
    name: r1
    online: true
    route:
      destination:
        host: mocka.default.svc.cluster.local
  labelSelector:
    version: v1
---
apiVersion: istio.alibabacloud.com/v1
kind: ASMSwimLane
metadata:
  labels:
    swimlane-group: mock
  name: v2
spec:
  ingressRules:
  - hosts:
    - '*'
    match:
      uri:
        exact: /mock
    name: r2
    online: true
    route:
      destination:
        host: mocka.default.svc.cluster.local
  labelSelector:
    version: v2

これらのリソースが適用されると、mockamockb、および mockc 間の呼び出しは同じバージョン内に留まります。v1 レーンは v1 Pod にのみルーティングし、v2 レーンは v2 Pod にのみルーティングします。

ASMSwimLaneGroup フィールド

ASMSwimLaneGroup は、トラフィックレーングループを定義します。これは、複数のレーンにわたるサービスと Ingress ルーティングの共有構成です。

ASMSwimLaneGroupSpec

spec セクションは、コア構成です。

フィールドタイプ必須説明
servicesClusterServiceRef[]Yesトラフィックレーンに参加する Kubernetes クラスター内のサービス。
ingressSwimLaneGroupIngressConfigurationYes異なるサービスバージョンへのリクエストをルーティングするためのイングレスゲートウェイ構成。
isPermissiveboolNoレーングループモード。true:Permissive モード。false または未設定:Strict モード。詳細については、「トラフィックレーンの概要」をご参照ください。
permissiveModeConfigurationPermissiveSwimLaneGroupConfigurationNoPermissive モード設定。isPermissivetrue の場合に必須です。

ClusterServiceRef

トラフィックレーンに参加する Kubernetes サービスを参照します。

フィールドタイプ必須説明
namestringYesKubernetes サービスの名前。
namespacestringYesKubernetes サービスの名前空間。
clusterClusterRefNoKubernetes クラスターへの参照。ASM インスタンスが複数のクラスターを管理している場合に使用します。

ClusterRef

ASM インスタンスに追加された Kubernetes クラスターを識別します。

フィールドタイプ必須説明
namestringNoKubernetes クラスターの表示名。
idstringNoKubernetes クラスターの ID。

SwimLaneGroupIngressConfiguration

レーングループ内のサービスにリクエストをルーティングするイングレスゲートウェイを構成します。

フィールドタイプ必須説明
gatewaySwimLaneGatewayConfigurationYesイングレスゲートウェイに関連付けられた Istio ゲートウェイ。
ingressRoutingSwimLaneGroupIngressRouteConfigurationNoレーングループのリクエストルーティング戦略。
説明

ASM v1.21.6.92 以降が必要です。

SwimLaneGatewayConfiguration

イングレスゲートウェイに関連付けられた Istio ゲートウェイを指定します。

フィールドタイプ必須説明
namestringYesIstio ゲートウェイの名前。
namespacestringYesIstio ゲートウェイの名前空間。
typestringYesIstio ゲートウェイのタイプ。ASM が提供する Istio ゲートウェイを示す ASM に設定します。

SwimLaneGroupIngressRouteConfiguration

レーングループのリクエストルーティング戦略を定義します。

フィールドタイプ必須説明
ingressRoutingStrategystringNoルーティング戦略。有効な値:rule_based (デフォルト) -- 各レーンは ingressRules を介して独自のルーティングルールを定義します。weighted -- 共有ルーティングルールを使用して、重みによってリクエストがレーン全体に分散されます。
weightedRoutingRuleWeightedSwimLaneIngressConfigurationNo重みベースのルーティングのための統合リクエストマッチングルール。ingressRoutingStrategyweighted の場合にのみ有効です。

WeightedSwimLaneIngressConfiguration

重みベースのルーティングで使用される統合リクエストマッチングルールを定義します。

フィールドタイプ必須説明
hosts[]stringYesマッチングするホスト。レーングループに関連付けられた Istio ゲートウェイで宣言する必要があります。
requestMatchesSwimLaneIngressRequestMatchNoURI およびヘッダーマッチング条件。

PermissiveSwimLaneGroupConfiguration

トラフィックレーングループの Permissive モードを構成します。isPermissivetrue の場合に必須です。

フィールドタイプ必須説明
routeHeaderstringYesリクエストがコールチェーンを通過する際に、どのレーンに属するかを決定するリクエストヘッダー。イングレスゲートウェイを介して入るリクエストは、このヘッダーを保持する必要があります。
traceHeaderstringYesコールチェーン全体に伝播するエンドツーエンド (E2E) パススルーヘッダー。routeHeader と異なる場合は、リクエストごとに一意である必要があります。例:x-b3-trace-id
fallbackTargetstringNoベースラインレーンの名前。リクエストが指定されたレーン内のターゲットサービスバージョンに到達できない場合、リクエストはこのベースラインレーン内の同じサービスにフォールバックします。

ASMSwimLane フィールド

ASMSwimLane は、単一のトラフィックレーン、つまり一緒に分離されるサービスバージョンのセットを定義します。ASMSwimLane リソースにラベル swimlane-group: <group-name> を追加することで、レーンをレーングループに関連付けます。

ASMSwimLaneSpec

spec セクションは、コア構成です。

フィールドタイプ必須説明
labelSelectormap<string, string>Yesこのレーン内のサービスに対して Pod をマッチングするために使用されるラベル。通常、version: v1 のようなバージョンラベルを使用します。
servicesClusterServiceRef[]Noこのレーンにデプロイされたサービス。Strict モードでは、このフィールドを省略します。すべてのレーンはグループからのすべてのサービスを含む必要があります。Permissive モードでは、このレーン内のサービスを指定します。リストはグループの services フィールドのサブセットである必要があります。このレーンから欠落しているサービスへのリクエストは、ベースラインレーンに転送されます。
ingressRulesSwimLaneIngressRule[]NoASM がイングレスゲートウェイ用の仮想サービスに自動的に変換するルーティングルール。省略した場合、仮想サービスを手動で作成します。
ingressWeightSwimLaneIngressWeightNoグループが重みベースのルーティング (ingressRoutingStrategy: weighted) を使用する場合の、このレーンのルーティングの重み。

SwimLaneIngressRule

イングレスゲートウェイのルーティングルールを定義します。ASM は各ルールを仮想サービスの一部に変換します。

フィールドタイプ必須説明
onlineboolYesこのルールがアクティブかどうか。仮想サービスは、これが true の場合にのみ生成されます。
hostsstring[]Yesマッチングするホスト。生成された仮想サービスの hosts フィールドにマッピングされます。
namestringNoこのルーティングルールの名前。生成された仮想サービスの http の下の name フィールドにマッピングされます。
matchSwimLaneIngressRequestMatchNoリクエストマッチング条件。生成された仮想サービスの http の下の match フィールドにマッピングされます。
routeSwimLaneIngressRouteYesマッチしたリクエストの送信先サービス。生成された仮想サービスの http の下の route フィールドにマッピングされます。

SwimLaneIngressWeight

重みベースのルーティングが使用される場合のレーンのルーティングの重みを指定します。

フィールドタイプ必須説明
weightintNoこのレーンのルーティングの重み。デフォルトは 0 です。ASM はすべてのレーンの重みを使用して、リクエスト分散比率を計算します。
destinationRouteDestinationYes重みベースのルーティングの送信先サービス。

SwimLaneIngressRequestMatch

URI またはヘッダーによるリクエストのマッチング条件を定義します。

フィールドタイプ必須説明
uriStringMatchNoURI マッチング条件。exactprefix、および regex (RE2 構文) をサポートします。
headersmap<string, StringMatch>Noヘッダーマッチング条件。キーはハイフン付きの小文字のヘッダー名 (例:x-request-id) です。値はマッチタイプを定義します。

StringMatch

文字列値のマッチング方法を定義します。フィールドを1つだけ指定します。

フィールドタイプ必須説明
exactstringNo完全一致の文字列マッチ。
prefixstringNoプレフィックスマッチ。
regexstringNoRE2 正規表現マッチ。「RE2 構文」をご参照ください。

SwimLaneIngressRoute

マッチしたリクエストの送信先サービスを指定します。

フィールドタイプ必須説明
destinationRouteDestinationYes送信先サービス。

RouteDestination

ターゲット Kubernetes サービスを識別します。

フィールドタイプ必須説明
hoststringYesKubernetes サービスの完全修飾ドメイン名。例:mocka.default.svc.cluster.local
portNumintNoサービスポート番号。例:8000
説明

ASM v1.21.4.104 以降が必要です。

関連トピック