Definir a StorageClass predefinida

Um cluster de utilizadores criado com o Google Distributed Cloud (apenas software) para VMware tem um ou mais objetos StorageClass e um deles é designado como o StorageClass predefinido. Esta página mostra como definir a StorageClass predefinida para um cluster de utilizador. Para mais informações, consulte o artigo Armazenamento.

Esta página destina-se a especialistas de armazenamento que configuram e gerem o desempenho, a utilização e as despesas de armazenamento. Para saber mais sobre as funções comuns e exemplos de tarefas que referimos no conteúdo, consulte o artigo Funções e tarefas comuns do utilizador do GKE. Google Cloud

Encontre a StorageClass predefinida

Apresente todas as StorageClasses:

kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get storageclasses

No resultado, pode ver qual é a StorageClass predefinida. Por exemplo, no resultado seguinte, pode ver que uma StorageClass denominada standard-rwo é a StorageClass predefinida:

standard                      kubernetes.io/vsphere-volume
standard-rwo (default)        csi.vsphere.vmware.com

Quando pede armazenamento, pode especificar uma StorageClass. Se não especificar uma StorageClass, é usada a StorageClass predefinida. Por exemplo, suponhamos que cria um PersistentVolumeClaim que não especifica uma StorageClass. O controlador de volume vai cumprir a reivindicação de acordo com a StorageClass predefinida.

Alterar a StorageClass predefinida

Como administrador do cluster, pode querer alterar a classe de armazenamento predefinida. Em seguida, todos os pedidos de armazenamento que não especifiquem uma StorageClass são cumpridos de acordo com a StorageClass da sua escolha. Esta secção indica os passos para alterar a predefinição.

Implemente um novo sistema de armazenamento

Implemente um novo sistema de armazenamento e todos os componentes de software para integrar o novo mecanismo de armazenamento com um cluster do Kubernetes. Por exemplo, pode ter de instalar um controlador CSI no cluster.

Este passo depende do fornecedor de armazenamento que está a usar. Para controladores CSI, os fornecedores devem fornecer instruções para implementar o respetivo controlador CSI num cluster do Kubernetes. A documentação de um controlador CSI também deve incluir os parâmetros específicos do controlador que fornece na sua StorageClass, incluindo o nome do aprovisionador.

Quando cria uma StorageClass para o seu novo dispositivo, deve dar-lhe um nome com base nas respetivas propriedades (como "rápido" ou "altamente replicado"), em vez de com base no nome do controlador ou do dispositivo específico subjacente. Isto vai facilitar a aplicação de políticas de armazenamento consistentes em todos os clusters e ambientes.

Remova a anotação predefinida da StorageClass predefinida

Abra a StorageClass predefinida num editor de texto:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] edit storageclass \
    DEFAULT_STORAGE_CLASS

No editor de texto, remova a anotação storageclass.kubernetes.io/is-default-class: "true". Feche o editor de texto.

Para verificar se a anotação foi removida, introduza este comando:

kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get storageclass \
    DEFAULT_STORAGE_CLASS --output yaml

Crie uma nova StorageClass

Crie um manifesto para uma nova StorageClass. Inclua a anotação storageclass.kubernetes.io/is-default-class: "true". Por exemplo:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  ...
  name: my-storage-class
  ...
parameters:
  ...
provisioner: [MY_PROVISIONER]
...

Guarde o manifesto como um ficheiro YAML e crie a nova StorageClass:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] apply -f [MANIFEST_FILE]

onde [MANIFEST_FILE] é o caminho para o ficheiro de manifesto StorageClass novo.

O que se segue?