Questo argomento descrive i passaggi da seguire per configurare il componente del database Cassandra per un'installazione di produzione di Apigee hybrid.
Garantisci disponibilità elevata
I cluster Cassandra richiedono tre zone di disponibilità per mantenere la disponibilità in un ambiente di produzione completamente gestito di Google Cloud. Se una zona non è più attiva, le zone rimanenti continueranno a rispondere alle richieste mentre la zona rimanente torna online. Se due o più zone non sono disponibili, Cassandra non potrà rispondere alle richieste finché almeno due zone non saranno online. Apigee consiglia di rimettere le zone online entro tre ore per ridurre al minimo il rischio di perdere gli aggiornamenti dei dati.
Applicare le impostazioni dello spazio di archiviazione di Cassandra
Per applicare modifiche alle impostazioni di archiviazione di Cassandra nel file degli override, esegui questo comando: :
$APIGEECTL_HOME/apigeectl init -f overrides/OVERRIDES_FILE
$APIGEECTL_HOME/apigeectl apply -f overrides/OVERRIDES_FILE
Configurare le impostazioni di archiviazione di Cassandra
Per un'installazione di produzione di Apigee Hybrid, Google consiglia di aggiungere le seguenti impostazioni di archiviazione e heap al file delle sostituzioni e di applicarle al cluster:
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
replicaCount
Il valore di replicaCount
deve essere un multiplo di 3
. Per determinare il tuo
valore di replicaCount
desiderato, considera quanto segue:
- Stimare le richieste di traffico per i proxy.
- Esegui un test di carico e fai previsioni ragionevoli sull'utilizzo della CPU.
- Puoi specificare valori
replicaCount
diversi in regioni diverse. - In futuro, potrai espandere
replicaCount
nel file delle sostituzioni.
Per verificare l'impostazione attuale di replicaCount
, esegui questo comando sul cluster:
kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.replicas}'
storageclass
Per la produzione, lo spazio di archiviazione Cassandra deve essere un StorageClass SSD. Imposta il valore di
storageclass
se non utilizzi il valore predefinito di Kubernetes StorageClass per i tuoi
in un cluster Kubernetes. Puoi controllare il valore predefinito del tuo oggetto StorageClass con il comando seguente.
kubectl get storageclass
L'output dovrebbe avere il seguente aspetto:
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
Segui le istruzioni riportate in Configurazione di StorageClass se vuoi modificare la risorsa StorageClass di Kubernetes predefinita.
Per controllare l'impostazione storageclass
corrente, esegui il seguente comando sul cluster:
kubectl get pvc -n NAMESPACE cassandra-data-apigee-cassandra-default-0 -o=jsonpath='{.metadata.annotations.volume\.beta\.kubernetes\.io/storage-class}'
capacity
Per le installazioni di produzione, Google consiglia una capacità di archiviazione di almeno 500 GB (gigabyte). Puoi modificare la capacità di archiviazione in risposta alle esigenze del tuo cluster. Consulta le Istruzioni in Espandere i volumi permanenti Cassandra in modificare la capacità di archiviazione.
Per controllare l'impostazione della capacità corrente, esegui il seguente comando sul cluster:
kubectl get pvc -n NAMESPACE cassandra-data-apigee-cassandra-default-0 -o=jsonpath='{.spec.resources.requests.storage}'
cpu
e memory
Per le installazioni di produzione, Google consiglia almeno 7 CPU e un minimo di 15 Gi (gibibyte) per
pod. Quando specifichi cassandra.resources.requests.cpu
e
cassandra.resources.requests.memory
, considera il volume di traffico, la CPU e
Richieste di memoria da parte dei proxy.
Per verificare l'impostazione attuale della CPU, esegui questo comando sul cluster:
kubectl get pods -n NAMESPACE apigee-cassandra-default-0 -o=jsonpath='{.spec.containers[].resources.requests.cpu}'
Per controllare l'impostazione di memoria corrente, esegui il seguente comando sul cluster:
kubectl get pods -n NAMESPACE apigee-cassandra-default-0 -o=jsonpath='{.spec.containers[].resources.requests.memory}'
maxHeapSize
e heapNewSize
Queste proprietà determinano rispettivamente l'heap di memoria massima allocata ai processi Cassandra e l'importo con cui la memoria viene aumentata in megabyte (le dimensioni dell'heap sono specificate in megabyte, non in mebibyte). Per gli ambienti di produzione, Google consiglia i seguenti valori:
maxHeapSize: 8192M
heapNewSize: 1200M
Consulta la documentazione del provider della tua piattaforma Kubernetes per avere valori ottimali per le dimensioni heap.
Per controllare l'impostazione maxHeapSize
corrente, esegui il seguente comando sul cluster:
kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.template.spec.containers[].env[?(@.name=="MAX_HEAP_SIZE")]}'
Per verificare l'impostazione attuale di heapNewSize
, esegui questo comando sul cluster:
kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.template.spec.containers[].env[?(@.name=="HEAP_NEWSIZE")]}'
Per ulteriori informazioni su queste impostazioni delle proprietà, consulta la sezione Riferimento alle proprietà di configurazione.
Usa l'archiviazione SSD per i deployment di produzione
Per il database Cassandra, il runtime ibrido supporta solo l'utilizzo di volumi permanenti creati dinamicamente per archiviare i dati. Le unità SSD locali non sono supportate.
Se al momento non hai configurato un'unità SSD per Cassandra, devi configurare una definizione di StorageClass basata su un'unità a stato solido (SSD) e impostarla come classe predefinita. Per la procedura dettagliata, consulta la sezione Configurazione di StorageClass.
Segui le istruzioni riportate in Configurazione di StorageClass se vuoi modificare la risorsa StorageClass di Kubernetes predefinita.