Todos os produtos
Search
Central de documentação

Alibaba Cloud Service Mesh:Personalizar o uso de recursos do Waypoint e o HPA

Última atualização: Jun 28, 2026

Quando os proxies Waypoint lidam com altos volumes de tráfego L7 ou exigem desligamento gracioso para conexões de longa duração, as alocações de recursos padrão podem ser insuficientes. O Service Mesh (ASM) permite personalizar as solicitações de CPU e memória, os limites de escalonamento do Horizontal Pod Autoscaler (HPA) e o comportamento de drenagem do proxy para proxies Waypoint implantados por meio da Gateway API no modo Ambient.

Pré-requisitos

Antes de começar, verifique se você tem:

  • A versão 1.2.1 ou posterior do componente Gateway API instalada no cluster

Como funciona

Para personalizar um Waypoint, defina as configurações desejadas em um ConfigMap e referencie-o no recurso Gateway. O ASM lê o ConfigMap e mescla suas substituições com a configuração de recursos padrão usando um Strategic Merge Patch. Seu ConfigMap precisa conter apenas os campos que você deseja alterar — o ASM mescla as alterações e cria ou atualiza o Deployment e o HPA do Waypoint de acordo.

O ConfigMap suporta três seções de configuração:

SeçãoFinalidade
data.horizontalPodAutoscalerConfigurações do HPA, como contagens mínima e máxima de réplicas
data.deploymentConfigurações no nível do Pod, como solicitações de recursos de contêiner e configurações de tempo de desligamento gracioso
data.proxyConfigConfigurações de tempo de execução do proxy Istio, como duração de drenagem e comportamento de encerramento

Criar um ConfigMap com configurações personalizadas

O ConfigMap deve estar no mesmo namespace que o recurso Gateway que ele configura.

  1. Salve o seguinte conteúdo como gw-options.yaml.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: gw-options
    data:
      horizontalPodAutoscaler: |
        spec:
          minReplicas: 2
          maxReplicas: 2
      deployment: |
        spec:
          # Do not configure replicas when HPA is enabled.
          # replicas: 4
          template:
            spec:
              containers:
              - name: istio-proxy
                resources:
                  requests:
                    cpu: 1000m
              # The maximum wait time before a pod goes offline.
              terminationGracePeriodSeconds: 120
      proxyConfig: |
        # The proxy drain duration.
        drainDuration: 30s
        # The maximum duration for the proxy to stop draining. Ensure that terminationGracePeriodSeconds > terminationDrainDuration > drainDuration.
        terminationDrainDuration: 60s
  2. Aplique o ConfigMap.

    kubectl apply -f gw-options.yaml

Referência de parâmetros do ConfigMap

Parâmetros do HPA (data.horizontalPodAutoscaler)

ParâmetroDescrição
spec.minReplicasNúmero mínimo de réplicas de pod do Waypoint. No exemplo anterior, definido como 2.
spec.maxReplicasNúmero máximo de réplicas de pod do Waypoint. No exemplo anterior, definido como 2 (contagem de réplicas fixa).
Importante

Não defina replicas na seção Deployment quando o HPA estiver ativado. O controlador do HPA gerencia as contagens de réplicas automaticamente, e um valor estático de replicas conflita com as decisões de escalonamento do HPA.

Parâmetros de Deployment (data.deployment)

ParâmetroDescrição
spec.template.spec.containers[].nameNome do contêiner. Defina como istio-proxy para o contêiner do proxy Waypoint.
spec.template.spec.containers[].resources.requests.cpuSolicitação de CPU para o proxy Waypoint. No exemplo anterior, definida como 1000m (1 vCPU). Aumente este valor para namespaces com alto tráfego L7.
spec.template.spec.terminationGracePeriodSecondsTempo máximo (em segundos) que o Kubernetes aguarda antes de encerrar forçosamente um pod durante o desligamento. No exemplo anterior, definido como 120.

Parâmetros do ProxyConfig (data.proxyConfig)

ParâmetroDescrição
drainDurationDuração pela qual o proxy Envoy drena conexões ativas durante o desligamento. No exemplo anterior, definida como 30s.
terminationDrainDurationDuração máxima que o proxy aguarda após iniciar o desligamento gracioso antes de encerrar as conexões restantes. No exemplo anterior, definida como 60s.
Importante

Os três parâmetros de tempo devem satisfazer esta restrição de ordenação: terminationGracePeriodSeconds > terminationDrainDuration > drainDuration. Se esta restrição for violada, as conexões poderão ser encerradas antes que o proxy termine a drenagem, causando falhas nas requisições.

Vincular o ConfigMap ao recurso Gateway

Após criar o ConfigMap, referencie-o no recurso Gateway por meio do campo infrastructure.parametersRef.

  1. Salve o seguinte conteúdo como gateway.yaml. O bloco infrastructure.parametersRef referencia o ConfigMap gw-options. O ASM lê esta referência e aplica os valores do ConfigMap ao Deployment e ao HPA do Waypoint.

    apiVersion: gateway.networking.k8s.io/v1
    kind: Gateway
    metadata:
      name: waypoint
      namespace: default
    spec:
      infrastructure:
        parametersRef:
          group: ""
          kind: ConfigMap
          name: gw-options
      gatewayClassName: istio-waypoint
      listeners:
      - allowedRoutes:
          namespaces:
            from: Same
        name: mesh
        port: 15008
        protocol: HBONE
  2. Aplique o recurso Gateway.

    kubectl apply -f gateway.yaml

Verificar a configuração

Após aplicar ambos os recursos, verifique se o ASM mesclou as configurações do ConfigMap no Deployment e no HPA do Waypoint.

  1. Verifique o Deployment do Waypoint. Na saída, confirme que:

    • O contêiner istio-proxy tem cpu: 1000m em resources.requests.

    • terminationGracePeriodSeconds é 120.

    kubectl get deployment waypoint -n default -o yaml
  2. Verifique o HPA. Confirme que MINPODS é 2 e MAXPODS é 2 para o HPA do Waypoint.

    kubectl get hpa -n default