Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:ASMSwimLaneGroup and ASMSwimLane field reference

Dernière mise à jour :Aug 11, 2026

Service Mesh (ASM) propose deux CustomResourceDefinitions (CRD) pour la gestion des couloirs de trafic : ASMSwimLaneGroup et ASMSwimLane. Ces ressources vous permettent d'isoler des versions spécifiques de services ou des services présentant certaines caractéristiques dans des environnements d'exécution indépendants, appelés couloirs de trafic, puis d'acheminer les requêtes correspondantes vers ces versions.

Fonctionnement conjoint de ces CRD

Une ressource ASMSwimLaneGroup définit ce qu'il faut isoler : les services participant aux couloirs de trafic ainsi que la passerelle d'entrée qui leur achemine les requêtes. Une ressource ASMSwimLane définit comment isoler : quelles versions de pods appartiennent à un couloir et quelles règles de routage s'appliquent.

La relation entre ces ressources est la suivante :

  • Une ressource ASMSwimLaneGroup regroupe plusieurs services et spécifie une passerelle d'entrée partagée.

  • Plusieurs ressources ASMSwimLane sont associées à ce groupe via le libellé swimlane-group: <group-name>. Chaque couloir cible une version spécifique des services regroupés.

ASM prend en charge deux modes de couloir :

  • Mode strict (isPermissive: false ou non défini) : chaque couloir doit contenir tous les services définis dans le groupe.

  • Mode permissif (isPermissive: true) : les couloirs peuvent contenir un sous-ensemble des services du groupe. Les requêtes destinées aux services absents d'un couloir basculent vers un couloir de base.

Exemple de configuration

Le fichier YAML suivant crée un groupe de couloirs nommé mock pour trois services (mocka, mockb, mockc) dans le namespace default. Deux couloirs, v1 et v2, ciblent les pods selon leur libellé version. Un service virtuel est généré à partir de la passerelle Istio ingressgateway située dans le namespace istio-system afin d'acheminer les requêtes vers chaque couloir.

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

Lorsque ces ressources sont appliquées, les appels entre mocka, mockb et mockc restent confinés à la même version. Le couloir v1 n'achemine le trafic que vers les pods v1, tandis que le couloir v2 ne route que vers les pods v2.

Champs ASMSwimLaneGroup

ASMSwimLaneGroup définit un groupe de couloirs de trafic, c'est-à-dire la configuration partagée pour les services et le routage d'entrée au sein de plusieurs couloirs.

ASMSwimLaneGroupSpec

La section spec constitue la configuration principale.

Champ Type Obligatoire Description
services ClusterServiceRef[] Oui Services d'un cluster Kubernetes participant aux couloirs de trafic.
ingress SwimLaneGroupIngressConfiguration Oui Configuration de la passerelle d'entrée pour l'acheminement des requêtes vers différentes versions de service.
isPermissive bool Non Mode du groupe de couloirs. true : mode permissif. false ou non défini : mode strict. Pour plus d'informations, consultez la rubrique Présentation des couloirs de trafic.
permissiveModeConfiguration PermissiveSwimLaneGroupConfiguration Non Paramètres du mode permissif. Requis lorsque isPermissive est défini sur true.

ClusterServiceRef

Référence un service Kubernetes participant aux couloirs de trafic.

Champ Type Obligatoire Description
name string Oui Nom du service Kubernetes.
namespace string Oui Namespace du service Kubernetes.
cluster ClusterRef Non Référence au cluster Kubernetes. Utilisez ce champ lorsque l'instance ASM gère plusieurs clusters.

ClusterRef

Identifie un cluster Kubernetes ajouté à l'instance ASM.

Champ Type Obligatoire Description
name string Non Nom affiché du cluster Kubernetes.
id string Non ID du cluster Kubernetes.

SwimLaneGroupIngressConfiguration

Configure la passerelle d'entrée qui achemine les requêtes vers les services du groupe de couloirs.

ChampTypeObligatoireDescription
gatewaySwimLaneGatewayConfigurationOuiPasserelle Istio associée à la passerelle d'entrée.
ingressRoutingSwimLaneGroupIngressRouteConfigurationNonStratégie de routage des requêtes pour le groupe de couloirs.
Remarque

Requiert ASM v1.21.6.92 ou version ultérieure.

SwimLaneGatewayConfiguration

Spécifie la passerelle Istio associée à la passerelle d'entrée.

ChampTypeObligatoireDescription
namestringOuiNom de la passerelle Istio.
namespacestringOuiNamespace de la passerelle Istio.
typestringOuiType de la passerelle Istio. Définissez cette valeur sur ASM, ce qui indique une passerelle Istio fournie par ASM.

SwimLaneGroupIngressRouteConfiguration

Définit la stratégie de routage des requêtes pour le groupe de couloirs.

Champ Type Obligatoire Description
ingressRoutingStrategy string Non Stratégie de routage. Valeurs valides : rule_based (par défaut) : chaque couloir définit ses propres règles de routage via ingressRules. weighted : les requêtes sont réparties entre les couloirs selon un poids, en utilisant une règle de routage partagée.
weightedRoutingRule WeightedSwimLaneIngressConfiguration Non Règle unifiée de correspondance des requêtes pour le routage pondéré. Prend effet uniquement lorsque ingressRoutingStrategy est défini sur weighted.

