Este documento explica como usar o controlador da interface de armazenamento de contentores (CSI) do vSphere com o Google Distributed Cloud.
Vista geral
O controlador CSI do vSphere é implementado automaticamente quando instala o Google Distributed Cloud (apenas software) para VMware. Para ver informações sobre a utilização de outros controladores CSI, consulte o artigo Instalar um controlador CSI.
Requisitos do vSphere
Para usar o controlador CSI do vSphere, tem de ter:
Uma versão suportada do vCenter Server baseada em Linux
Expansão do volume
A expansão de volume offline requer que o vCenter Server e o ESXi sejam a versão 7.0 Update 1 ou posterior
A expansão de volume online requer que o vCenter Server e o ESXi sejam a versão 7.0 Update 2 ou posterior.
Instantâneo de volume
A captura instantânea de volume requer que o vCenter Server e o ESXi sejam a versão 7.0 Update 3 ou posterior.
Cns.Searchable
A sua conta de utilizador do vCenter tem de ter o privilégio Cns.Searchable no objeto vCenter raiz.
Se não tiver a certeza de que a sua conta cumpre os pré-requisitos da CSI, execute o comando
gkectl diagnose cluster
antes de implementar quaisquer cargas de trabalho da CSI.
Confirme se o controlador está instalado
Quando o controlador CSI do vSphere é instalado no cluster de utilizador, é criada uma StorageClass denominada standard-rwo
.
Liste os objetos StorageClass:
kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass
Substitua CLUSTER_KUBECONFIG pelo caminho do ficheiro kubeconfig do cluster.
Verifique se standard-rwo
é apresentado no resultado. Por exemplo:
standard kubernetes.io/vsphere-volume Delete Immediate false 33m standard-rwo (default) csi.vsphere.vmware.com Delete Immediate true 32m
Verifique se o controlador CSI do vSphere está instalado:
kubectl --kubeconfig CLUSTER_KUBECONFIG get csinode \ -o="custom-columns=NAME:metadata.name,DRIVERS:spec.drivers[].name"
O resultado deve indicar que o controlador está disponível em todos os nós do cluster. Por exemplo:
NAME DRIVERS node-0 csi.vsphere.vmware.com node-1 csi.vsphere.vmware.com node-2 csi.vsphere.vmware.com
Volumes de aprovisionamento
Para aprovisionar volumes com o controlador CSI do vSphere, defina o campo storageClassName
do seu
PersistentVolumeClaim
para standard-rwo
.
Definir a classe de armazenamento predefinida
Para definir standard-rwo
como a classe de armazenamento predefinida, consulte o artigo
Classe de armazenamento predefinida.
Usar um instantâneo para restaurar um volume
Consulte o artigo Restaure um volume a partir de um instantâneo.
Criar StorageClasses adicionais
Pode criar StorageClasses CSI do vSphere adicionais no cluster através dos parâmetros datastoreurl
ou storagepolicyname
.
O exemplo seguinte usa o parâmetro storagepolicyname
:
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 do parâmetro datastoreurl
, execute o seguinte comando:
govc datastore.info DATASTORE_NAME
Substitua DATASTORE_NAME pelo nome do seu repositório de dados do vSphere.
Use o valor de URL do resultado de datastoreurl
. Um exemplo de resultado tem o seguinte aspeto:
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 aprovisionados pelo controlador CSI do vSphere não são eliminados quando elimina um cluster de utilizador. Deve eliminar todos os PVCs e StatefulSets antes de eliminar o cluster. Para eliminar os volumes, execute o seguinte comando:
kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all
Substitua MY_NAMESPACE pelo espaço de nomes do Kubernetes.
Se eliminou um cluster de utilizadores sem eliminar os respetivos volumes, pode encontrar os volumes na interface do utilizador do vSphere:
Selecione um arquivo de dados.
Navegue para Monitor > Armazenamento nativo da nuvem > Volumes de contentores.
Na secção Detalhes de cada volume, pode ver o nome do cluster do Kubernetes.
A desativar o controlador CSI do vSphere
Para remover o suporte do CSI do vSphere, adicione o seguinte à configuração do cluster de utilizadores:
# (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
O que se segue?
- Leia mais sobre os conceitos de armazenamento do Google Distributed Cloud
- Defina uma StorageClass predefinida para o seu cluster