Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Manage service entries

Dernière mise à jour :Aug 11, 2026

Ajoutez une entrée pour un service externe (base de données, API tierce ou système hérité) au registre de services interne d'une instance Service Mesh (ASM). Les services de l'instance ASM peuvent ainsi accéder au service externe.

Chaque entrée de service définit le nom de domaine, les ports, le protocole et l'endpoint d'un service externe.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Une instance ASM

  • Un accès à la console ASM

  • Un service externe cible dont l'hôte, l'adresse IP ou le nom de domaine est connu

Créer une entrée de service

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.

  2. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez Cluster & Workload Management > External Service(ServiceEntry).

  3. Cliquez sur Create from YAML.

  4. Sur la page Create, sélectionnez un namespace et un modèle de scénario, modifiez le code YAML dans l'éditeur, puis cliquez sur Create. Pour obtenir la liste complète des champs d'une entrée de service, consultez la section ServiceEntry de la documentation Istio.

Vérifier le résultat

Après avoir créé une entrée de service, vérifiez son fonctionnement :

  1. Confirmez que l'entrée de service apparaît sur la page External Service(ServiceEntry) avec le nom et le namespace attendus.

  2. Depuis un pod situé dans le mesh, envoyez une requête de test vers le service externe. La sortie attendue confirme que le service externe est accessible via le mesh :

       kubectl exec <pod-name> -c <container-name> -- curl -sI https://www.aliyun.com | grep "HTTP/"
       HTTP/2 200

Modifier une entrée de service

  1. Sur la page des détails de l'instance ASM, choisissez Cluster & Workload Management > External Service(ServiceEntry) dans le volet de navigation de gauche.

  2. Recherchez l'entrée de service à modifier et cliquez sur YAML dans la colonne Actions.

  3. Dans la boîte de dialogue Edit, mettez à jour la configuration et cliquez sur OK.

Supprimer une entrée de service

  1. Sur la page des détails de l'instance ASM, choisissez Cluster & Workload Management > External Service(ServiceEntry) dans le volet de navigation de gauche.

  2. Recherchez l'entrée de service à supprimer et cliquez sur Delete dans la colonne Actions.

  3. Dans le message Submit, cliquez sur OK.

Important

La suppression d'une entrée de service retire immédiatement l'accès au service externe pour toutes les charges de travail du mesh. Avant de supprimer une entrée, assurez-vous qu'aucune charge de travail active n'en dépend.

Référence des champs d'entrée de service

Champs

Champ Description
hosts Les noms DNS associés au service externe. Pour le protocole HTTP, le proxy fait correspondre l'en-tête Host. Pour HTTPS/TLS, il fait correspondre la valeur SNI. Prend en charge les caractères génériques (par exemple, *.aliyun.com).
addresses Adresses IP virtuelles pour le service. Obligatoire pour les services TCP qui ne disposent pas d'en-tête Host ni de SNI.
ports Les ports exposés par le service externe. Les noms de port doivent respecter les conventions de dénomination indiquées dans la section Conventions de dénomination des ports ci-dessous.
location MESH_EXTERNAL pour les services situés à l'extérieur du mesh. MESH_INTERNAL pour les charges de travail non gérées (par exemple, les machines virtuelles) qui doivent être traitées comme internes au mesh.
resolution Méthode utilisée par le proxy pour résoudre l'adresse IP du service. Consultez la section Modes de résolution ci-dessous.
exportTo Contrôle les namespaces pouvant accéder à l'entrée de service. La valeur par défaut s'applique à tous les namespaces ("*"). Définissez la valeur sur "." pour restreindre l'accès au seul namespace de création.

Modes de résolution

Le champ resolution contrôle la manière dont le proxy résout l'adresse IP du service externe :

Mode Comportement Cas d'utilisation
DNS Interroge le DNS pour résoudre l'hôte et achemine le trafic vers l'adresse IP renvoyée. Services identifiés par un nom de domaine. Recommandé pour la plupart des cas d'utilisation.
NONE Transmet le trafic vers l'adresse IP de destination d'origine sans résolution. Connexions déjà routées vers la bonne adresse IP, par exemple via des règles iptables.

