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 | Implementato 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). |
Logger | 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 eseguire il ridimensionamento tramite configurazione, aumenta il valore della proprietà di configurazione 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à Per ulteriori informazioni sull'impostazione delle proprietà di configurazione, consulta Gestire i componenti del piano di runtime. |
Runtime Synchronizer UDCA |
ApigeeEnvironment (CRD) | Per scalare tramite configurazione, aumenta il valore del parametro
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
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 ridimensionamento avanzate. Ecco alcuni scenari di esempio:
- Impostazione di opzioni di ridimensionamento diverse per ogni ambiente. Ad esempio, dove env1 ha
a
minReplica
di 5 e env2 ha unminReplica
di 2. - Impostare opzioni di scalabilità diverse per ogni componente all'interno di un ambiente. Ad esempio,
se il componente
udca
ha un valoremaxReplica
pari a 5 e il componentesynchronizer
ha un valoremaxReplica
pari a 2.
L'esempio seguente mostra come utilizzare il comando kubernetes patch
per apportare modifiche
la proprietà maxReplicas
per il componente runtime
:
- 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
- Applica la patch. Tieni presente che questo esempio presuppone che
kubectl
sia inPATH
: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
- Verifica la modifica:
kubectl get hpa -n $NAMESPACE