Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Referência do CRD ASMMeshConfig

Última atualização: Jun 28, 2026

O ASMMeshConfig é um recurso personalizado (CR) do Alibaba Cloud Service Mesh (ASM) que define a configuração global da malha de serviços. Semelhante ao MeshConfig do Istio, este CR permite gerencie centralmente parâmetros no nível da malha, como timeout de conexão, detecção de protocolo, normalização de caminho e política de nova tentativa. Também é possível usá-lo para controlar o comportamento e a cota de recursos do injetor de sidecar.

Exemplo de configuração

O exemplo a seguir especifique configurações globais para uma instância ASM, incluindo configuração de conexão, normalização de caminho, política de nova tentativa HTTP, configuração do injetor de sidecar e o serviço global de limitação de taxa.

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"
Importante

Para usar todos os campos do CRD ASMMeshConfig, a instância ASM deve estar na versão 1,24 ou posterior. A configuração rateLimitService exige a versão 1.25.6.84 da instância. Além disso, o CR ASMMeshConfig não possui namespace e seu nome deve ser default. CRs ASMMeshConfig com qualquer outro nome são ignorados.

Referência de campos

Spec (Configuração da malha)

Caminho do campo

Tipo

Descrição

Valor de exemplo

tcpKeepalive

TcpKeepalive

Configura as definições de keepalive TCP.

probes: 5

connectTimeout

Duration

Define o tempo máximo de espera para o proxy Envoy estabelecer uma conexão TCP. Um timeout aciona um erro de upstream connect timeout. As unidades suportadas são ns/ms/s/m/h.

30s

protocolDetectionTimeout

Duration

Timeout para detecção de protocolo, usado para identificar tráfego HTTP/HTTPS. Se o protocolo não for detectado dentro dessa duração, o tráfego será tratado como TCP bruto.

Importante

Este campo é configurável apenas nas versões 1,19 e anteriores do ASM.

pathNormalization

PathNormalization

Configura a normalização de caminho para requisições HTTP.

defaultHttpRetryPolicy

DefaultHttpRetryPolicy

Define a política padrão de nova tentativa HTTP para sidecars.

enablePrometheusMerge

Bool

Se true, mescla as anotações prometheus.io do pod com a configuração de monitoramento do ASM para evitar coleta duplicada de métricas.

true

sidecarInjectorWebhookConfiguration

SidecarInjectorWebhookConfiguration

Configura o injetor de sidecar.

accessLogConfiguration

AccessLogConfiguration

Configura o formato e a coleta de logs de acesso.

rateLimitService

RatelimitService

Configura o serviço global de limitação de taxa.

Importante

Este campo é configurável apenas nas versões 1,25 e posteriores do ASM.

manifestPatch

[]PatchConfig

O campo manifestPatch permite aplicar um Strategic Merge Patch aos recursos Kubernetes renderizados pelo plano de controle do ASM. Isso possibilita personalizar recursos gerenciados automaticamente, como Deployments, Services e ConfigMaps, sem modificar o código do plano de controle.

Importante

Este campo é configurável apenas nas versões 1,27 e posteriores do ASM.

TcpKeepalive

Caminho do campo

Tipo

Descrição

Valor de exemplo

Escopo

probes

Uint32

Número máximo de probes de keepalive TCP a enviar. Um valor de 0 desativa o mecanismo de keepalive.

9

Conexões TCP de saída de longa duração.

time

Duration

Tempo de ociosidade antes do envio do primeiro probe de keepalive.

7200s

interval

Duration

O intervalo de envio do probe de keepalive deve ser menor que o parâmetro time.

75s

PathNormalization

Caminho do campo

Tipo

Descrição

Valor de exemplo

Escopo

normalization

Enum

Política de processamento do caminho URI:

  • NONE: Desativa a normalização.

  • BASE: Mescla barras e mantém parâmetros de caminho (como ;).

  • MERGE_SLASHES: Mescla apenas barras consecutivas.

NONE

Roteamento HTTP global da malha.

DefaultHttpRetryPolicy

Caminho do campo

Tipo

Descrição

Valor de exemplo

Escopo

attempts

Int32

Número máximo de tentativas para uma requisição HTTP. Esta configuração global aplica-se apenas se um VirtualService não definir explicitamente sua própria política de nova tentativa.

2

Política de roteamento HTTP.

perTryTimeout

Duration

Timeout para cada tentativa. Este valor deve ser menor que o timeout geral da requisição definido no VirtualService.

0s (ilimitado)

retryOn

String

Define as condições que acionam uma nova tentativa. Os tipos de erro padrão suportados incluem 5xx, gateway-error, connect-failure e reset. Separe vários valores com vírgulas.

gateway-error, connect-failure, refused-stream

SidecarInjectorWebhookConfiguration

Caminho do campo

Tipo

Descrição

Valor de exemplo

Escopo

rewriteAppHTTPProbe

Bool

Se true, reescreve o probe de prontidão HTTP do pod e o redireciona para o proxy sidecar.

true

Comportamento de injeção de sidecar.

replicaCount

Int

Número de réplicas do controlador do injetor de sidecar para garantir alta disponibilidade.

2

Componente injetor de sidecar.

resources

Object

Configuração da cota de recursos:

  • requests: Recursos mínimos necessários para iniciar o container.

  • limits: Quantidade máxima de recursos que um container pode usar.

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

Componente injetor de sidecar.

AccessLogConfiguration

Caminho do campo

Tipo

Descrição

Valor de exemplo

logEncoding

String

