Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Gerencie o tráfego de saída para services externos

Última atualização: Sep 29, 2026

O Service Mesh oferece três métodos para acessar services externos: configure uma política de tráfego de saída, crie uma entrada de service e configure blocos CIDR para interceptação de tráfego. Este tópico descreve como gerenciar o acesso a services externos a partir de uma instância do Service Mesh.

Defina a política de tráfego de saída

No Service Mesh, a Outbound Traffic Policy controla o acesso a services externos, ou seja, àqueles não definidos no registro interno de services do Istio.

Nota

Acesse o console do ASM, clique no nome da instância ASM de destino e, no painel de navegação à esquerda, escolha Instance Information > Network Status e visualize os services no registro do Istio.

  • Com a política definida como ALLOW_ANY, o proxy sidecar permite a passagem de solicitações para qualquer service desconhecido. Isso permite acesso direto a services externos, mas compromete o monitoramento e o controle de tráfego no nível da malha.

    Importante

    Evite usar este método para acessar services externos, como bancos de dados, a fim de prevenir conflitos de acesso.

    Defina uma entrada de service para cada service externo, a fim de controlar explicitamente o tráfego e evitar possíveis problemas.

  • Com a política definida como REGISTRY_ONLY, o proxy sidecar bloqueia o tráfego para qualquer host não definido como service ou entrada de service na malha.

  1. Acesse o console do ASM.

  2. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  3. Na página Mesh Management, encontre a instância ASM desejada. Clique no nome da instância ASM ou clique em Manage na coluna Actions.

  4. Na página de detalhes da instância ASM, escolha Data Plane Component Management > Sidecar Proxy Setting no painel de navegação à esquerda.

  5. Na página Configure the agent parameters of the injected Sidecar, na aba global, clique em Outbound Traffic Policy, defina a Outbound Traffic Policy como ALLOW_ANY e clique em Update Settings.

    Em um contêiner de aplicação com proxy sidecar injetado, execute o comando curl para acessar um service http ou HTTPS externo. O comando retorna uma resposta bem-sucedida.

    • Acesse um service http externo.

      curl -I  http://www.aliyun.com/

      Saída esperada:

      HTTP/1.1 301 Moved Permanently
      server: envoy
      date: Mon, 07 Sep 2020 09:28:54 GMT
      content-type: text/html
      content-length: 239
      location: https://www.aliyun.com/
      eagleeye-traceid: 0be3e0a615994709353116335ea5ea
      timing-allow-origin: *
      x-envoy-upstream-service-time: 67
    • Acesse um service HTTPS externo.

      curl -I  https://www.aliyun.com/

      Saída esperada:

      HTTP/2 200
      server: Tengine
      date: Mon, 07 Sep 2020 09:16:31 GMT
      content-type: text/html; charset=utf-8
      vary: Accept-Encoding
      vary: Accept-Encoding
      strict-transport-security: max-age=31536000
      x-download-options: noopen
      x-content-type-options: nosniff
      x-xss-protection: 1; mode=block
      x-readtime: 0
      eagleeye-traceid: 0b57ff8715994701916963132ec7ad
      strict-transport-security: max-age=0
      timing-allow-origin: *

Configure uma entrada de service

Se a Outbound Traffic Policy estiver definida como REGISTRY_ONLY, o comando curl executado em um contêiner de aplicação com proxy sidecar injetado falhará ao acessar um service http ou HTTPS externo.

  • Acesse um service http externo.

    curl -I  http://www.aliyun.com/

    Saída esperada:

    HTTP/1.1 502 Bad Gateway
    date: Mon, 07 Sep 2020 09:25:58 GMT
    server: envoy
    transfer-encoding: chunked
  • Acesse um service HTTPS externo.

    curl -I https://www.aliyun.com/

    Saída esperada:

    curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to www.aliyun.com:443

