Configuração do StorageClass

Para o banco de dados do Cassandra, o ambiente de execução híbrido usa os volumes permanentes criados dinamicamente para armazenar os dados. Para configurar o Cassandra corretamente, especifique uma definição de StorageClass auxiliada por uma unidade de estado sólido (SSD, na sigla em inglês).

Neste tópico, você aprenderá como criar uma nova StorageClass que usa SSD e torná-la a classe padrão. Quando o Cassandra é iniciado, ele usa essa StorageClass padrão.

Alterar a StorageClass padrão

As etapas a seguir explicam como criar uma StorageClass e torná-la a classe padrão. Para mais informações, consulte Alterar a classe de armazenamento padrão na documentação do Kubernetes.

  1. Consiga o nome da StorageClass padrão atual:
    kubectl get sc

    Exemplo:

    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. Descreva a StorageClass chamada standard. Observe que o tipo dela é pd-standard:
    kubectl describe sc standard

    Exemplo:

    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. Crie um novo arquivo chamado storageclass.yaml.
  4. Adicione este código ao arquivo. Observe que o nome da nova classe é apigee-sc. Use o nome que preferir. Além disso, o tipo de armazenamento é 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. Aplique a nova StorageClass ao cluster do Kubernetes:
    kubectl apply -f storageclass.yaml
  6. Execute os dois comandos a seguir para alterar a StorageClass padrão:
    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. Execute este comando para verificar se a nova StorageClass padrão é chamada apigee-sc:
    kubectl get sc

    Exemplo:

    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