Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:ASMMeshConfig CRD reference

Dernière mise à jour :Aug 11, 2026

ASMMeshConfig est une ressource personnalisée (CR) d'Alibaba Cloud Service Mesh (ASM) qui définit la configuration à l'échelle du maillage de services. À l'instar de MeshConfig d'Istio, cette CR vous permet de gérer de manière centralisée les paramètres au niveau du maillage, tels que le délai d'expiration de la connexion, la détection de protocole, la normalisation des chemins et la politique de nouvelle tentative. Vous pouvez également l'utiliser pour contrôler le comportement et le quota de ressources de l'injecteur sidecar.

Exemple de configuration

L'exemple suivant spécifie les paramètres à l'échelle du maillage pour une instance ASM, y compris la configuration de la connexion, la normalisation des chemins, la politique de nouvelle tentative HTTP, la configuration de l'injecteur sidecar et le service global de limitation de débit.

apiVersion: istio.alibabacloud.com/v1beta1
kind: ASMMeshConfig
metadata:
  name: default
spec:
  connectTimeout: 30s
  tcpKeepalive:
    probes: 5
    time: 7200s
    interval: 72s
  pathNormalization:
    normalization: MERGE_SLASHES
  defaultHttpRetryPolicy:
    attempts: 3
    perTryTimeout: 1s
    retryOn: gateway-error,connect-failure,refused-stream
  enablePrometheusMerge: true
  sidecarInjectorWebhookConfiguration:
    rewriteAppHTTPProbe: true
    replicaCount: 2
    resources:
      requests:
        cpu: 100m
        memory: 256Mi
      limits:
        cpu: '2'
        memory: 2Gi
  rateLimitService:
    enabled: true
    redis:
      authSecret: redis-secret
      url: redis.istio-system.svc:6379
    replicas: 1
  accessLogConfiguration:
    logEncoding: JSON
    logProject: test-project
    sidecarEnabled: true
  manifestPatch:
  - targetRef:
      kind: DaemonSet
      group: apps
      namespace: kube-system
      selector:
        labels:
          app: istio-cni
    patch: |
      metadata:
        labels:
          custom.example.com/managed-by: asm
        annotations:
          custom.example.com/cni-version: "1.29"
Important

Pour utiliser tous les champs de la CRD ASMMeshConfig, votre instance ASM doit être en version 1.24 ou ultérieure. La configuration rateLimitService nécessite une version d'instance 1.25.6.84. Par ailleurs, la CR ASMMeshConfig n'est pas associée à un espace de noms et son nom doit être default. Les CR ASMMeshConfig portant tout autre nom sont ignorées.

Référence des champs

Spec (Configuration du maillage)

Chemin du champ

Type

Description

Valeur d'exemple

tcpKeepalive

TcpKeepalive

Configure les paramètres de maintien de connexion TCP.

probes: 5

connectTimeout

Duration

Spécifie le temps d'attente maximal pour que le proxy Envoy établisse une connexion TCP. Un dépassement de délai déclenche une erreur upstream connect timeout. Les unités prises en charge sont ns/ms/s/m/h.

30s

protocolDetectionTimeout

Duration

Le délai d'expiration pour la détection de protocole, utilisé pour identifier le trafic HTTP/HTTPS. Si le protocole n'est pas détecté dans ce délai, le trafic est traité comme du TCP brut.

Important

Ce champ est configurable uniquement dans les versions ASM 1.19 et antérieures.

pathNormalization

PathNormalization

Configure la normalisation des chemins pour les requêtes HTTP.

defaultHttpRetryPolicy

DefaultHttpRetryPolicy

Définit la politique de nouvelle tentative HTTP par défaut pour les sidecars.

enablePrometheusMerge

Bool

Si la valeur est true, fusionne les annotations prometheus.io d'un pod avec la configuration de surveillance ASM pour éviter la collecte en double de métriques.

true

sidecarInjectorWebhookConfiguration

SidecarInjectorWebhookConfiguration

Configure l'injecteur sidecar.

accessLogConfiguration

AccessLogConfiguration

Configure le format et la collecte des journaux d'accès.

rateLimitService

RatelimitService

Configure le service global de limitation de débit.

Important

Ce champ est configurable uniquement dans les versions ASM 1.25 et ultérieures.

manifestPatch

[]PatchConfig

Le champ manifestPatch vous permet d'appliquer un correctif de fusion stratégique aux ressources Kubernetes rendues par le plan de contrôle ASM, personnalisant ainsi les ressources gérées automatiquement telles que les déploiements, les services et les ConfigMaps sans modifier le code du plan de contrôle.

Important

