Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:ASMEgressTrafficPolicy CRD description

Última atualização: Sep 29, 2026

A definição de recurso personalizado (CRD) ASMEgressTrafficPolicy define como um egress gateway roteia o tráfego de saída dos serviços dentro da malha para destinos externos. Combinando proxies sidecar com políticas de autorização, é possível controlar o tráfego de saída de forma abrangente.

Requer Service Mesh (ASM) versão 1.16.4 ou posterior.

Exemplos em YAML

Rotear um service para um endpoint externo via HTTP

O service sleep-a no namespace mytest acessa http://www.httpbin.org pelo egress gateway egressgateway-a na porta 80.

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMEgressTrafficPolicy
metadata:
  name: egress-by-egressgateway-a  # Name corresponds to the egress gateway.
  namespace: istio-egress          # Fixed namespace for egress policies.
spec:
  byEgressGateway:
    name: egressgateway-a
  egressRules:
  - from:
    - namespace: mytest
      workloadSelector:
        app: sleep-a
    to:
    - name: httpbin-service-http
      hosts:
      - www.httpbin.org  # Multiple domains that resolve to the same address.
      - httpbin.org
      port:
        name: http
        number: 80
        protocol: HTTP
      byEgressGateway:
        port: 80  # Traffic path: Sidecar -> port 80 on gateway -> port 80 on httpbin.org

Fluxo de tráfego: o proxy sidecar intercepta a requisição de saída de sleep-a, encaminha-a para a porta 80 do egress gateway, e o gateway a envia para a porta 80 em httpbin.org.

Fazer upgrade de HTTP para HTTPS e rotear múltiplos serviços

Este exemplo define três regras de egresso pelo mesmo gateway:

Serviço de source

Destino externo

Porta do gateway

Protocolo

Upgrade para HTTPS

sleep-a (mytest)

httpbin.org

80

HTTP

Sim (porta 443)

sleep-a (mytest)

httpbin.org

444

HTTPS

Não

sleep-b (mytest)

www.aliyun.com

445

HTTPS

Não

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMEgressTrafficPolicy
metadata:
  name: egress-by-egressgateway-a
  namespace: istio-egress
spec:
  byEgressGateway:
    name: egressgateway-a
  egressRules:
  - from:
     - namespace: mytest
       workloadSelector:
          app: sleep-a
    to:
    - name: httpbin-service-http
      hosts:
      - www.httpbin.org
      - httpbin.org
      port:
        name: http
        number: 80
        protocol: HTTP
      byEgressGateway:
        port: 80
      httpsUpgrade:
        enabled: true   # Set to false to disable the upgrade. The port below is ignored when disabled.
        port: 443       # Traffic path: Sidecar -> port 80 on gateway -> port 443 on httpbin.org (HTTPS)
    - name: httpbin-service-https
      hosts:
      - www.httpbin.org
      - httpbin.org
      port:
        name: https
        number: 443
        protocol: HTTPS
      byEgressGateway:
        port: 444
  - from:
     - namespace: mytest
       workloadSelector:
          app: sleep-b
    to:
    - name: aliyun-service-https
      hosts:
      - www.aliyun.com
      port:
        name: https
        number: 443
        protocol: HTTPS
      byEgressGateway:
        port: 445

A primeira regra demonstra o upgrade para HTTPS: o sidecar envia HTTP na porta 80 ao gateway, e o gateway origina uma conexão HTTPS na porta 443 para httpbin.org. A aplicação envia HTTP simples enquanto o gateway gerencie o TLS.

Rotear tráfego HTTP e TCP com alocação automática de portas

A partir do ASM 1.24.6.45, o ASMEgressTrafficPolicy oferece suporte ao protocolo TCP. Quando todos os campos byEgressGateway nas seções to são omitidos, o ASM aloca automaticamente portas de encaminhamento no egress gateway a partir do intervalo padrão 10000--20000. Essas portas atribuídas automaticamente são internas e não afetam suas cargas de trabalho.

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMEgressTrafficPolicy
metadata:
  name: egress-by-egressgateway-a
  namespace: istio-egress
