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:
- Armazenamento de vSphere do VMware
- Plug-ins de volume do Kubernetes na árvore
- Interface de armazenamento em contêineres (CSI, na sigla em inglês)
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.