Ce champ est configurable uniquement dans les versions ASM 1.27 et ultérieures.

TcpKeepalive

Chemin du champ

Type

Description

Valeur d'exemple

Portée

probes

Uint32

Le nombre maximal de sondes de maintien de connexion TCP à envoyer. Une valeur de 0 désactive le mécanisme de maintien de connexion.

9

Connexions TCP sortantes de longue durée.

time

Duration

Le temps d'inactivité avant l'envoi de la première sonde de maintien de connexion.

7200s

interval

Duration

L'intervalle d'envoi des sondes de maintien de connexion doit être inférieur au paramètre time.

75s

PathNormalization

Chemin du champ

Type

Description

Valeur d'exemple

Portée

normalization

Enum

La politique de traitement du chemin URI :

  • NONE : Désactive la standardisation.

  • BASE : Fusionne les barres obliques et conserve les paramètres de chemin (tels que ;).

  • MERGE_SLASHES : Fusionne uniquement les barres obliques consécutives.

NONE

Routage HTTP à l'échelle du maillage.

DefaultHttpRetryPolicy

Chemin du champ

Type

Description

Valeur d'exemple

Portée

attempts

Int32

Le nombre maximal de tentatives pour une requête HTTP. Ce paramètre global s'applique uniquement si un VirtualService ne définit pas explicitement sa propre politique de nouvelle tentative.

2

Politique de routage HTTP.

perTryTimeout

Duration

Le délai d'expiration pour chaque tentative. Cette valeur doit être inférieure au délai d'expiration global de la requête défini dans le VirtualService.

0s (illimité)

retryOn

String

Spécifie les conditions qui déclenchent une nouvelle tentative. Les types d'erreur standard pris en charge incluent 5xx, gateway-error, connect-failure et reset. Séparez plusieurs valeurs par des virgules.

gateway-error, connect-failure, refused-stream

SidecarInjectorWebhookConfiguration

Chemin du champ

Type

Description

Valeur d'exemple

Portée

rewriteAppHTTPProbe

Bool

Si la valeur est true, réécrit la sonde de readiness HTTP d'un pod en la redirigeant vers le proxy sidecar.

true

Comportement d'injection sidecar.

replicaCount

Int

Le nombre de réplicas pour le contrôleur d'injection sidecar afin d'améliorer la haute disponibilité.

2

Composant d'injection sidecar.

resources

Object

La configuration du quota de ressources :

  • requests : Les ressources minimales requises pour que le conteneur démarre.

  • limits : La quantité maximale de ressources qu'un conteneur peut utiliser.

...
        resources:
          requests:
            cpu: 100m
            memory: 256Mi
          limits:
            cpu: '2'
            memory: 2Gi

Composant d'injection sidecar.

AccessLogConfiguration

Chemin du champ

Type

Description

Valeur d'exemple

logEncoding

String

Le format de sortie des journaux. Les valeurs valides sont JSON et TEXT.

JSON

logProject

String

Le projet Alibaba Cloud Log Service (SLS) de destination pour les journaux.

Important

Ce champ est configurable uniquement dans les versions ASM 1.25 et ultérieures.

log-project-test

gatewayEnabled

Boolean

Si la valeur est true, collecte et envoie les journaux d'accès de la passerelle vers Alibaba Cloud Log Service (SLS).

true

sidecarEnabled

Boolean

Si la valeur est true, collecte et envoie les journaux d'accès des sidecars vers Alibaba Cloud Log Service (SLS).

true

ztunnelEnabled

Boolean

Si la valeur est true, collecte et envoie les journaux d'accès de Ztunnel vers Alibaba Cloud Log Service (SLS).

Important

Ce champ est configurable uniquement dans les versions ASM 1.25 et ultérieures.

true

gatewayLifecycle

Integer

La période de rétention en jours pour les journaux d'accès de la passerelle. Valeur par défaut : 90.

30

sidecarLifecycle

Integer

La période de rétention en jours pour les journaux d'accès des sidecars. Valeur par défaut : 90.

30

ztunnelLifecycle

Integer

La période de rétention en jours pour les journaux d'accès de Ztunnel. Valeur par défaut : 90.

Important

Ce champ est configurable uniquement dans les versions ASM 1.25 et ultérieures.

30

RatelimitService

Chemin du champ

Type

Description

Valeur d'exemple

Portée

enabled

Bool

Indique s'il faut activer le service global de limitation de débit.

true

Fonctionnalité globale de limitation de débit.

replicas

Int

Le nombre de réplicas pour le service de limitation de débit.

1

Disponibilité et performances du service de limitation de débit.

resources

