Configurazione StorageClass

Il database Cassandra utilizza volumi permanenti creati dinamicamente per archiviare i dati. Per il corretto funzionamento del database, Apigee richiede di configurare una definizione StorageClass supportata da un'unità a stato solido (SSD).

Se al momento non hai configurato l'SSD per Cassandra, questo argomento spiega come creare una nuova StorageClass che utilizza l'SSD e impostarla come classe predefinita. Quando Cassandra viene avviato, utilizza questa classe di archiviazione predefinita.

Modificare la risorsa StorageClass predefinita

I seguenti passaggi spiegano come creare una StorageClass e impostarla come classe predefinita. Per ulteriori informazioni, consulta Modificare la classe di archiviazione predefinita nella documentazione di Kubernetes.

  1. Recupera il nome della risorsa StorageClass predefinita attuale:
    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 la classe di archiviazione denominata 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>
  3. Crea un nuovo file denominato storageclass.yaml.
  4. Aggiungi questo codice al file. Tieni presente che il nome del nuovo corso è apigee-sc. Puoi utilizzare il nome che preferisci. Inoltre, tieni presente che il tipo di spazio 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 la nuova StorageClass al cluster Kubernetes:
    kubectl apply -f storageclass.yaml
  6. Esegui i due comandi seguenti per modificare StorageClass predefinita:
    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 la nuova risorsa StorageClass predefinita si chiami 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