Il database Cassandra utilizza volumi permanenti creati dinamicamente per archiviare i dati. Per un corretto funzionamento del database, Apigee richiede la configurazione di una definizione di StorageClass supportata da un'unità a stato solido (SSD).
Se al momento non hai un'unità SSD configurata per Cassandra, questo argomento spiega come creare un nuovo oggetto StorageClass che utilizzi SSD e renderlo la classe predefinita. All'avvio, Cassandra utilizzerà il valore predefinito di StorageClass.
I passaggi descritti in questo argomento per la configurazione di StorageClass si applicano solo a una nuova installazione di Cassandra. Se hai già installato una classe Cassandra, devi ritirare il cluster esistente per configurare la definizione di StorageClass. Le modifiche alla definizione di StorageClass di un cluster Cassandra esistente dopo l'installazione non sono supportate.
Apigee consiglia il deployment di una regione ibrida in due o più regioni, al fine di ritirare e reinstallare una regione conservando i dati nella regione secondaria. In alternativa, puoi utilizzare un backup ibrido non CSI per ripristinare i dati in un'installazione a una singola regione, dopo aver ritirato e configurato la definizione di StorageClass richiesta.
Modifica il valore predefinito del campo StorageClass
I passaggi seguenti spiegano come creare un oggetto StorageClass e renderlo la classe predefinita. Per ulteriori informazioni, consulta Modificare la classe di archiviazione predefinita nella documentazione di Kubernetes.
- Visualizza il nome dell'attuale oggetto StorageClass predefinito:
kubectl get sc
Ad esempio:
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h - Descrivi il valore di StorageClass denominato
standard-rwo
. Tieni presente che il suo tipo èpd-balanced
:kubectl describe sc standard-rwo
Ad esempio:
kubectl describe sc standard-rwo
Name: standard-rwo IsDefaultClass: Yes Annotations: components.gke.io/layer=addon,storageclass.kubernetes.io/is-default-class=false Provisioner: pd.csi.storage.gke.io Parameters: type=pd-balanced AllowVolumeExpansion: True MountOptions: <none> ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: <none>
- Crea un nuovo file denominato
storageclass.yaml
. - Aggiungi questo codice al file. Tieni presente che il nome della nuova classe
è
apigee-sc
. Puoi utilizzare il nome che preferisci. Inoltre, tieni presente che il tipo di archiviazione èpd-ssd
:--- kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: "apigee-sc" provisioner: pd.csi.storage.gke.io parameters: type: pd-ssd replication-type: none volumeBindingMode: WaitForFirstConsumer allowVolumeExpansion: true
- Applica il nuovo oggetto StorageClass al tuo cluster Kubernetes:
kubectl apply -f storageclass.yaml
- Esegui questi due comandi per modificare il valore predefinito di StorageClass:
kubectl patch storageclass standard-rwo \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
kubectl patch storageclass apigee-sc \ -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
- Esegui questo comando per verificare che il nuovo valore predefinito di StorageClass sia denominato
apigee-sc
:kubectl get sc
Ad esempio:
kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE apigee-sc (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 14h premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h standard kubernetes.io/gce-pd Delete Immediate true 15h standard-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 15h
- Descrivi entrambi gli oggetti StorageClass per verificare il valore di IsDefaultClass.
kubectl describe sc apigee-sc
Name: apigee-sc IsDefaultClass: Yes Annotations: kubectl.kubernetes.io/last-applied-configuration={"allowVolumeExpansion":true,"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{},"name":"apigee-sc"},"parameters":{"replication-type":"none","type":"pd-ssd"},"provisioner":"pd.csi.storage.gke.io","volumeBindingMode":"WaitForFirstConsumer"} ,storageclass.kubernetes.io/is-default-class=true Provisioner: pd.csi.storage.gke.io Parameters: replication-type=none,type=pd-ssd AllowVolumeExpansion: True MountOptions:
ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: kubectl describe sc standard-rwo
Name: standard-rwo IsDefaultClass: No Annotations: components.gke.io/layer=addon,storageclass.kubernetes.io/is-default-class=false Provisioner: pd.csi.storage.gke.io Parameters: type=pd-balanced AllowVolumeExpansion: True MountOptions:
ReclaimPolicy: Delete VolumeBindingMode: WaitForFirstConsumer Events: