Scalare e scalare automaticamente i servizi di runtime

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

Servizio Implementata come Scalabilità
Cassandra ApigeeDatastore (CRD) Consulta Scalabilità di Cassandra.
Bilanciatore del carico/in entrata Deployment Anthos Service Mesh utilizza la scalabilità automatica orizzontale dei pod (HPA).
Registratore DaemonSet I DaemonSet gestiscono le repliche di un pod su tutti i nodi, quindi scalano quando scali i pod stessi.
MART
Apigee Connect
Visione
ApigeeOrganization (CRD)

Per scalare tramite configurazione, aumenta il valore dell'attributo Proprietà di configurazione replicaCountMin del deployment per le strofe 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 Horizontal Pod Autoscaler per la scalabilità automatica. Imposta l'oggetto Deployment targetCPUUtilizationPercentage in base alla soglia per lo scale up; quando questo valore è superato, Kubernetes aggiunge i pod al valore replicaCountMax.

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

Runtime
Sincronizzatore
UDCA
ApigeeEnvironment (CRD) Per scalare tramite configurazione, aumenta il valore dell'attributo Proprietà replicaCountMin per 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 degli override. Se vuoi personalizzare la scalabilità per ciascun ambiente, consulta Configurazioni avanzate di seguito.

Questi deployment usano Horizontal Pod Autoscaler per e la scalabilità automatica. Imposta l'oggetto Deployment targetCPUUtilizationPercentage alla soglia per lo scale up; quando questo valore viene superato, Kubernetes somma i pod al valore di replicaCountMax.

Per ulteriori 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 a minReplica di 5 e env2 ha un minReplica di 2.
  • Impostare opzioni di scalabilità diverse per ogni componente all'interno di un ambiente. Ad esempio: in cui il componente udca ha un valore maxReplica pari a 5 e Il componente synchronizer ha un valore maxReplica pari a 2.

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

  1. Crea le 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 in questo esempio si presuppone che kubectl sia in 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