Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Exposer une application localhost à d'autres pods

Dernière mise à jour :Aug 28, 2026

Configurez une ressource Sidecar afin que les autres pods du cluster puissent accéder, via un Service, à une application qui écoute sur localhost.

Pourquoi les autres pods ne peuvent pas accéder à une application localhost

localhost est une adresse de bouclage accessible uniquement depuis l'intérieur du même pod. Lorsqu'une application déployée dans un cluster écoute sur localhost, les autres pods du cluster ne peuvent pas y accéder, même si vous exposez le port de service de l'application via un Service.

Les exemples suivants illustrent comment des applications écrites dans différents langages écoutent sur localhost :

  • Golang : net.Listen("tcp", "localhost:8080")

  • Node.js : http.createServer().listen(8080, "localhost")

  • Python : socket.socket().bind(("localhost", 8083))

Choisir une option

Deux options s'offrent à vous pour exposer votre application. Choisissez-en une en fonction de la possibilité ou non de modifier le code de l'application :

  • Option 1 — Modifiez l'adresse réseau sur laquelle l'application écoute. Privilégiez cette approche si vous pouvez modifier le code de l'application.

  • Option 2 — Utilisez Service Mesh (ASM) pour exposer une application qui écoute sur localhost. Cette solution convient si vous ne souhaitez pas modifier le code de l'application.

Option 1 : Modifier l'adresse réseau sur laquelle l'application écoute

Pour exposer votre application, modifiez son code afin qu'elle écoute sur 0.0.0.0 au lieu de localhost.

Option 2 : Utiliser ASM pour exposer une application qui écoute sur localhost

Créez une ressource Sidecar dans la console ASM. La ressource Sidecar intercepte les requêtes entrantes vers les pods sélectionnés et les transfère à votre application sur localhost.

Procédez comme suit :

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, sélectionnez 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 Traffic Management Center > Sidecar Traffic Configuration. Sur la page qui s'affiche, cliquez sur Create from YAML.

  3. Sur la page Create, sélectionnez un Namespaces et n'importe quel Scenario Template, configurez le fichier YAML suivant, puis cliquez sur Create.

    apiVersion: networking.istio.io/v1beta1
    kind: Sidecar
    metadata:
      name: localhost-access
      namespace: {namespace}
    spec:
      ingress:
        - defaultEndpoint: '127.0.0.1:{container_port}'
          port:
            name: tcp
            number: {port}
            protocol: TCP
      workloadSelector:
        labels:
          {key}: {value}

    Remplacez les paramètres suivants par vos valeurs réelles :

    Parameter

    Description

    {namespace}

    Le namespace dans lequel l'application est déployée.

    {container_port}

    Le port du conteneur sur lequel l'application écoute sur localhost.

    {port}

    Le port du Service de l'application.

    {key}: {value}

    Le libellé qui permet de sélectionner les pods de l'application.

Remarque

La configuration précédente s'applique uniquement aux pods portant le libellé défini sous workloadSelector et elle expose le seul port TCP défini sous ingress.