Neste documento, explicamos como usar o driver Interface do Container Storage (CSI) do vSphere com o GKE on VMware.
Visão geral
O driver CSI do vSphere é implantado automaticamente no GKE on VMware. Para informações sobre o uso de outros drivers CSI, consulte Como instalar um driver CSI.
Requisitos do vSphere
Para usar o driver CSI do vSphere, você precisa ter:
uma versão compatível do vCenter Server com base em Linux;
Expansão de volume
A expansão de volume off-line exige que o vCenter Server e o ESXi estejam na versão 7.0 da atualização 1 ou mais recente.
A expansão de volume on-line exige que o vCenter Server e o ESXi usem a versão 7.0 Update 2 ou mais recente.
Snapshot de volume
O snapshot do volume requer que o vCenter Server e o ESXi usem a versão 7.0 Update 3 ou mais recente.
Cns.Searchable
Sua conta de usuário do vCenter precisa ter o privilégio Cns.Searchable no objeto raiz do vCenter.
Se você não tiver certeza de que sua conta atende aos pré-requisitos do CSI, execute
gkectl diagnose cluster
antes de implantar as cargas de trabalho de CSI.
Verificar se o driver está instalado
Quando o driver CSI do vSphere é instalado no cluster do usuário, uma classe de armazenamento
chamada standard-rwo
é criada.
Liste os objetos StorageClass:
kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass
Substitua CLUSTER_KUBECONFIG pelo caminho do seu arquivo kubeconfig do cluster.
Verifique se standard-rwo
aparece na saída. Exemplo:
standard kubernetes.io/vsphere-volume Delete Immediate false 33m standard-rwo (default) csi.vsphere.vmware.com Delete Immediate true 32m
Verifique se o driver CSI do vSphere está instalado:
kubectl --kubeconfig CLUSTER_KUBECONFIG get csinode \ -o="custom-columns=NAME:metadata.name,DRIVERS:spec.drivers[].name"
A saída precisa indicar que o driver está disponível em todos os nós do cluster. Exemplo:
NAME DRIVERS node-0 csi.vsphere.vmware.com node-1 csi.vsphere.vmware.com node-2 csi.vsphere.vmware.com
Volume de provisionamento
Para provisionar volumes com o driver CSI do vSphere, defina o campo storageClassName
de seu PersistentVolumeClaim como standard-rwo
.
Como definir a classe de armazenamento padrão
Para definir standard-rwo
como a classe de armazenamento padrão, consulte Classe de armazenamento padrão.
Como usar um snapshot para restaurar um volume
Consulte Restaurar um volume de um snapshot.
Como criar classes de armazenamento adicionais
É possível criar classes de armazenamento adicionais do CSI do vSphere no seu cluster usando os
parâmetros datastoreurl
ou storagepolicyname
.
No exemplo a seguir, o parâmetro storagepolicyname
é usado:
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: gold parameters: csi.storage.k8s.io/fstype: ext4 storagepolicyname: "Gold Policy" provisioner: csi.vsphere.vmware.com
Para encontrar o valor correto para o parâmetro datastoreurl
, execute o seguinte comando:
govc datastore.info DATASTORE_NAME
Substitua DATASTORE_NAME pelo nome do seu repositório do vSphere.
Use o valor de URL da saída em datastoreurl
. Veja abaixo
um exemplo de saída:
Name: DATASTORE_NAME Path: /DATACENTER_NAME/datastore/DATASTORE_NAME Type: VMFS URL: ds:///vmfs/volumes/5d864fa0-7f2184d4-8eb4-3cfdfe0ce9a0/ Capacity: 20479.8 GB Free: 10066.9 GB
Limpeza de volume
Os volumes provisionados pelo driver vSphere CSI não são excluídos quando você exclui um cluster de usuário. Exclua todos os PVCs e StatefulSets antes de excluir o cluster. Para excluir os volumes, execute o seguinte comando:
kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all
Substitua MY_NAMESPACE pelo namespace do Kubernetes.
Se você excluiu um cluster de usuário sem excluir os volumes, poderá encontrar os volumes na interface do usuário do vSphere:
Selecione um repositório de dados.
Navegue até Monitorar > Armazenamento nativo da nuvem > Volumes de contêiner.
Na seção Detalhes de cada volume, é possível ver o nome do cluster do Kubernetes.
Como desativar o driver vSphere CSI
Para remover o suporte do vSphere CSI, adicione o seguinte à configuração do seu cluster de usuário:
# (Optional) Storage specification for the cluster storage: # To disable the vSphere CSI driver, set this to true. The value is set to false by default and # the vSphere CSI driver is enabled by default on vSphere version >= 6.7U3. vSphereCSIDisabled: true
A seguir
- Saiba sobre os conceitos de armazenamento do GKE on VMware
- Defina um StorageClass padrão para o cluster