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:
vCenter y ESXi se alojan en la versión 6.7 actualización 3 o más reciente.
Privilegios de cuenta de usuario de
cns.searchable
de vSphere.
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:
En vCenter, selecciona un almacén de datos.
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?
- Obtén más información sobre los conceptos de almacenamiento de clústeres de Anthos alojados en VMware
- Configura una StorageClass predeterminada para el clúster