Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Descrição dos campos EnvoyFilterTemplate e EnvoyFilterTemplateBinding

Última atualização: Jun 28, 2026

O Service Mesh (ASM) permite criar filtros Envoy por meio das CustomResourceDefinitions (CRDs) EnvoyFilterTemplate e EnvoyFilterTemplateBinding. Você pode usar o mesmo modelo de filtro Envoy para gerar vários filtros e aplicá-los a diferentes workloads e namespaces. Essa abordagem torna as configurações reutilizáveis e aumenta a eficiência do gerenciamento.

Exemplo de configuração

O bloco de código a seguir define uma CRD EnvoyFilterTemplate. Essa CRD especifica o conteúdo de um modelo de filtro Envoy aplicável a instâncias do ASM com Istio versão 1,19 ou superior. O código também define uma CRD EnvoyFilterTemplateBinding. Use essa CRD para criar um filtro Envoy válido no namespace istio-system. Isso indica que o filtro Envoy atua globalmente na instância do ASM. O filtro se aplica a todos os proxies Envoy da versão 1,20. O conteúdo do filtro deriva do modelo definido na CRD EnvoyFilterTemplate, válido para instâncias do ASM com Istio versão 1,19 ou posterior.

Show the YAML code of EnvoyFilterTemplate

apiVersion: istio.alibabacloud.com/v1
kind: EnvoyFilterTemplate
metadata:
  name: seth2windows
  namespace: istio-system
spec:
  templates:
  - istioVersion: "1.19-MAX_VERSION"
    value: |
      apiVersion: networking.istio.io/v1alpha3
      kind: EnvoyFilter
      spec:
        configPatches:
        - applyTo: NETWORK_FILTER
          match:
            context: ANY
            listener:
              filterChain:
                filter:
                  name: envoy.filters.network.http_connection_manager
              portNumber: 80
          patch:
            operation: MERGE
            value:
              typed_config:
                '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
                http2_protocol_options:
                  initial_connection_window_size: 65536
                  initial_stream_window_size: 65536
        priority: 0
---
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

O código YAML anterior cria o seguinte filtro Envoy:

Show the YAML code of the Envoy filter

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  labels:
    asm-system: "true"
    binding-name: seth2windows-binding-1.20
    binding-namespace: istio-system
    provider: asm
    workload-name: ""
    workload-namespace: istio-system
  name: seth2windows-binding-1.20-for-istio-system
  namespace: istio-system
spec:
  configPatches:
  - applyTo: NETWORK_FILTER
    match:
      context: ANY
      listener:
        filterChain:
          filter:
            name: envoy.filters.network.http_connection_manager
        portNumber: 80
      proxy:
        proxyVersion: ^1\.20.*
    patch:
      operation: MERGE
      value:
        typed_config:
          '@type': type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          http2_protocol_options:
            initial_connection_window_size: 65536
            initial_stream_window_size: 65536
  priority: 0

Descrição dos campos do EnvoyFilterTemplate

O EnvoyFilterTemplate define uma série de filtros Envoy aplicáveis a diferentes versões do Istio. Filtros Envoy autogerenciados podem apresentar incompatibilidade com instâncias do ASM após atualizações ou manutenções. Utilize a CRD EnvoyFilterTemplate para personalizar filtros distintos conforme a versão do Istio. Após atualizar a versão de um proxy Envoy, aplique o filtro adequado ao novo proxy. Essa prática reduz riscos de compatibilidade.

EnvoyFilterTemplateSpec

A seção spec do exemplo anterior, chamada EnvoyFilterTemplateSpec, representa a configuração principal do EnvoyFilterTemplate.

Campo

Tipo

Obrigatório

Descrição

templates

TemplateValue[]

Sim

Defina uma série de valores de modelo de filtro Envoy. Cada valor aplica-se a uma versão específica ou a um intervalo de versões do Istio. Os intervalos de versão do Istio de múltiplos valores de modelo não podem se sobrepor.

TemplateValue

Cada TemplateValue especifica o conteúdo YAML de um filtro Envoy e a versão ou intervalo de versões do Istio aos quais o filtro se aplica.

Campo

Tipo

Obrigatório

Descrição

istioVersion

string

Sim

