In diesem Thema werden die Schritte beschrieben, die zum Konfigurieren der Cassandra-Datenbankkomponente für eine Apigee-Hybrid-Produktionsinstallation konfigurieren werden müssen.
Hochverfügbarkeit gewährleisten
Cassandra-Cluster benötigen drei Verfügbarkeitszonen, um die Verfügbarkeit in einer Produktionsumgebung beizubehalten. Wenn eine Zone ausfällt, werden die verbleibenden Zonen weiterhin auf Anfragen antworten und die verbleibende Zone ist wieder online. Wenn zwei oder mehr Zonen ausfallen, kann Cassandra erst auf Anfragen antworten, wenn mindestens zwei Zonen wieder online sind. Apigee empfiehlt, Zonen innerhalb von drei Stunden wieder online zu stellen, um das Risiko fehlender Datenaktualisierungen zu minimieren.
Cassandra-Speichereinstellungen konfigurieren
Für Apigee-Hybrid-Produktionsinstallationen empfiehlt Google, dass Sie folgende Speicher- und Heap-Einstellungen zu Ihrer Überschreibungsdatei hinzufügen und auf den Cluster anwenden:
cassandra: ... replicaCount: 3 storage: storageclass: your-preferred-ssd-storage #If not using default storage for your cluster capacity: 500Gi resources: requests: cpu: 7 memory: 15Gi maxHeapSize: 8192M heapNewSize: 1200M
Wenden Sie Änderungen mit dem folgenden Befehl auf Cassandra an:
Helm
helm upgrade datastore apigee-datastore/ \ --namespace apigee \ --atomic \ -f OVERRIDES_FILE.yaml
apigeectl
$APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE.yaml
$APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE.yaml --datastore
replicaCount
Der Wert von replicaCount
muss ein Vielfaches von 3
sein. Ziehen Sie Folgendes in Betracht, um den gewünschten replicaCount
-Wert zu ermitteln:
- Schätzen Sie die Traffic-Anforderungen für Ihre Proxys.
- Lasttest ausführen und vernünftige Vorhersagen für Ihre CPU-Auslastung treffen.
- Sie können in verschiedenen Regionen unterschiedliche Werte für
replicaCount
angeben. - Sie können
replicaCount
in der Zukunft in Ihrer Überschreibungsdatei maximieren.
storageclass
Für die Produktion muss Cassandra-Speicher eine SSD-StorageClass sein. Legen Sie den Wert von storageclass
fest, wenn Sie nicht die standardmäßige Kubernetes-StorageClass für Ihren Cluster verwenden. Sie können die Standard-StorageClass mit dem folgenden Befehl prüfen.
kubectl get storageclass
Die Ausgabe sollte in etwa so aussehen:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 6d23h standard kubernetes.io/gce-pd Delete Immediate true 6d23h standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 6d23h
Folgen Sie der Anleitung unter StorageClass-Konfiguration, wenn Sie die Standard-Kubernetes-StorageClass ändern möchten.
Führen Sie den folgenden Befehl in Ihrem Cluster aus, um die aktuelle storageclass
-Einstellung zu prüfen:
kubectl get pvc -n NAMESPACE cassandra-data-apigee-cassandra-default-0 -o=jsonpath="{['.spec.storageClassName', '.metadata.annotations.volume\.beta\.kubernetes\.io/storage-class']}"
capacity
Für Produktionsinstallationen empfiehlt Google eine Speicherkapazität von mindestens 500 GiB (Gibibyte). Sie können die Speicherkapazität entsprechend den Speicheranforderungen Ihres Clusters ändern. Eine Anleitung zum Ändern der Speicherkapazität finden Sie unter Nichtflüchtige Cassandra-Volumes erweitern.
Führen Sie den folgenden Befehl in Ihrem Cluster aus, um die aktuelle Kapazitätseinstellung zu prüfen:
kubectl get pvc -n NAMESPACE cassandra-data-apigee-cassandra-default-0 -o=jsonpath='{.spec.resources.requests.storage}'
cpu
und memory
Für Produktionsinstallationen empfiehlt Google mindestens 7 CPUs und mindestens 15 GiB (Gibibyte) pro Pod. Berücksichtigen Sie bei der Angabe von cassandra.resources.requests.cpu
und cassandra.resources.requests.memory
das Traffic-Volumen sowie die CPU- und Speicheranforderungen Ihrer Proxys.
Führen Sie den folgenden Befehl in Ihrem Cluster aus, um die aktuelle CPU-Einstellung zu prüfen:
kubectl get pods -n NAMESPACE apigee-cassandra-default-0 -o=jsonpath='{.spec.containers[].resources.requests.cpu}'
Führen Sie den folgenden Befehl in Ihrem Cluster aus, um die aktuelle Speichereinstellung zu prüfen:
kubectl get pods -n NAMESPACE apigee-cassandra-default-0 -o=jsonpath='{.spec.containers[].resources.requests.memory}'
maxHeapSize
und heapNewSize
Diese Attribute bestimmen den maximalen Arbeitsspeicher-Heap, der Cassandra-Prozessen zugewiesen ist, sowie den Betrag, um den der Arbeitsspeicher in Megabyte erhöht wird. Heap-Größen werden in Megabyte, nicht in Mebibyte angegeben. Für Produktionsumgebungen empfiehlt Google die folgenden Werte:
maxHeapSize: 8192M
heapNewSize: 1200M
Informationen zu optimalen Heap-Größenwerten finden Sie in der Dokumentation Ihres Kubernetes-Plattformanbieters.
Führen Sie den folgenden Befehl in Ihrem Cluster aus, um die aktuelle maxHeapSize
-Einstellung zu prüfen:
kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.template.spec.containers[].env[?(@.name=="MAX_HEAP_SIZE")]}'
Führen Sie den folgenden Befehl in Ihrem Cluster aus, um die aktuelle heapNewSize
-Einstellung zu prüfen:
kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.template.spec.containers[].env[?(@.name=="HEAP_NEWSIZE")]}'
Weitere Informationen zu diesen Property-Einstellungen finden Sie in der Referenz zu Konfigurationsattributen.
SSD-Speicher für Produktionsbereitstellungen verwenden
Für die Cassandra-Datenbank unterstützt die Hybridlaufzeit nur die Verwendung von dynamisch erstellten nichtflüchtigen Volumes zum Speichern von Daten. Lokale SSD-Laufwerke (Solid State Disk) werden nicht unterstützt.
Wenn Sie derzeit keine SSD für Cassandra konfiguriert haben, müssen Sie eine StorageClass-Definition konfigurieren, die von einer SSD unterstützt wird, und diese als Standardklasse festlegen. Detaillierte Schritte finden Sie unter StorageClass-Konfiguration.
Folgen Sie der Anleitung unter StorageClass-Konfiguration, wenn Sie die Standard-Kubernetes-StorageClass ändern möchten.