Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Expor uma aplicação localhost para outros pods

Última atualização: Aug 28, 2026

Configure um recurso Sidecar para que outros pods no cluster possam usar um service e acessar uma aplicação que escuta em localhost.

Por que outros pods não conseguem acessar uma aplicação localhost

localhost é um endereço de loopback acessível apenas dentro do mesmo pod. Quando uma aplicação implantada em um cluster escuta em localhost, os demais pods do cluster não conseguem acessá-la, mesmo que você exponha a porta de service da aplicação por meio de um Service.

Os exemplos a seguir mostram como aplicações escritas em diferentes linguagens escutam em localhost:

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

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

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

Escolha uma opção

Há duas opções para expor sua aplicação. Escolha uma com base na possibilidade de modifique o código da aplicação:

  • Opção 1 — Altere o endereço de rede no qual a aplicação escuta. Escolha esta opção se puder modifique o código da aplicação.

  • Opção 2 — Use o Service Mesh (ASM) para expor uma aplicação que escuta em localhost. Escolha esta opção se não desejar modifique o código da aplicação.

Opção 1: Alterar o endereço de rede no qual a aplicação escuta

Para expor sua aplicação, modifique o código da aplicação para escutar em 0.0.0.0 em vez de localhost.

Opção 2: Usar o ASM para expor uma aplicação que escuta em localhost

Crie um recurso Sidecar no console do ASM. O recurso Sidecar intercepta as requisições de entrada nos pods selecionados e as encaminha para sua aplicação em localhost.

Siga estas etapas:

  1. Faça login no console do ASM. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  2. Na página Mesh Management, clique em no nome da instância do ASM. No painel de navegação à esquerda, escolha Traffic Management Center > Sidecar Traffic Configuration. Na página exibida, clique em Create from YAML.

  3. Na página Create, selecione um Namespaces e um Scenario Template, configure o YAML a seguir e clique em 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}

    Substitua os parâmetros a seguir pelos valores reais:

    Parâmetro

    Descrição

    {namespace}

    Namespace onde a aplicação está implantada.

    {container_port}

    Porta do container na qual a aplicação escuta em localhost.

    {port}

    Porta do service da aplicação.

    {key}: {value}

    Rótulo usado para selecione os pods da aplicação.

Nota

A configuração anterior aplica-se apenas aos pods com o rótulo definido em workloadSelector e expõe somente a porta TCP definida em ingress.