Versão do Istio ou intervalo de versões ao qual o filtro Envoy se aplica. A versão deve ser uma versão secundária do Istio, como 1,19 ou 1,20. Una duas versões com um hífen para indicar que o filtro vale para o intervalo especificado.

Para definir um intervalo de validade do filtro Envoy, utilize MIN_VERSION para a versão mais antiga conhecida e MAX_VERSION para a mais recente.

Exemplos:

  • "1.19": O filtro Envoy aplica-se a instâncias do ASM v1.19.

  • "1.18-1.20": O filtro abrange instâncias do ASM nas versões v1.18, v1.19 e v1.20.

  • "1.19-MAX_VERSION": Válido para instâncias do ASM com versão 1,19 ou superior.

  • "MIN_VERSION-1.19": Cobre instâncias do ASM até a versão 1,19.

value

string

Sim

Conteúdo YAML do filtro Envoy. Deve ser uma string e obedecer à descrição dos campos da CRD para filtros Envoy.

Não configure os campos metadata e workloadSelector ao definir o filtro Envoy por meio do campo TemplateValue. Durante a criação do filtro, o sistema preenche automaticamente esses campos com base na CRD EnvoyFilterTemplateBinding.

Descrição dos campos do EnvoyFilterTemplateBinding

Uma CRD EnvoyFilterTemplateBinding associa-se a uma CRD EnvoyFilterTemplate e determina os workloads e as versões dos proxies Envoy onde o filtro definido no EnvoyFilterTemplate entra em vigor.

EnvoyFilterTemplateBindingSpec

A seção spec, denominada EnvoyFilterTemplateBindingSpec, constitui a configuração central do EnvoyFilterTemplateBinding.

Campo

Tipo

Obrigatório

Descrição

templateRef

EnvoyFilterTemplateRef

Sim

Referência do modelo. Indica a CRD EnvoyFilterTemplate referenciada pela CRD EnvoyFilterTemplateBinding e a versão da instância do ASM vinculada.

workloads

WorkloadRef[]

Não

Liste os workloads que exigem a criação de filtros Envoy.

EnvoyFilterTemplateRef

Campo

Tipo

Obrigatório

Descrição

name

string

Sim

Nome do EnvoyFilterTemplate referenciado.

istioVersion

string

Sim

Defina a versão do proxy Envoy onde o filtro terá efeito.

Use uma versão secundária do Istio, como 1,19 ou 1,20. Separe duas versões por hífen para abranger um intervalo específico.

Caso precise estipular um intervalo de versões, empregue MIN_VERSION para a versão mais antiga e MAX_VERSION para a mais nova.

Exemplos:

  • "1.19": Aplica-se a instâncias do ASM v1.19.

  • "1.18-1.20": Abrange instâncias do ASM v1.18, v1.19 e v1.20.

  • "1.19-MAX_VERSION": Válido para instâncias do ASM versão 1,19 ou superior.

  • "MIN_VERSION-1.19": Cobre instâncias do ASM até a versão 1,19.

WorkloadRef

O WorkloadRef estabelece os workloads nos quais o filtro Envoy atua.

Campo

Tipo

Obrigatório

Descrição

namespace

string

Sim

Nome do namespace onde o filtro Envoy será criado.

name

string

Não

Nome do workload. Esse valor compõe o nome do filtro Envoy gerado. Recomenda-se usar o nome do Service ou Deployment.

Caso o filtro atue globalmente no namespace, este parâmetro é opcional.

kind

string

Não

Tipo de workload vinculado ao filtro Envoy. Campo destinado apenas a exibição.

selector

map<string, string>

Não

Conjunto de rótulos para selecionar o pod onde o filtro Envoy entrará em vigor. O sistema converte esse campo automaticamente em workloadSelector no filtro. Se omitido, o filtro criado valerá para todo o namespace.

Referências

  • Para saber mais sobre as operações e a relação entre modelos de filtro Envoy e os filtros em si, consulte Criar um filtro Envoy a partir de um modelo.

  • O ASM oferece recursos prontos para uso no marketplace de plug-ins para estender suas funcionalidades conforme necessário. Selecione e personalize diversos plug-ins de acordo com seus requisitos de negócio para atender a demandas variadas. Para mais informações, consulte Ativar plug-ins para estender as capacidades do ASM.