spec:
  byEgressGateway:
    name: egressgateway-a
  egressRules:
  - from:
    - namespace: default
      workloadSelector:
        app: sleep
    to:
    - name: aliyun-com-http  # HTTP route
      hosts:
      - aliyun.com
      port:
        name: http
        number: 80
        protocol: HTTP
    - name: aliyun-https     # HTTPS route
      hosts:
      - aliyun.com
      port:
        name: https
        number: 443
        protocol: HTTPS
    - name: https-upgrade    # HTTP upgraded to HTTPS at the gateway
      hosts:
      - taobao.com
      port:
        name: http
        protocol: HTTP
        number: 80
      httpsUpgrade:
        enabled: true
        port: 443
    - name: tcp-svc1         # TCP service 1
      hosts:
      - 1.1.1.1
      port:
        name: tcp
        protocol: TCP
        number: 44
    - name: tcp-svc2         # TCP service 2
      hosts:
      - test-tcp.com
      port:
        name: tcp
        protocol: TCP
        number: 444

Como nenhum byEgressGateway está especificado em nenhuma entrada to, o ASM atribui automaticamente portas de encaminhamento no gateway para todos os cinco destinos.

Referência de campos do CRD

Spec

**Campo**

**Tipo**

**Obrigatório**

**Descrição**

byEgressGateway

ByEgressGateway

Sim

O egress gateway que roteia o tráfego para serviços externos.

egressRules

EgressRule[]

Sim

Regras de tráfego de saída que definem os mapeamentos de source para destino.

ByEgressGateway

**Campo**

**Tipo**

**Obrigatório**

**Descrição**

name

string

Sim

Nome do egress gateway. Mantenha o nome com 32 caracteres ou menos.

port

uint32

Não

Porta do egress gateway pela qual o tráfego é encaminhado.

EgressRule

**Campo**

**Tipo**

**Obrigatório**

**Descrição**

name

string

Não

Nome descritivo para esta regra.

from

From[]

Sim

As cargas de trabalho dentro da malha que iniciam as requisições de saída.

to

To[]

Sim

Os serviços externos que recebem o tráfego.

From

**Campo**

**Tipo**

**Obrigatório**

**Descrição**

namespace

string

Sim

Namespace da carga de trabalho que inicia a requisição.

workloadSelector

map[string]string

Não

Seletor de rótulos que identifica cargas de trabalho específicas dentro do namespace.

To

**Campo**

**Tipo**

**Obrigatório**

**Descrição**

name

string

Sim

Nome exclusivo para esta entrada de service externo dentro da regra.

hosts

string[]

Sim

Nomes de domínio ou endereços IP do service externo. Especifique múltiplos domínios conforme necessário, mas todas as entradas devem resolver para o mesmo endereço.

port

Port

Sim

Porta do service externo. O campo protocol aceita HTTP, HTTPS ou TCP.

byEgressGateway

ByEgressGateway

Sim

Porta do egress gateway usada para encaminhar o tráfego a este service. A partir do ASM 1.24.6.45, se todos os campos byEgressGateway em todas as entradas to da política forem omitidos, o ASM atribui automaticamente uma porta para cada service.

httpsUpgrade

HttpsUpgrade

Não

Faz upgrade das requisições HTTP de saída para HTTPS no egress gateway.

HttpsUpgrade

**Campo**

**Tipo**

**Obrigatório**

**Descrição**

enabled

bool

Sim

Defina como true para fazer upgrade das requisições HTTP para HTTPS no egress gateway. Quando definido como false, o valor de port abaixo é ignorado.

port

uint32

Sim

Porta HTTPS no service externo (normalmente 443).

Notas de uso

  • Namespace: todos os recursos ASMEgressTrafficPolicy devem ser criados no namespace istio-egress.

  • Nomenclatura: nomeie cada política de acordo com o egress gateway associado (por exemplo, egress-by-egressgateway-a para o gateway egressgateway-a).

  • Múltiplos domínios: ao listar várias entradas em hosts, todos os domínios devem resolver para o mesmo endereço IP.

  • Alocação automática de portas: disponível a partir do ASM 1.24.6.45. Aplica-se somente quando todas as entradas to da política omitem o campo byEgressGateway.

  • Protocolos suportados: o campo protocol em port aceita HTTP, HTTPS ou TCP. O suporte a TCP requer ASM 1.24.6.45 ou posterior.

Referências