Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Description des champs EnvoyFilterTemplate et EnvoyFilterTemplateBinding

Dernière mise à jour :Aug 11, 2026

Service Mesh (ASM) vous permet de créer un filtre Envoy à l'aide des CustomResourceDefinitions (CRD) EnvoyFilterTemplate et EnvoyFilterTemplateBinding. Un même modèle de filtre Envoy peut servir à créer plusieurs filtres, applicables à différentes charges de travail et namespaces. Cette approche favorise la réutilisation des configurations et améliore l'efficacité de la gestion.

Exemple de configuration

Le bloc de code suivant définit une CRD EnvoyFilterTemplate. Celle-ci spécifie le contenu d'un modèle de filtre Envoy destiné aux instances ASM dont la version Istio est 1,19 ou ultérieure. Elle inclut également une CRD EnvoyFilterTemplateBinding. Grâce à cette dernière, créez un filtre Envoy qui s'applique au namespace istio-system, ce qui signifie qu'il agit globalement sur l'instance ASM. Le filtre cible tous les proxies Envoy en version 1,20. Son contenu provient du modèle de filtre Envoy défini dans la CRD EnvoyFilterTemplate, lequel s'applique aux instances ASM exécutant Istio 1,19 ou une version plus récente.

Afficher le code YAML de 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

Le code YAML ci-dessus génère le filtre Envoy suivant :

Afficher le code YAML du filtre Envoy

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

Description des champs EnvoyFilterTemplate

EnvoyFilterTemplate définit une série de filtres Envoy adaptés à différentes versions d'Istio. Les filtres Envoy gérés manuellement peuvent devenir incompatibles avec les instances ASM après une mise à jour ou une opération de maintenance. En utilisant la CRD EnvoyFilterTemplate, personnalisez des filtres Envoy distincts pour chaque version d'Istio. Ainsi, lorsque vous mettez à niveau la version d'un proxy Envoy, appliquez-lui le filtre approprié pour réduire les risques d'incompatibilité.

EnvoyFilterTemplateSpec

EnvoyFilterTemplateSpec, correspondant à la section spec dans l'exemple précédent, constitue la configuration centrale de EnvoyFilterTemplate.

Champ

Type

Obligatoire

Description

templates

TemplateValue[]

Oui

Définit une série de valeurs de modèles de filtre Envoy. Chaque valeur de modèle s'applique à une version spécifique d'Istio ou à une plage de versions. Les plages de versions Istio applicables aux différentes valeurs de modèle ne doivent pas se chevaucher.

TemplateValue

Chaque TemplateValue spécifie le contenu YAML d'un filtre Envoy ainsi que la version ou la plage de versions Istio concernée.

Champ

Type

Obligatoire

Description

istioVersion

string

Oui

Version Istio ou plage de versions Istio à laquelle le filtre Envoy s'applique. La version doit correspondre à une version mineure d'Istio, telle que 1,19 ou 1,20. Indiquez une plage de versions en séparant deux versions par un tiret.

Pour définir une plage de versions, utilisez MIN_VERSION pour représenter la version connue la plus ancienne et MAX_VERSION pour la version connue la plus récente.

Exemples :

  • "1.19" : le filtre Envoy s'applique aux instances ASM en version 1,19.

  • "1.18-1.20" : le filtre Envoy s'applique aux instances ASM en versions 1,18, 1,19 et 1,20.

  • "1.19-MAX_VERSION" : le filtre Envoy s'applique aux instances ASM dont la version est 1,19 ou ultérieure.

  • "MIN_VERSION-1.19" : le filtre Envoy s'applique aux instances ASM dont la version est 1,19 ou antérieure.

value

string

Oui

Contenu YAML du filtre Envoy. Ce contenu doit être fourni sous forme de chaînes de caractères et respecter la description des champs CRD pour les filtres Envoy.

Ne configurez pas les champs metadata et workloadSelector lors de la définition du filtre Envoy via le champ TemplateValue. Lors de la création du filtre Envoy, ces champs sont renseignés automatiquement en fonction de la CRD EnvoyFilterTemplateBinding.

Description des champs EnvoyFilterTemplateBinding

Une CRD EnvoyFilterTemplateBinding est associée à une CRD EnvoyFilterTemplate. Elle spécifie les charges de travail et les versions des proxies Envoy pour lesquelles le filtre Envoy défini dans la CRD EnvoyFilterTemplate prend effet.

EnvoyFilterTemplateBindingSpec

EnvoyFilterTemplateBindingSpec, c'est-à-dire la section spec, représente la configuration centrale de EnvoyFilterTemplateBinding.

Champ

Type

Obligatoire

Description

templateRef

EnvoyFilterTemplateRef

Oui

Référence au modèle. Elle indique la CRD EnvoyFilterTemplate référencée par la CRD EnvoyFilterTemplateBinding ainsi que la version de l'instance ASM liée.

workloads

WorkloadRef[]

Non

Définit les charges de travail pour lesquelles créer des filtres Envoy.

EnvoyFilterTemplateRef

Champ

Type

Obligatoire

Description

name

string

Oui

Nom de la ressource EnvoyFilterTemplate référencée.

istioVersion

string

Oui

Spécifie la version du proxy Envoy sur laquelle le filtre Envoy prend effet.

La version doit correspondre à une version mineure d'Istio, telle que 1,19 ou 1,20. Indiquez une plage de versions en séparant deux versions par un tiret.

Pour définir une plage de versions, utilisez MIN_VERSION pour représenter la version connue la plus ancienne et MAX_VERSION pour la version connue la plus récente.

Exemples :

  • "1.19" : le filtre Envoy s'applique aux instances ASM en version 1,19.

  • "1.18-1.20" : le filtre Envoy s'applique aux instances ASM en versions 1,18, 1,19 et 1,20.

  • "1.19-MAX_VERSION" : le filtre Envoy s'applique aux instances ASM dont la version est 1,19 ou ultérieure.

  • "MIN_VERSION-1.19" : le filtre Envoy s'applique aux instances ASM dont la version est 1,19 ou antérieure.

WorkloadRef

WorkloadRef définit les charges de travail auxquelles le filtre Envoy s'applique.

Champ

Type

Obligatoire

Description

namespace

string

Oui

Nom du namespace dans lequel le filtre Envoy est créé.

name

string

Non

Nom de la charge de travail. Ce nom fait partie du nom du filtre Envoy créé. Nous vous recommandons de renseigner ce champ avec le nom du Service ou du Deployment.

Si le filtre Envoy s'applique globalement à un namespace, il n'est pas nécessaire de spécifier ce paramètre.

kind

string

Non

Type de la charge de travail à laquelle le filtre Envoy est lié. Ce champ sert uniquement à l'affichage.

selector

map<string, string>

Non

Définit une série de libellés permettant de sélectionner le pod dans lequel le filtre Envoy prend effet. Ce champ est automatiquement converti en champ workloadSelector pour le filtre Envoy. Si vous ne spécifiez pas ce paramètre, le filtre Envoy créé s'applique à l'ensemble du namespace.

Références

  • Pour plus d'informations sur les opérations et les relations entre les modèles de filtres Envoy et les filtres Envoy, consultez Créer un filtre Envoy à partir d'un modèle.

  • ASM propose des fonctionnalités prêtes à l'emploi sur la place de marché des plug-ins, vous permettant d'étendre les capacités d'ASM selon vos besoins. Sélectionnez et personnalisez divers plug-ins en fonction de vos exigences métier pour répondre à des besoins diversifiés. Pour plus d'informations, consultez Activer des plug-ins pour étendre les capacités d'ASM.