Avec la résolution DNS, le proxy ignore l'adresse IP de destination d'origine et interroge le DNS pour l'hôte spécifié afin d'obtenir l'adresse IP routable.

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: aliyun
spec:
  hosts:
  - '*.aliyun.com'
  addresses:
   - 192.168.0.0
   - 172.16.0.0
  location: MESH_EXTERNAL
  ports:
  - number: 443
    protocol: https
    name: https
  resolution: DNS

Conventions de dénomination des ports

Istio utilise les noms de port pour déterminer le protocole de routage du trafic. Nommez les ports dans les entrées de service selon les conventions suivantes :

Protocole Nom du port Nom du port avec suffixe
HTTP http http-\
HTTP2 http2 http2-\
HTTPS https https-\
TLS tls tls-\
gRPC grpc grpc-\
TCP tcp tcp-\
UDP UDP udp-\
Mongo mongo mongo-\
MySQL mysql mysql-\
Redis redis redis-\

Ports Envoy réservés

N'utilisez pas les ports suivants dans les entrées de service. Ces ports sont réservés par le proxy sidecar Envoy et provoqueraient des conflits :

Port Protocole Description
15000 TCP Port d'administration Envoy
15001 TCP Port sortant Envoy
15006 TCP Port entrant Envoy
15020 HTTP Télémétrie Prometheus fusionnée pour le proxy Istio, Envoy et l'application
15021 HTTP Port de vérification de l'état (health check)
15090 HTTP Port de télémétrie Prometheus Envoy

Configuration spécifique au protocole

Les champs requis dans une entrée de service dépendent du protocole utilisé.

HTTP, HTTPS ou TLS

Spécifiez le champ hosts. Le proxy fait correspondre l'en-tête Host (HTTP) ou la valeur SNI (HTTPS/TLS) pour router le trafic.

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: aliyun
spec:
  hosts:
  - www.aliyun.com
  - aliyun.com
  ports:
  - number: 443
    name: https
    protocol: HTTPS
  resolution: DNS
  location: MESH_EXTERNAL

TCP

Spécifiez le champ addresses avec des plages d'adresses IP. Le proxy utilise la correspondance basée sur l'adresse IP, car le protocole TCP ne dispose ni d'en-tête Host ni de SNI.

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: mysql-external
spec:
  hosts:
  - mysql-01.foo.bar
  addresses:
  - 10.0.0.5/32
  - 10.0.0.6/32
  ports:
  - name: tcp
    number: 3306
    protocol: tcp
  location: MESH_EXTERNAL

Plusieurs services TCP sur le même port

Attribuez des adresses IP distinctes à chaque entrée de service afin que le proxy puisse différencier le trafic.

Service 1 :

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: external-svc-1
  namespace: default
spec:
  hosts:
  - fqdna.fqdn.com
  addresses:
  - 10.0.0.0
  location: MESH_EXTERNAL
  ports:
  - name: TCP
    number: 3306
    protocol: TCP
  resolution: DNS

Service 2 :

apiVersion: networking.istio.io/v1beta1
kind: ServiceEntry
metadata:
  name: external-svc-2
  namespace: default
spec:
  hosts:
  - fqdnb.fqdn.com
  addresses:
  - 10.1.0.0
  location: MESH_EXTERNAL
  ports:
  - name: TCP
    number: 3306
    protocol: TCP
  resolution: DNS

Visibilité du namespace

Par défaut, une entrée de service est accessible depuis tous les namespaces du mesh. Pour restreindre la visibilité au namespace où l'entrée est créée, définissez exportTo sur "." :

apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
  name: aliyun
spec:
  hosts:
  - www.aliyun.com
  exportTo:
  - "."
  ports:
  - number: 443
    name: https
    protocol: HTTPS
  resolution: DNS
  location: MESH_EXTERNAL

Étapes suivantes

Après avoir créé une entrée de service, appliquez des politiques de gestion du trafic au service externe à l'aide des ressources VirtualService et DestinationRule. Vous pouvez configurer des délais d'expiration, des tentatives ou l'injection de pannes. L'exemple suivant de VirtualService définit un délai d'expiration de 3 secondes pour les requêtes adressées à un service externe :

apiVersion: networking.istio.io/v1
kind: VirtualService
metadata:
  name: aliyun-ext
spec:
  hosts:
  - www.aliyun.com
  http:
  - timeout: 3s
    route:
    - destination:
        host: www.aliyun.com

Pour plus d'informations sur les champs d'entrée de service et les configurations avancées, consultez la section ServiceEntry de la documentation Istio.