Scalabilità automatica dei servizi di runtime

Puoi scalare la maggior parte dei servizi in esecuzione in Kubernetes dalla riga di comando o con un override della configurazione. Puoi impostare i parametri di scalabilità per i servizi di runtime ibridi di Apigee nel file overrides.yaml.

Servizio Implementata come Scalabilità
Cassandra ApigeeDatastore (CRD) Vedi Scalabilità di Cassandra.
Bilanciatore del carico in entrata Deployment Anthos Service Mesh utilizza la scalabilità automatica orizzontale dei pod (HPA).
Logger DaemonSet I DaemonSet gestiscono le repliche di un pod su tutti i nodi, in modo da scalare quando scala i pod stessi.
MART
Apigee Connect
Watcher
ApigeeOrganization (CRD)

Per scalare tramite la configurazione, aumenta il valore della proprietà di configurazione replicaCountMin del deployment per le stanze mart, watcher e/o connectAgent. Ad esempio:

mart:
 replicaCountMin: 2
 replicaCountMax: 1

watcher:
 replicaCountMin: 2
 replicaCountMax: 1

connectAgent:
 replicaCountMin: 2
 replicaCountMax: 1

Questi deployment utilizzano un Horizontal Pod Autoscaler per la scalabilità automatica. Imposta la proprietà targetCPUUtilizationPercentage dell'oggetto Deployment sulla soglia per lo scale up. Se questo valore viene superato, Kubernetes aggiunge i pod fino a raggiungere il valore replicaCountMax.

Per maggiori informazioni sull'impostazione delle proprietà di configurazione, consulta Gestire i componenti del piano di runtime.

Runtime
Sincronizzatore
UDCA
ApigeeEnvironment (CRD) Per scalare tramite la configurazione, aumenta il valore della proprietà replicaCountMin per le stanze udca, synchronizer e/o runtime nel file di override. Ad esempio:
synchronizer:
 replicaCountMin: 10
 replicaCountMax: 1

runtime:
 replicaCountMin: 10
 replicaCountMax: 1

udca:
 replicaCountMin: 10
 replicaCountMax: 1

Nota : queste modifiche si applicano a TUTTI gli ambienti nel file di override. Se vuoi personalizzare la scalabilità per ogni ambiente, consulta la sezione Configurazioni avanzate di seguito.

Questi deployment utilizzano un Horizontal Pod Autoscaler per la scalabilità automatica. Imposta la proprietà targetCPUUtilizationPercentage dell'oggetto Deployment sulla soglia per lo scale up. Quando questo valore viene superato, Kubernetes aggiunge i pod fino al valore di replicaCountMax.

Per maggiori informazioni sull'impostazione delle proprietà di configurazione, consulta Gestire i componenti del piano di runtime.

Configurazioni avanzate

In alcuni scenari, potrebbe essere necessario utilizzare opzioni di scalabilità avanzate. Ecco alcuni scenari di esempio:

  • Impostazione di opzioni di scalabilità diverse per ogni ambiente. Ad esempio, dove env1 ha un minReplica pari a 5 ed env2 ha un minReplica pari a 2.
  • Impostazione di opzioni di scalabilità diverse per ogni componente all'interno di un ambiente. Ad esempio, dove il componente udca ha un valore di maxReplica pari a 5 e il componente synchronizer ha un valore di maxReplica pari a 2.

L'esempio seguente mostra come utilizzare il comando kubernetes patch per modificare la proprietà maxReplicas per il componente runtime:

  1. Crea variabili di ambiente da utilizzare con il 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. Applica la patch. Tieni presente che questo esempio presuppone che kubectl sia nella tua 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. Verifica la modifica:
    kubectl get hpa -n $NAMESPACE