Formato de saída dos logs. Os valores válidos são JSON e TEXT.

JSON

logProject

String

Projeto de destino no Alibaba Cloud Log Service (SLS) para os logs.

Importante

Este campo é configurável apenas nas versões 1,25 e posteriores do ASM.

log-project-test

gatewayEnabled

Boolean

Se true, coleta e envia logs de acesso do gateway para o Alibaba Cloud Log Service (SLS).

true

sidecarEnabled

Boolean

Se true, coleta e envia logs de acesso dos sidecars para o Alibaba Cloud Log Service (SLS).

true

ztunnelEnabled

Boolean

Se true, coleta e envia logs de acesso do Ztunnel para o Alibaba Cloud Log Service (SLS).

Importante

Este campo é configurável apenas nas versões 1,25 e posteriores do ASM.

true

gatewayLifecycle

Integer

Período de retenção em dias para logs de acesso do gateway. Padrão: 90.

30

sidecarLifecycle

Integer

Período de retenção em dias para logs de acesso do sidecar. Padrão: 90.

30

ztunnelLifecycle

Integer

Período de retenção em dias para logs de acesso do Ztunnel. Padrão: 90.

Importante

Este campo é configurável apenas nas versões 1,25 e posteriores do ASM.

30

RatelimitService

Caminho do campo

Tipo

Descrição

Valor de exemplo

Escopo

enabled

Bool

Define se o serviço global de limitação de taxa deve ser ativado.

true

Capacidade global de limitação de taxa.

replicas

Int

Número de réplicas do serviço de limitação de taxa.

1

Disponibilidade e desempenho do serviço de limitação de taxa.

resources

Object

Configuração de recursos do serviço de limitação de taxa.

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

Disponibilidade e desempenho do serviço de limitação de taxa.

redis

Object

Configuração da instância Redis usada pelo serviço de limitação de taxa.

Nota

O serviço global de limitação de taxa usa o Redis para armazenar políticas e decisões de limitação.

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

Backend de estado da limitação de taxa.

redis.type

String

Tipo do cluster Redis. Os valores válidos são single, cluster e sentinel. O valor padrão é single.

single

Backend de estado da limitação de taxa.

redis.url

String

Endereço do Redis.

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

Backend de estado da limitação de taxa.

redis.auth

String

Informações de autenticação do Redis. O formato é password ou user:password. Por segurança, recomendamos o uso de um AuthSecret.

xxxxxx

Gerenciamento de segurança de credenciais.

redis.authSecret

String

Nome do Secret que armazena as credenciais de autenticação do Redis.

Nota

Este Secret deve ser implantado no namespace istio-system e conter as informações de autenticação codificadas em Base64 na chave redis-auth.

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

Gerenciamento de segurança de credenciais.

redis.cacheKeyPrefix

String

Prefixo das chaves de cache do Redis. O padrão é vazio.

N/A

Backend de estado da limitação de taxa.

Nota

Recomendamos o uso do Alibaba Cloud Redis para garantir alta disponibilidade. Configure o parâmetro rateLimitService.redis.type com base no tipo da sua instância Redis e na tabela a seguir.

Tipo de instância

Arquitetura

Modo de conexão

Configuração redis.type

Nó único

N/A

N/A

single

Alta disponibilidade

Padrão (cluster desativado)

N/A

single

Cluster (cluster ativado)

Modo de conexão direta

cluster

Modo Proxy

single

O ASM agrega todas as configurações e gera automaticamente uma configuração de serviço de limitação de taxa chamada ratelimit-service-config no namespace istio-system. Ao ative o serviço de limitação de taxa, essa configuração é montada automaticamente. Não é necessário atualize manualmente a configuração do serviço de limitação de taxa.

PatchConfig

Caminho do campo

Tipo

Descrição

targetRef

TargetRef

Especifique o recurso alvo para aplicar o patch. Durante a reconciliação de cada recurso, o ASM compara as informações reais do recurso com as condições em targetRef.

patch

string

Conteúdo do Strategic Merge Patch, nos formatos YAML ou JSON. O ASM mescla este patch ao recurso alvo.

TargetRef

Caminho do campo

Tipo

Obrigatório

Descrição

kind

string

Sim

O Kind Kubernetes do recurso alvo, como Deployment, Service e ConfigMap.

group

string

Não

O API Group do recurso alvo, como apps. Se este parâmetro não for especificado, o API Group não será validado.

name

string

Não

Nome do recurso alvo. Se não especificado, o patch aplica-se a todos os recursos do Kind indicado.

namespace

string

Não

O Namespace onde o recurso alvo está localizado. Se não especificado, o Namespace não será validado.

selector

PatchSelector

Não

Filtra adicionalmente os recursos alvo usando um seletor de rótulos. Se não especificado, os rótulos não serão correspondidos.

PatchSelector

Caminho do campo

Tipo

Obrigatório

Descrição

labels

map[string]string

Não

Mapa de pares chave-valor. Um recurso deve conter todos os rótulos especificados para haver correspondência (lógica AND).

Importante

Ao reconciliar recursos, o ASM utiliza as seguintes regras para determinar se targetRef corresponde ao recurso atual:

  1. kind deve ser idêntico ao Kind do recurso.

  2. Se group for especificado, deve corresponder ao API Group do recurso.

  3. Se você especificar name, ele deve corresponder ao nome do recurso.

  4. Se um namespace for especificado, deve ser igual ao namespace do recurso.

  5. Se selector.labels for especificado, o recurso deve conter todos os rótulos indicados (relação AND).