WeightedSwimLaneIngressConfiguration

Définit la règle unifiée de correspondance des requêtes utilisée avec le routage pondéré.

Champ Type Obligatoire Description
hosts []string Oui Hôtes à faire correspondre. Doivent être déclarés dans la passerelle Istio associée au groupe de couloirs.
requestMatches SwimLaneIngressRequestMatch Non Conditions de correspondance pour l'URI et les en-têtes.

PermissiveSwimLaneGroupConfiguration

Configure le mode permissif pour un groupe de couloirs de trafic. Obligatoire lorsque isPermissive est défini sur true.

Champ Type Obligatoire Description
routeHeader string Oui En-tête de requête déterminant le couloir auquel appartient une requête lors de son parcours dans la chaîne d'appels. Les requêtes entrant par la passerelle d'entrée doivent porter cet en-tête.
traceHeader string Oui En-tête de traçage de bout en bout (E2E) qui se propage tout au long de la chaîne d'appels. Doit être unique par requête lorsqu'il diffère de routeHeader. Exemple : x-b3-trace-id.
fallbackTarget string Non Nom du couloir de base. Lorsqu'une requête ne peut pas atteindre la version cible du service dans son couloir désigné, elle bascule vers le même service dans ce couloir de base.

Champs ASMSwimLane

ASMSwimLane définit un couloir de trafic unique, c'est-à-dire un ensemble de versions de services isolées conjointement. Associez un couloir à un groupe de couloirs en ajoutant le libellé swimlane-group: <group-name> à la ressource ASMSwimLane.

ASMSwimLaneSpec

La section spec constitue la configuration principale.

Champ Type Obligatoire Description
labelSelector map Oui Libellés utilisés pour faire correspondre les pods des services inclus dans ce couloir. Utilise généralement des libellés de version, tels que version: v1.
services ClusterServiceRef[] Non Services déployés dans ce couloir. En mode strict, omettez ce champ : chaque couloir doit inclure tous les services du groupe. En mode permissif, spécifiez les services présents dans ce couloir. La liste doit être un sous-ensemble du champ services du groupe. Les requêtes destinées aux services absents de ce couloir sont transférées vers le couloir de base.
ingressRules SwimLaneIngressRule[] Non Règles de routage qu'ASM convertit automatiquement en un service virtuel pour la passerelle d'entrée. Si omises, vous devez créer manuellement un service virtuel.
ingressWeight SwimLaneIngressWeight Non Poids de routage pour ce couloir lorsque le groupe utilise le routage pondéré (ingressRoutingStrategy: weighted).

SwimLaneIngressRule

Définit une règle de routage pour la passerelle d'entrée. ASM convertit chaque règle en une partie d'un service virtuel.

Champ Type Obligatoire Description
online bool Oui Indique si cette règle est active. Le service virtuel n'est généré que si cette valeur est définie sur true.
hosts string[] Oui Hôtes à faire correspondre. Correspond au champ hosts du service virtuel généré.
name string Non Nom de cette règle de routage. Correspond au champ name sous http dans le service virtuel généré.
match SwimLaneIngressRequestMatch Non Conditions de correspondance des requêtes. Correspond au champ match sous http dans le service virtuel généré.
route SwimLaneIngressRoute Oui Service de destination pour les requêtes correspondantes. Correspond au champ route sous http dans le service virtuel généré.

SwimLaneIngressWeight

Spécifie le poids de routage d'un couloir lorsque le routage pondéré est utilisé.

Champ Type Obligatoire Description
weight int Non Poids de routage pour ce couloir. La valeur par défaut est 0. ASM utilise les poids de tous les couloirs pour calculer le ratio de distribution des requêtes.
destination RouteDestination Oui Service de destination pour le routage pondéré.

SwimLaneIngressRequestMatch

Définit les conditions de correspondance des requêtes par URI ou par en-têtes.

Champ Type Obligatoire Description
uri StringMatch Non Condition de correspondance de l'URI. Prend en charge exact, prefix et regex (syntaxe RE2).
headers mapStringMatch> Non Conditions de correspondance des en-têtes. Les clés correspondent aux noms d'en-têtes en minuscules avec des traits d'union (par exemple, x-request-id). Les valeurs définissent le type de correspondance.

StringMatch

Définit la méthode de correspondance d'une valeur de chaîne. Spécifiez exactement un champ.

Champ Type Obligatoire Description
exact string Non Correspondance exacte de la chaîne.
prefix string Non Correspondance par préfixe.
regex string Non Correspondance par expression régulière RE2. Consultez la rubrique Syntaxe RE2.

SwimLaneIngressRoute

Spécifie le service de destination pour les requêtes correspondantes.

Champ Type Obligatoire Description
destination RouteDestination Oui Service de destination.

RouteDestination

Identifie le service Kubernetes cible.

ChampTypeObligatoireDescription
hoststringOuiNom de domaine complet (FQDN) du service Kubernetes. Exemple : mocka.default.svc.cluster.local.
portNumintNonNuméro de port du service. Exemple : 8000.
Remarque

Requiert ASM v1.21.4.104 ou version ultérieure.

Rubriques connexes