Usa el controlador de Container Storage Interface de vSphere

En esta página, se explica cómo usar el controlador de almacenamiento de Container Storage Interface (CSI) de vSphere con los clústeres de clústeres de Anthos alojados en VMware (GKE On-Prem).

Descripción general

A partir de la versión 1.5 de los clústeres de Anthos alojados en VMware, el controlador de CSI de vSphere se implementa automáticamente en los clústeres de clústeres de Anthos alojados en VMware. Para obtener información sobre otros controladores de CSI, consulta Instala un controlador de CSI.

Antes de comenzar

Asegúrate de cumplir con los siguientes requisitos previos:

Si no estás seguro de que tu clúster cumple con los requisitos de CSI, ejecuta gkectl diagnose cluster antes de implementar cualquier carga de trabajo de CSI.

Ten en cuenta que los clústeres de Anthos alojados en VMware no son compatibles con la función de expansión de volumen de vSphere CSI.

Confirma la disponibilidad del controlador

Cuando el controlador de CSI de vSphere está instalado en tu clúster de usuarios, se crea una StorageClass llamada standard-rwo. Para comprobar que el controlador esté disponible en todos los nodos, ejecuta el siguiente comando:

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

Deberías ver el siguiente resultado:

NAME     DRIVERS
node-0   csi.vsphere.vmware.com
node-1   csi.vsphere.vmware.com
node-2   csi.vsphere.vmware.com

Aprovisiona volúmenes

Para aprovisionar volúmenes con el controlador de CSI de vSphere, configura el campo storageClassName de tu PersistentVolumeClaim en standard-rwo.

Configura la clase de almacenamiento predeterminada

Para configurar standard-rwo como la clase de almacenamiento predeterminada, consulta Clase de almacenamiento predeterminada.

Crea StorageClass adicionales

Puedes crear StorageClass de CSI de vSphere adicionales en tu clúster con los parámetros datastoreurl o storagepolicyname.

En el siguiente ejemplo, se usa el 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 el valor correcto del parámetro datastoreurl, ejecuta el siguiente comando:

govc datastore.info DATASTORE_NAME

Donde: DATASTORE_NAME es el nombre de tu Almacén de datos de vSphere.

Usa el valor de URL del resultado de datastoreurl. A continuación, encontrarás un resultado de ejemplo.

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

Limpieza de volumen

Los volúmenes aprovisionados por el controlador de CSI de vSphere no se borran cuando borras un clúster de usuario. Debes borrar todos los PVC y StatefulSets antes de borrar el clúster. Para borrar los volúmenes, ejecuta el siguiente comando:

kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all

en el que MY_NAMESPACE es tu espacio de nombres de Kubernetes.

Si borraste un clúster de usuario sin borrar sus volúmenes, puedes encontrar los volúmenes en vCenter de la siguiente forma:

  1. En vCenter, selecciona un almacén de datos.

  2. Navegue a Supervisa > Almacenamiento nativo de la nube > Volúmenes de contenedores.

El nombre del clúster de Kubernetes se muestra en la sección Detalles de cada volumen.

Inhabilita el controlador de CSI de vSphere

Para quitar la compatibilidad con CSI de vSphere, agrega lo siguiente a la configuración de tu clúster de usuario:

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

¿Qué sigue?