Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:ASMEgressTrafficPolicy CRD description

Última atualização: Jun 28, 2026

A definição de recurso personalizado (CRD) ASMEgressTrafficPolicy determina como um gateway de egresso roteia o tráfego de saída de serviços na malha para destinos externos. Ao combinar proxies sidecar e políticas de autorização, é possível controlar o tráfego de egresso de forma abrangente.

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

Exemplos de YAML

Roteamento de serviço para endpoint externo via HTTP

O serviço sleep-a no namespace mytest acessa http://www.httpbin.org por meio do gateway de egresso 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 do sleep-a, encaminha para a porta 80 no gateway de egresso e o gateway a envia para a porta 80 em httpbin.org.

Upgrade de HTTP para HTTPS com roteamento de múltiplos serviços

Este exemplo define três regras de egresso através do 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 ilustra o upgrade para HTTPS: o sidecar envia HTTP na porta 80 ao gateway, que origina uma conexão HTTPS na porta 443 para httpbin.org. A aplicação transmite HTTP simples enquanto o gateway gerencia o TLS.

Roteamento de tráfego HTTP e tcp com alocação automática de portas

A partir da versão 1.24.6.45 do ASM, 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 gateway de egresso dentro do intervalo padrão de 10000 a 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 campo byEgressGateway foi 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

Gateway de egresso responsável por rotear o tráfego para serviços externos.

egressRules

EgressRule[]

Sim

Regras de tráfego de egresso que definem os mapeamentos entre source e destino.

ByEgressGateway

**Campo**

**Tipo**

**Obrigatório**

**Descrição**

name

string

Sim

Nome do gateway de egresso. Mantenha o nome com até 32 caracteres.

port

uint32

Não

Porta no gateway de egresso usada para encaminhar o tráfego.

EgressRule

**Campo**

**Tipo**

**Obrigatório**

**Descrição**

name

string

Não

Nome descritivo para esta regra.

from

From[]

Sim

Cargas de trabalho na malha que iniciam as requisições de saída.

to

To[]

Sim

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 serviço externo dentro da regra.

hosts

string[]

Sim

Nomes de domínio ou endereços IP do serviço externo. É possível especifique vários domínios, desde que todas as entradas resolvam para o mesmo endereço.

port

Port

Sim

Porta do serviço externo. O campo protocol aceita HTTP, HTTPS ou TCP.

byEgressGateway

ByEgressGateway

Sim

Porta no gateway de egresso utilizada para encaminhar tráfego a este serviço. A partir do ASM 1.24.6.45, caso todos os campos byEgressGateway em cada entrada to da política sejam omitidos, o ASM atribuirá automaticamente uma porta para cada serviço.

httpsUpgrade

HttpsUpgrade

Não

Realiza upgrade de requisições HTTP de saída para HTTPS no gateway de egresso.

HttpsUpgrade

**Campo**

**Tipo**

**Obrigatório**

**Descrição**

enabled

bool

Sim

Defina como true para converter requisições HTTP em HTTPS no gateway de egresso. Se definido como false, o valor de port abaixo será ignorado.

port

uint32

Sim

Porta HTTPS do serviço externo (geralmente 443).

Observações de uso

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

  • Nomenclatura: Nomeie cada política conforme seu gateway de egresso 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 apenas quando todas as entradas to na política omitem o campo byEgressGateway.

  • Protocolos suportados: O campo protocol em port aceita HTTP, HTTPS ou TCP. O suporte a tcp exige a versão 1.24.6.45 ou superior do ASM.

Referências