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

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

Visão geral

A partir da versão 1.5 do GKE On-Prem, o driver CSI do vSphere é implantado automaticamente nos clusters locais do GKE. 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:

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