Como definir a classe de armazenamento padrão

Nesta página, mostramos como definir a classe de armazenamento padrão para um cluster do GKE On-Prem. Consulte também Armazenamento.

Visão geral

O GKE On-Prem pode ser integrado ao armazenamento em blocos ou arquivos usando qualquer um dos seguintes mecanismos:

Quando você cria um cluster, o GKE On-Prem cria um objeto StorageClass chamado standard. Esse é o StorageClass padrão do cluster.

Para ver informações detalhadas sobre o StorageClass standard, insira o seguinte comando:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get storageclass standard --output yaml

em que [CLUSTER_KUBECONFIG] é o caminho do arquivo kubeconfig do cluster.

Na saída, é possível ver que o nome do StorageClass é standard. Também é possível ver a anotação storageclass.kubernetes.io/is-default-class: "true". Essa anotação identifica o StorageClass chamado standard como o StorageClass padrão.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  ...
  name: standard
  ...
parameters:
  datastore: HOST2-DATASTORE2
  diskformat: thin
  fstype: ext4
provisioner: kubernetes.io/vsphere-volume
reclaimPolicy: Delete
volumeBindingMode: Immediate

Seu cluster pode ter vários objetos StorageClass, mas somente um deles pode ter a anotação storageclass.kubernetes.io/is-default-class: "true" e, portanto, ser o StorageClass padrão.

Na saída anterior, também é possível ver que o provisionador é kubernetes.io/vsphere-volume. Este é o provisionador que realiza ações quando um cliente solicita uma parte do armazenamento de standard.

StorageClass padrão

Quando você solicita o armazenamento, é possível especificar um StorageClass. Se você não especificar um StorageClass, o StorageClass padrão será usado. Por exemplo, suponha que você crie um PersistentVolumeClaim que não especifique um StorageClass. O controlador de volume atenderá à declaração de acordo com o StorageClass padrão.

Como alterar o StorageClass padrão

Como administrador de cluster, talvez você queira alterar a classe de armazenamento padrão. Em seguida, todas as solicitações de armazenamento que não especificarem um StorageClass serão atendidas de acordo com o StorageClass de sua escolha. Nesta seção, você verá as etapas para alterar o padrão.

Implantar um novo sistema de armazenamento

Implantar um novo sistema de armazenamento e quaisquer componentes de software para integrar o novo mecanismo de armazenamento a um cluster do Kubernetes. Por exemplo, você pode precisar implantar um driver CSI no cluster.

Essa etapa depende do fornecedor de armazenamento que você está usando. Os fornecedores devem fornecer instruções de implantação. Para CSI, os fornecedores precisam fornecer instruções para implantar o driver CSI em um cluster do Kubernetes.

Remover a anotação padrão do StorageClass standard

Para abrir o manifesto StorageClass standard em um editor de texto, insira o seguinte comando:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] edit storageclass standard

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, digite este comando:

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get storageclass standard --output yaml

Criar um novo objeto StorageClass

Crie um manifesto para um novo objeto StorageClass. Inclua a anotação storageclass.kubernetes.io/is-default-class: "true". 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]
...

Salve o manifesto como um arquivo e crie o novo objeto StorageClass:

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

em que [MANIFEST_FILE] é o caminho para o novo arquivo de manifesto de StorageClass.

A seguir