Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Referência de campos EnvoyFilterTemplate e EnvoyFilterTemplateBinding

Última atualização: Sep 15, 2026

O Service Mesh (ASM) oferece dois CustomResourceDefinitions (CRDs) — EnvoyFilterTemplate e EnvoyFilterTemplateBinding — para criar configurações de filtros Envoy reutilizáveis e compatíveis com versões específicas. Defina um modelo de filtro uma única vez e associe-o a workloads, namespaces e versões do Istio sem duplicar YAML.

Por que usar esses CRDs em vez de recursos EnvoyFilter nativos?

  • Segurança entre versões. Recursos EnvoyFilter mantidos manualmente podem tornar-se incompatíveis após a atualização de uma instância do ASM, pois a versão do proxy Envoy muda. O EnvoyFilterTemplate permite definir configurações de filtro específicas por versão, garantindo a aplicação automática do filtro correto após uma atualização.

  • Reutilização. Um único modelo gera múltiplos recursos EnvoyFilter em diferentes workloads e namespaces por meio de bindings separados.

  • Menos duplicação. Metadados e seletores de workload são preenchidos automaticamente a partir do binding, eliminando a necessidade de replicá-los no modelo.

Importante

Os intervalos de istioVersion definidos em um único EnvoyFilterTemplate não devem se sobrepor.

Como funciona

  1. Crie um EnvoyFilterTemplate contendo uma ou mais configurações de filtro, cada uma direcionada a um intervalo específico de versões do Istio.

  2. Crie um EnvoyFilterTemplateBinding que referencie o modelo e especifique os workloads e as versões do proxy Envoy aos quais o filtro se aplica.

  3. O ASM gera automaticamente os recursos EnvoyFilter correspondentes, com metadados, rótulos e seletores de workload corretos.

Exemplo de configuração

O exemplo abaixo define um EnvoyFilterTemplate que configura os tamanhos de janela de conexão e stream HTTP/2 na porta 80 para instâncias do ASM executando Istio 1.19 ou superior. Em seguida, um EnvoyFilterTemplateBinding correspondente gera um filtro Envoy direcionado a proxies na versão 1.20, aplicado globalmente no namespace istio-system.

EnvoyFilterTemplate

EnvoyFilterTemplateBinding

apiVersion: istio.alibabacloud.com/v1
kind: EnvoyFilterTemplateBinding
metadata:
  name: seth2windows-binding-1.20
  namespace: istio-system
spec:
  templateRef:
    istioVersion: "1.20"
    name: seth2windows
  workloads:
  - kind: Namespace
    namespace: istio-system

Generated EnvoyFilter

O ASM produz o seguinte EnvoyFilter a partir do modelo e do binding acima. Os rótulos e a condição de correspondência proxyVersion são preenchidos automaticamente pelo binding:

Campos do EnvoyFilterTemplate

O EnvoyFilterTemplate define configurações de filtros Envoy para diferentes versões do Istio. Após a atualização de uma instância do ASM, a configuração de filtro correspondente é aplicada automaticamente aos proxies Envoy atualizados, reduzindo riscos de compatibilidade em comparação com recursos EnvoyFilter mantidos manualmente.

EnvoyFilterTemplateSpec

Campo

Tipo

Obrigatório

Descrição

templates

TemplateValue[]

Sim

Lista de entradas de modelos de filtros Envoy. Cada entrada visa uma versão específica ou um intervalo de versões do Istio. Os intervalos de versão entre as entradas não devem se sobrepor.

TemplateValue

Cada TemplateValue associa uma configuração de filtro Envoy (em YAML) ao intervalo de versões do Istio ao qual ela se aplica.

Campo

Tipo

Obrigatório

Descrição

istioVersion

string

Sim

Versão do Istio ou intervalo de versões alvo deste filtro. Especifique uma versão menor do Istio, como 1.19 ou 1.20. Use hífen entre duas versões para definir um intervalo. Utilize MIN_VERSION para a versão mais antiga conhecida e MAX_VERSION para a mais recente. Consulte Sintaxe de intervalo de versões.

value

string

Sim

Configuração do filtro Envoy no formato YAML. Deve estar em conformidade com a especificação do CRD EnvoyFilter. Omita os campos metadata e workloadSelector — o ASM os preenche automaticamente a partir do EnvoyFilterTemplateBinding durante a geração.

Sintaxe de intervalo de versões

Exemplo

Significado

"1.19"

Corresponde apenas a instâncias do ASM executando Istio 1.19.

"1.18-1.20"

Abrange as versões 1.18, 1.19 e 1.20 do Istio.

"1.19-MAX_VERSION"

Inclui o Istio 1.19 e todas as versões posteriores.

"MIN_VERSION-1.19"

Cobre o Istio 1.19 e todas as versões anteriores.

Campos do EnvoyFilterTemplateBinding

Um EnvoyFilterTemplateBinding associa-se a um EnvoyFilterTemplate e especifica os workloads e as versões do proxy Envoy para os quais o ASM gera recursos EnvoyFilter.

EnvoyFilterTemplateBindingSpec

Campo

Tipo

Obrigatório

Descrição

templateRef

EnvoyFilterTemplateRef

Sim

Referencia o EnvoyFilterTemplate e especifica a versão do proxy Envoy alvo. O ASM utiliza essa informação para selecionar a entrada correta do modelo e definir a correspondência proxyVersion no EnvoyFilter gerado.

workloads

WorkloadRef[]

Não

Workloads para os quais os filtros Envoy serão gerados.

EnvoyFilterTemplateRef

Campo

Tipo

Obrigatório

Descrição

name

string

Sim

Nome do EnvoyFilterTemplate a ser referenciado.

istioVersion

string

Sim

Versão do proxy Envoy alvo. Segue a mesma Sintaxe de intervalo de versões de TemplateValue.istioVersion. O ASM converte esse valor em uma correspondência regex de proxyVersion (por exemplo, "1.20" torna-se ^1\.20.*) no EnvoyFilter gerado.

WorkloadRef

Define os workloads aos quais o filtro Envoy gerado se aplica.

Campo

Tipo

Obrigatório

Comportamento padrão

Descrição

namespace

string

Sim

--

Namespace onde o filtro Envoy é criado. Para aplicar o filtro globalmente na instância do ASM, defina este campo como istio-system.

name

string

Não

O filtro se aplica a todo o namespace.

Nome do workload. Esse valor passa a fazer parte do nome do EnvoyFilter gerado. Ao visar um workload específico, utilize o nome do Service ou Deployment.

kind

string

Não

--

Tipo de workload (por exemplo, Namespace, Deployment ou Service). Usado apenas para fins de exibição, sem impacto no comportamento do filtro.

selector

map<string, string>

Não

O filtro abrange todos os pods no namespace.

Conjunto de rótulos para selecionar pods específicos. O ASM converte isso no campo workloadSelector do EnvoyFilter gerado. Se omitido, o filtro será aplicado a todos os pods no namespace especificado.

Referências