Servicios del entorno de ejecución de escalamiento y ajuste de escala automático

Puedes escalar la mayoría de los servicios que se ejecutan en Kubernetes desde la línea de comandos o en una anulación de configuración. Puedes configurar los parámetros de escalamiento para los servicios del entorno de ejecución de Apigee Hybrid en el archivo overrides.yaml.

Servicio Implementado como Escalamiento
Cassandra ApigeeDatastore (CRD) Consulta Escalamiento de Cassandra.
Ingress/LoadBalancer Deployment Anthos Service Mesh usa el ajuste de escala automático horizontal de Pods (HPA).
Logger DaemonSet Los DaemonSet administran réplicas de un pod en todos los nodos, por lo que escalan cuando escalas los pods.
MART
Apigee Connect
Watcher
ApigeeOrganization (CRD)

Para escalar a través de la configuración, aumenta el valor de la propiedad replicaCountMin de la implementación para las estrofas mart, watcher o connectAgent. Por ejemplo:

mart:
 replicaCountMin: 2
 replicaCountMax: 1

watcher:
 replicaCountMin: 2
 replicaCountMax: 1

connectAgent:
 replicaCountMin: 2
 replicaCountMax: 1

Estas implementaciones usan un ajuste de escala automático de pod horizontal para el ajuste de escala automático. Configura la propiedad targetCPUUtilizationPercentage del objeto Deployment en el límite de escalamiento vertical. Cuando este valor se supera, Kubernetes agrega pods hasta el valor de replicaCountMax.

Para obtener más información sobre cómo configurar las propiedades de configuración, consulta Administra los componentes del plano de entorno de ejecución.

Entorno de ejecución
Synchronizer
UDCA
ApigeeEnvironment (CRD) Para escalar a través de la configuración, aumenta el valor de la propiedad replicaCountMin para las estrofas udca, synchronizer o runtime del archivo de anulación. Por ejemplo:
synchronizer:
 replicaCountMin: 10
 replicaCountMax: 1

runtime:
 replicaCountMin: 10
 replicaCountMax: 1

udca:
 replicaCountMin: 10
 replicaCountMax: 1

Nota: Estos cambios se aplican a TODOS los entornos del archivo de anulación. Si deseas personalizar el escalamiento para cada entorno, consulta la sección Configuración avanzada a continuación.

Estas implementaciones usan un ajuste de escala automático de pod horizontal para el ajuste de escala automático. Configura la propiedad targetCPUUtilizationPercentage del objeto Deployment en el límite de escalamiento vertical. Cuando este valor se supera, Kubernetes agrega pods hasta el valor de replicaCountMax.

Para obtener más información sobre cómo configurar las propiedades de configuración, consulta Administra los componentes del plano de entorno de ejecución.

Configuración avanzada

En algunos casos, es posible que debas usar opciones de escalamiento avanzadas. Algunos ejemplos de situaciones son los siguientes:

  • Configura diferentes opciones de escalamiento para cada entorno Por ejemplo, donde env1 tiene un minReplica de 5 y env2 tiene un minReplica de 2.
  • Configura diferentes opciones de escalamiento para cada componente dentro de un entorno Por ejemplo, cuando el componente udca tiene una maxReplica de 5 y el componente synchronizer tiene una maxReplica de 2.

En el siguiente ejemplo, se muestra cómo usar el comando kubernetes patch para cambiar la propiedad maxReplicas del componente runtime:

  1. Crea las variables de entorno para usarlas con el comando:
    export ENV=my-environment-name
    export NAMESPACE=apigee  #the namespace where apigee is deployed
    export COMPONENT=runtime #can be udca or synchronizer
    export MAX_REPLICAS=2
    export MIN_REPLICAS=1
  2. Aplica el parche. Ten en cuenta que en este ejemplo se da por sentado que kubectl está en la PATH:
    kubectl patch apigeeenvironment -n $NAMESPACE \
      $(kubectl get apigeeenvironments -n $NAMESPACE -o jsonpath='{.items[?(@.spec.name == "'$ENV'" )]..metadata.name}') \
      --patch "$(echo -e "spec:\n  components:\n    $COMPONENT:\n      autoScaler:\n        maxReplicas: $MAX_REPLICAS\n        minReplicas: $MIN_REPLICAS")" \
      --type merge
    
  3. Verifique el cambio:
    kubectl get hpa -n $NAMESPACE