Configuration de StorageClass

Pour la base de données Cassandra, l'environnement d'exécution hybride utilise des volumes persistants créés dynamiquement pour stocker des données. Pour configurer correctement Cassandra, vous devez configurer une définition StorageClass sauvegardée par un disque dur SSD.

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                   40m
      standard (default)    kubernetes.io/gce-pd   Delete
      Immediate             true                   40m
      standard-two          pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer  true                   40m
  2. Décrivez la StorageClass nommée standard. Notez que son type est pd-standard :
    kubectl describe sc standard

    Exemple :

    kubectl describe sc standard
      Name:                  standard
      IsDefaultClass:        Yes
      Annotations:           storageclass.beta.kubernetes.io/is-default-class=true
      Provisioner:           kubernetes.io/gce-pd
      Parameters:            type=pd-standard
      AllowVolumeExpansion:  <unset>
      MountOptions:          <none>
      ReclaimPolicy:         Delete
      VolumeBindingMode:     Immediate
      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 \
      -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)  pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer true                   67s
      premium-rwo          pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer true                   49m
      standard             kubernetes.io/gce-pd   Delete
      Immediate            true                   49m
      standard-rwo         pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer true                   49m