Questo argomento descrive i passaggi da seguire per configurare il componente del database Cassandra per un'installazione di produzione di Apigee hybrid.
Garantire l'alta disponibilità
I cluster Cassandra richiedono tre zone di disponibilità per mantenere la disponibilità in un ambiente di produzione. Se una zona non è più disponibile, le zone rimanenti continueranno a rispondere alle richieste mentre la zona rimanente torna online. Se due o più zone non sono disponibili, Cassandra non sarà in grado di rispondere alle richieste finché almeno due zone non saranno online. Apigee consiglia di ripristinare la connessione delle zone entro tre ore per ridurre al minimo il rischio di perdere gli aggiornamenti dei dati.
Applicare le impostazioni di archiviazione di Cassandra
Per applicare le modifiche alle impostazioni di archiviazione di Cassandra nel file di override, esegui i seguenti comandi:
$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 di override 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: 1200MreplicaCount
Il valore di replicaCount deve essere un multiplo di 3. Per determinare il valore replicaCount che preferisci, tieni presente quanto segue:
- Stima le richieste di traffico per i tuoi proxy.
- Esegui il test di carico e fai previsioni ragionevoli sull'utilizzo della CPU.
- Puoi specificare valori
replicaCountdiversi in regioni diverse. - In futuro potrai espandere
replicaCountnel file di override.
Per controllare l'impostazione replicaCount corrente, esegui il seguente comando sul cluster:
kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.replicas}'
storageclass
Per la produzione, l'archiviazione Cassandra deve essere un oggetto StorageClass SSD. Imposta il valore di
storageclass se non utilizzi la classe di archiviazione Kubernetes predefinita per il tuo
cluster. Puoi controllare StorageClass predefinita con il seguente comando.
kubectl get storageclass
L'output dovrebbe essere simile a questo:
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 predefinita di Kubernetes.
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 Gi (gibibyte). Puoi modificare la capacità di archiviazione in base alle esigenze di archiviazione del cluster. Per modificare la capacità di archiviazione, consulta le istruzioni riportate in Espansione di volumi Cassandra permanenti.
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, tieni conto del volume di traffico e dei requisiti di CPU e
memoria dei tuoi proxy.
Per controllare l'impostazione della CPU corrente, esegui il seguente 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 attuale, esegui questo 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 l'heap di memoria massimo allocato ai processi Cassandra e la quantità di cui la memoria viene aumentata, rispettivamente, in megabyte (le dimensioni dell'heap sono specificate in megabyte, non in mebibyte). Per gli ambienti di produzione, Google consiglia i seguenti valori:
maxHeapSize: 8192MheapNewSize: 1200M
Consulta la documentazione del provider della piattaforma Kubernetes per i valori ottimali delle dimensioni dell'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 controllare l'impostazione heapNewSize corrente, esegui il seguente 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 il riferimento per le proprietà di configurazione.
Utilizza l'archiviazione SSD per i deployment di produzione
Per il database Cassandra, l'ambiente di runtime ibrido supporta solo l'utilizzo di volumi permanenti creati dinamicamente per archiviare i dati. Le unità a stato solido (SSD) locali non sono supportate.
Se al momento non hai configurato l'SSD per Cassandra, devi configurare una definizione StorageClass supportata da un'unità SSD (Solid State Drive) e impostarla come classe predefinita. Per i passaggi dettagliati, vedi Configurazione di StorageClass.
Segui le istruzioni riportate in Configurazione di StorageClass se vuoi modificare la risorsa StorageClass predefinita di Kubernetes.