Configurazione StorageClass

Il database Cassandra utilizza volumi permanenti creati dinamicamente per archiviare i dati. Per un corretto funzionamento del database, Apigee richiede la configurazione di un oggetto 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'istanza un nuovo oggetto StorageClass che usa SSD predefinita. All'avvio, Cassandra utilizzerà il valore predefinito di StorageClass.

Modifica il valore predefinito del campo StorageClass

I passaggi seguenti spiegano come creare un oggetto StorageClass e renderlo la classe predefinita. Per ulteriori informazioni informazioni, consulta Modifica la classe di archiviazione predefinita nella documentazione di Kubernetes.

  1. Ottieni 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
      
  2. Descrivi il valore di StorageClass denominato standard-rwo. Tieni presente che il 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>
  3. Crea un nuovo file denominato storageclass.yaml.
  4. 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
    
  5. Applica il nuovo oggetto StorageClass al tuo cluster Kubernetes:
    kubectl apply -f storageclass.yaml
  6. 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"}}}'
  7. 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)   kubernetes.io/gce-pd    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