Use uma entrada de service e ative o acesso controlado a services públicos externos. Essa abordagem permite acessar services externos sem perder os recursos de monitoramento e controle de tráfego do Istio.

  1. Crie uma entrada de service.

    1. Acesse o console do ASM.

    2. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

    3. Na página Mesh Management, encontre a instância ASM desejada. Clique no nome da instância ASM ou clique em Manage na coluna Actions.

    4. Na página de detalhes da instância ASM, escolha Cluster & Workload Management > External Service(ServiceEntry) no painel de navegação à esquerda. Na página exibida, clique em Create from YAML.

    5. Selecione um namespace, cole o seguinte conteúdo na caixa de texto e clique em Create.

      Defina o campo hosts conforme necessário. Neste exemplo, hosts está definido como www.aliyun.com.

      apiVersion: networking.istio.io/v1alpha3
      kind: ServiceEntry
      metadata:
        name: aliyun-com-ext
      spec:
        hosts:
        - 'www.aliyun.com'
        ports:
        - number: 80
          name: http
          protocol: HTTP
        - number: 443
          name: https
          protocol: HTTPS  
        resolution: DNS
        location: MESH_EXTERNAL
  2. Acesse o service http ou HTTPS externo novamente. O comando agora retorna uma resposta bem-sucedida.

    • Acesse um service http externo.

      curl -I  http://www.aliyun.com/

      Saída esperada:

      HTTP/1.1 301 Moved Permanently
      server: envoy
      date: Mon, 07 Sep 2020 09:49:17 GMT
      content-type: text/html
      content-length: 239
      location: https://www.aliyun.com/
      eagleeye-traceid: 0be3e0a915994721583014504e7b31
      timing-allow-origin: *
      x-envoy-upstream-service-time: 66
    • Acesse um service HTTPS externo.

      curl -I https://www.aliyun.com/

      Saída esperada:

      HTTP/2 200
      server: Tengine
      date: Mon, 07 Sep 2020 09:49:31 GMT
      content-type: text/html; charset=utf-8
      vary: Accept-Encoding
      vary: Accept-Encoding
      strict-transport-security: max-age=31536000
      x-download-options: noopen
      x-content-type-options: nosniff
      x-xss-protection: 1; mode=block
      x-readtime: 1
      eagleeye-traceid: 0be3e0b115994721709577294ed9e8
      strict-transport-security: max-age=0
      timing-allow-origin: *
  3. Crie um virtual service.

    1. Acesse o console do ASM.

    2. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

    3. Na página Mesh Management, encontre a instância ASM desejada. Clique no nome da instância ASM ou clique em Manage na coluna Actions.

    4. Na página de detalhes da instância ASM, escolha Traffic Management Center > VirtualService no painel de navegação à esquerda. Na página exibida, clique em Create from YAML.

    5. Selecione um namespace, cole o seguinte conteúdo na caixa de texto e clique em Create.

      Crie uma regra de roteamento para o service externo definido pela entrada de service. Este exemplo adiciona uma regra para injetar um fixedDelay nas chamadas ao service www.aliyun.com.

      apiVersion: networking.istio.io/v1alpha3
      kind: VirtualService
      metadata:
        name: aliyun-com-ext
      spec:
        hosts:
          - 'www.aliyun.com'
        http:
        - fault:
            delay:
              percent: 100
              fixedDelay: 5s
          route:
            - destination:
                host: www.aliyun.com
              weight: 100
  4. Verifique se a regra de roteamento está ativa.

    O tempo real na saída é 5.07s, o que indica a ativação da regra de roteamento.

    time curl -o /dev/null -s -w "%{http_code}\n" http://www.aliyun.com/

    Saída esperada:

    301
    real  0m 5.07s
    user  0m 0.00s
    sys 0m 0.00s

Defina intervalos de ip para interceptação de tráfego

Especifique intervalos de ip para interceptação de tráfego pelo proxy sidecar. O tráfego para endereços ip fora desses intervalos ignora o proxy sidecar e segue diretamente para o destino.

No Service Mesh, configure os Addresses to Which External Access Is Redirected to Sidecar Proxy. Normalmente, define-se o CIDR de service do cluster Kubernetes. Assim, o tráfego para services dentro do cluster é interceptado pelo Service Mesh, enquanto o tráfego para destinos externos ao cluster ignora o Service Mesh.

  1. Acesse o console do ASM.

  2. No painel de navegação à esquerda, escolha Service Mesh > Mesh Management.

  3. Na página Mesh Management, encontre a instância ASM desejada. Clique no nome da instância ASM ou clique em Manage na coluna Actions.

  4. Na página de detalhes da instância ASM, escolha Data Plane Component Management > Sidecar Proxy Setting no painel de navegação à esquerda.

  5. Na aba global da página Configure the agent parameters of the injected Sidecar, clique em Enable/Disable Sidecar Proxy by Ports or IP Addresses. Na caixa de texto Addresses to Which External Access Is Redirected to Sidecar Proxy, insira os blocos CIDR para interceptação e clique em Update Settings.

    Alternativamente, insira blocos CIDR na caixa de texto Addresses to Which External Access Is Not Redirected to Sidecar Proxy. Nesse caso, o proxy sidecar interceptará o tráfego de todos os outros blocos CIDR.

    Nota

    Por padrão, o campo Addresses to Which External Access Is Redirected to Sidecar Proxy é definido como *, o que significa que o proxy sidecar intercepta todo o tráfego de saída. Defina intervalos de ip específicos conforme necessário. Uma prática comum é definir o CIDR de service do cluster Kubernetes.