Configuración de StorageClass

Para la base de datos Cassandra, el entorno de ejecución híbrido usa volúmenes persistentes creados de forma dinámica para almacenar datos. Para configurar Cassandra de forma correcta, debes configurar una definición de StorageClass con el respaldo de una unidad de estado sólido (SSD).

En este tema, se explica cómo crear una definición de StorageClass nueva que use SSD y convertirla en la clase predeterminada. Cuando Cassandra se inicie, usará esta definición de StorageClass predeterminada.

Cambia la definición de StorageClass predeterminada

En los siguientes, pasos se explica cómo crear una StorageClass y convertirla en la clase predeterminada. Para obtener más información, consulta Cambia la clase de almacenamiento predeterminada en la documentación de Kubernetes.

  1. Obtén el nombre de la StorageClass predeterminada actual:
    kubectl get sc

    Por ejemplo:

    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. Describe la StorageClass llamada standard. Ten en cuenta que su tipo es pd-standard:
    kubectl describe sc standard

    Por ejemplo:

    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. Crea un archivo nuevo llamado storageclass.yaml de la siguiente manera:
  4. Agrega este código al archivo. Ten en cuenta que el nombre de la clase nueva es apigee-sc. Puedes usar cualquier nombre que desees. Además, ten en cuenta que el tipo de almacenamiento es 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. Aplica la StorageClass nueva a tu clúster de Kubernetes:
    kubectl apply -f storageclass.yaml
  6. Ejecuta los dos comandos siguientes para cambiar la StorageClass predeterminada:
    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. Ejecuta este comando para verificar que la StorageClass predeterminada nueva se llame apigee-sc:
    kubectl get sc

    Por ejemplo:

    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