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.