Object

La configuration des ressources pour le service de limitation de débit.

limits:
      cpu: 500m
      memory: 512Mi
    requests:
      cpu: 100m
      memory: 128Mi

Disponibilité et performances du service de limitation de débit.

redis

Object

Configuration de l'instance Redis utilisée par le service de limitation de débit.

Remarque

Le service global de limitation de débit utilise Redis pour stocker les politiques et décisions de limitation de débit.

    redis:
          authSecret: redis-secret
          url: redis.istio-system.svc:6379

Backend d'état de limitation de débit.

redis.type

String

Le type du cluster Redis. Les valeurs valides sont single, cluster et sentinel. La valeur par défaut est single.

single

Backend d'état de limitation de débit.

redis.url

String

L'adresse Redis.

redis.istio-system.svc.cluster.local:6379

Backend d'état de limitation de débit.

redis.auth

String

Les informations d'authentification pour Redis. Le format est password ou user:password. (Pour des raisons de sécurité, nous vous recommandons d'utiliser un AuthSecret.)

xxxxxx

Gestion sécurisée des identifiants.

redis.authSecret

String

Le nom du Secret qui stocke les identifiants d'authentification Redis.

Remarque

Ce Secret doit être déployé dans l'espace de noms istio-system et contenir les informations d'authentification encodées en Base64 dans sa clé redis-auth.

apiVersion: v1
    data:
      redis-auth: ${BASE64_ENCODED_CREDENTIALS}
    kind: Secret
    metadata:
      name: redis-secret
      namespace: istio-system
    type: Opaque

Gestion sécurisée des identifiants.

redis.cacheKeyPrefix

String

Le préfixe des clés de cache Redis. La valeur par défaut est vide.

N/A

Backend d'état de limitation de débit.

Remarque

Nous vous recommandons d'utiliser Alibaba Cloud Redis pour garantir une haute disponibilité. Vous pouvez configurer le paramètre rateLimitService.redis.type en fonction du type de votre instance Redis et du tableau suivant.

Type d'instance

Architecture

Mode de connexion

Configuration redis.type

Nœud unique

N/A

N/A

single

Haute disponibilité

Standard (cluster désactivé)

N/A

single

Cluster (cluster activé)

Mode de connexion directe

cluster

Mode proxy

single

ASM agrège toutes les configurations et génère automatiquement une configuration de service de limitation de débit nommée ratelimit-service-config dans l'espace de noms istio-system. Lorsque vous activez le service de limitation de débit, cette configuration est montée automatiquement. Il n'est pas nécessaire de mettre à jour manuellement la configuration du service de limitation de débit.

PatchConfig

Chemin du champ

Type

Description

targetRef

TargetRef

Définit la ressource cible à corriger. Lorsqu'ASM réconcilie chaque ressource, il fait correspondre les informations réelles de la ressource avec les conditions de targetRef.

patch

string

Le contenu du correctif de fusion stratégique, au format YAML ou JSON. ASM fusionne ce correctif dans la ressource cible.

TargetRef

Chemin du champ

Type

Requis

Description

kind

string

Oui

Le Kind Kubernetes de la ressource cible, tel que Deployment, Service et ConfigMap.

group

string

Non

Le groupe API de la ressource cible, tel que apps. Si ce paramètre n'est pas spécifié, le groupe API n'est pas validé.

name

string

Non

Le nom de la ressource cible. S'il n'est pas spécifié, le correctif s'applique à toutes les ressources du Kind spécifié.

namespace

string

Non

L'Namespace où se trouve la ressource cible. S'il n'est pas spécifié, l'Namespace n'est pas validé.

selector

PatchSelector

Non

Filtre davantage les ressources cibles à l'aide d'un sélecteur d'étiquettes. S'il n'est pas spécifié, les étiquettes ne sont pas mises en correspondance.

PatchSelector

Chemin du champ

Type

Requis

Description

labels

map[string]string

Non

Une carte de paires clé-valeur. Une ressource doit contenir toutes les étiquettes spécifiées pour être mise en correspondance (logique ET).

Important

Lorsqu'ASM réconcilie les ressources, il utilise les règles suivantes pour déterminer si targetRef correspond à la ressource actuelle :

  1. kind doit être identique au Kind de la ressource.

  2. Si group est spécifié, il doit correspondre au groupe API de la ressource.

  3. Si vous spécifiez name, il doit correspondre au nom de la ressource.

  4. Si un namespace est spécifié, il doit être identique à l'espace de noms de la ressource.

  5. Si selector.labels est spécifié, la ressource doit contenir toutes les étiquettes spécifiées (relation ET).