Configuration de StorageClass

La base de données Cassandra stocke les données à l'aide de volumes persistants créés dynamiquement. Pour garantir le bon fonctionnement de la base de données, Apigee nécessite la configuration d'une définition StorageClass reposant sur un disque dur SSD.

Si aucun disque SSD n'est actuellement configuré pour Cassandra, cet article explique comment créer une classe StorageClass qui utilise SSD et en fait la classe par défaut. Lorsque la base de données Cassandra démarre, elle utilise cette classe StorageClass par défaut.

Modifier la StorageClass par défaut

Les étapes suivantes expliquent comment créer une classe StorageClass et en faire la classe par défaut. Pour plus d'informations, consultez la section Modifier la classe de stockage par défaut dans la documentation de Kubernetes.

  1. Obtenez le nom de la classe StorageClass actuelle par défaut :
    kubectl get sc

    Exemple :

    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. Décrivez la StorageClass nommée standard-rwo. Notez que son type est pd-balanced :
    kubectl describe sc standard-rwo

    Exemple :

    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. Créez un fichier appelé storageclass.yaml.
  4. Ajoutez ce code au fichier. Notez que le nom de la nouvelle classe est apigee-sc. Vous pouvez utiliser n'importe quel nom. Notez également que le type de stockage est 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. Appliquez la nouvelle StorageClass à votre cluster Kubernetes :
    kubectl apply -f storageclass.yaml
  6. Exécutez les deux commandes suivantes pour modifier la StorageClass par défaut :
    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. Exécutez cette commande pour vérifier que la nouvelle StorageClass par défaut est appelée apigee-sc :
    kubectl get sc

    Exemple :

    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