Como usar o driver da interface de armazenamento de contêiner do vSphere

Nesta página, você verá como usar o driver de armazenamento da interface de armazenamento de contêiner (CSI, na sigla em inglês) do vSphere com clusters do Anthos em clusters do VMware (GKE On-Prem).

Visão geral

A partir dos clusters do Anthos no VMware versão 1.5, o driver CSI do vSphere é implantado automaticamente nos clusters do Anthos nos clusters da VMware. Para informações sobre outros drivers CSI, consulte Como instalar um driver CSI.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • O vCenter e o ESXi hospedam a versão 6.7 atualização 3 ou posterior.

    • Para expansão de volume:
    • A expansão off-line requer que o vCenter e o ESXi sejam a versão 7.0 ou posterior.
    • A expansão on-line requer que o vCenter e o ESXi sejam a versão 7.0 atualização 2 ou mais recente.
  • Privilégios de conta de usuário do vSphere cns.searchable.

Se você não tiver certeza de que seu cluster atende aos pré-requisitos do CSI, execute gkectl diagnose cluster antes de implantar as cargas de trabalho de CSI.

Confirmar disponibilidade do driver

Quando o driver CSI do vSphere é instalado no cluster do usuário, uma classe de armazenamento chamada standard-rwo é criada. Para verificar se o driver está disponível em todos os nós, execute o comando a seguir:

kubectl get csinode -o="custom-columns=NAME:metadata.name,DRIVERS:spec.drivers[].name"

Você verá a resposta a seguir:

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 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

em que DATASTORE_NAME é o nome do seu armazenamento de dados 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

em que MY_NAMESPACE é o namespace do Kubernetes.

Se você excluiu um cluster de usuário sem excluir os volumes, pode encontrar os volumes no vCenter:

  1. No vCenter, selecione um armazenamento de dados.

  2. Navegue até Monitorar > Armazenamento nativo da nuvem > Volumes de contêiner.

O nome do cluster do Kubernetes é mostrado na seção Detalhes de cada volume.

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