Laufzeitdienste skalieren/automatisch skalieren

Sie können die meisten in Kubernetes ausgeführten Dienste über die Befehlszeile oder per Konfigurationsüberschreibung skalieren. Sie können Skalierungsparameter für Apigee Hybrid-Laufzeitdienste in der overrides.yaml-Datei festlegen.

Dienst Implementierung als Skalieren
Cassandra ApigeeDatastore (CRD) Weitere Informationen finden Sie unter Cassandra-Skalierung skalieren.
Ingress/LoadBalancer Deployment Anthos Service Mesh verwendet horizontales Pod-Autoscaling (HPAs).
Logger DaemonSet DaemonSets verwalten die Replikate eines Pods auf allen Knoten. Sie skalieren also, wenn Sie die Pods selbst skalieren.
MART
Apigee Connect
Watcher
ApigeeOrganization (CRD)

Zur Skalierung über die Konfiguration erhöhen Sie den Wert des Konfigurationsattributs replicaCountMin der Bereitstellung für die Stanzas mart, watcher und/oder connectAgent. Beispiele:


mart:
 replicaCountMin: 2
 replicaCountMax: 1

watcher:
 replicaCountMin: 2
 replicaCountMax: 1

connectAgent:
 replicaCountMin: 2
 replicaCountMax: 1

Diese Bereitstellungen verwenden ein horizontales Pod-Autoscaling für das Autoscaling. Legen Sie für das Attribut targetCPUUtilizationPercentage des Bereitstellungsobjekts den Schwellenwert für das Hochskalieren fest. Wird dieser Wert überschritten, fügt Kubernetes Pods bis zum Wert von replicaCountMax hinzu.

Weitere Informationen zum Festlegen von Konfigurationsattributen finden sich unter Komponenten der Laufzeitebene verwalten.

Laufzeit
Synchronizer
UDCA
ApigeeEnvironment (CRD) Zur Skalierung über die Konfiguration erhöhen Sie den Wert des Attributs replicaCountMin für die Stanzas udca, synchronizer und/oder runtime in der Überschreibungsdatei. Beispiele:

synchronizer:
 replicaCountMin: 10
 replicaCountMax: 1

runtime:
 replicaCountMin: 10
 replicaCountMax: 1

udca:
 replicaCountMin: 10
 replicaCountMax: 1

Hinweis: Diese Änderungen gelten für ALLE Umgebungen in der Überschreibungendatei. Wenn Sie die Skalierung für jede Umgebung anpassen möchten, lesen Sie den Abschnitt Erweiterte Konfigurationen weiter unten.

Bereitstellungen verwenden ein horizontales Pod-Autoscaling für das Autoscaling. Legen Sie für das Attribut targetCPUUtilizationPercentage des Bereitstellungsobjekts den Schwellenwert für das Hochskalieren fest. Wird dieser Wert überschritten, fügt Kubernetes Pods bis zum Wert von replicaCountMax hinzu.

Weitere Informationen zum Festlegen von Konfigurationsattributen finden sich unter Komponenten der Laufzeitebene verwalten.

Erweiterte Konfigurationen

In einigen Szenarien müssen Sie eventuell erweiterte Skalierungsoptionen verwenden. Beispielszenarien:

  • Unterschiedliche Skalierungsoptionen für jede Umgebung festlegen. Beispiel: env1 hat ein minReplica von 5 und env2 ein minReplica von 2.
  • Unterschiedliche Skalierungsoptionen für jede Komponente in einer Umgebung festlegen. Beispiel: Die Komponente udca hat ein maxReplica von 5 und die Komponente synchronizer hat ein maxReplica von 2.

Das folgende Beispiel zeigt, wie Sie mit dem Befehl kubernetes patch das Attribut maxReplicas für die Komponente runtime ändern:

  1. Erstellen Sie Umgebungsvariablen für die Verwendung mit dem Befehl:
    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. Wenden Sie den Patch an. In diesem Beispiel wird davon ausgegangen, dass sich kubectl in Ihrem PATH befindet:
    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. Überprüfen Sie die Änderung mit dem folgenden Befehl:
    kubectl get hpa -n $NAMESPACE