Scalabilità e scalabilità automatica dei servizi di runtime

Puoi scalare la maggior parte dei servizi in esecuzione in Kubernetes dalla riga di comando o in una sostituzione di 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 si adattano alle modifiche quando esegui lo scale dei pod stessi.
MART
Apigee Connect
Watcher
ApigeeOrganization (CRD)

Per scalare tramite configurazione, aumenta il valore del parametro Proprietà di configurazione replicaCountMin del deployment per le strofe mart, watcher e/o connectAgent. Ad esempio:

mart:
 replicaCountMax: 2
 replicaCountMin: 1

watcher:
 replicaCountMax: 2
 replicaCountMin: 1

connectAgent:
 replicaCountMax: 2
 replicaCountMin: 1

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

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

Runtime
Synchronizer
UDCA
ApigeeEnvironment (CRD) Per eseguire il ridimensionamento tramite configurazione, aumenta il valore della proprietà replicaCountMin per le stanza udca, synchronizer e/o runtime nel file delle sostituzioni. Ad esempio:
synchronizer:
 replicaCountMax: 10
 replicaCountMin: 1

runtime:
 replicaCountMax: 10
 replicaCountMin: 1

udca:
 replicaCountMax: 10
 replicaCountMin: 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 la proprietà targetCPUUtilizationPercentage dell'oggetto Deployment sulla soglia per l'aumento di scala. Quando questo valore viene superato, Kubernetes aggiunge i pod fino 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, env1 ha un valore minReplica pari a 5 e env2 ha un valore minReplica pari a 2.
  • Impostazione di opzioni di scalabilità diverse per ciascun 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