En este documento, se explica cómo usar el controlador de Container Storage Interface (CSI) de vSphere con GKE en VMware.
Descripción general
El controlador de CSI de vSphere se implementa de forma automática en GKE en VMware. Para obtener información sobre el uso de otros controladores de CSI, consulta Instala un controlador de CSI.
Requisitos de vSphere
Para usar el controlador de CSI de vSphere, debes tener lo siguiente:
Una versión compatible de vCenter Server basada en Linux
Expansión de volumen
La expansión de volumen sin conexión requiere que la versión de vCenter Server y ESXi sea la 7.0, actualización 1, o una posterior.
La expansión de volumen en línea requiere que la versión de vCenter Server y ESXi sea la 7.0, actualización 2, o una posterior.
Resumen del volumen
La instantánea de volumen requiere que vCenter Server y ESXi tengan la versión 7.0 de la actualización 3 o una posterior.
Cns.Searchable
Tu cuenta de usuario de vCenter debe tener el privilegio Cns.Searchable en el objeto raíz de vCenter.
Si no estás seguro de que tu cuenta cumple con los requisitos de CSI, ejecuta gkectl diagnose cluster
antes de implementar cualquier carga de trabajo de CSI.
Verifica que el controlador esté instalado
Cuando el controlador de CSI de vSphere está instalado en tu clúster de usuarios, se crea una StorageClass llamada standard-rwo
.
Genera una lista de los objetos StorageClass:
kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass
Reemplaza CLUSTER_KUBECONFIG por la ruta de acceso del archivo kubeconfig del clúster.
Verifica que standard-rwo
aparezca en el resultado. Por ejemplo:
standard kubernetes.io/vsphere-volume Delete Immediate false 33m standard-rwo (default) csi.vsphere.vmware.com Delete Immediate true 32m
Verifica que el controlador de CSI de vSphere esté instalado:
kubectl --kubeconfig CLUSTER_KUBECONFIG get csinode \ -o="custom-columns=NAME:metadata.name,DRIVERS:spec.drivers[].name"
El resultado debería indicar que el controlador está disponible en todos los nodos del clúster. Por ejemplo:
NAME DRIVERS node-0 csi.vsphere.vmware.com node-1 csi.vsphere.vmware.com node-2 csi.vsphere.vmware.com
Aprovisiona vólumenes
Para aprovisionar volúmenes con el controlador de CSI de vSphere, configura el campo storageClassName
de tu PersistentVolumeClaim en standard-rwo
.
Configurar la clase de almacenamiento predeterminada
Para establecer standard-rwo
como la clase de almacenamiento predeterminada, consulta Clase de almacenamiento predeterminada.
Usa una instantánea para restablecer un volumen
Consulta Restablece un volumen a partir de una instantánea.
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
Reemplaza DATASTORE_NAME por 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
Reemplaza MY_NAMESPACE por tu espacio de nombres de Kubernetes.
Si borraste un clúster de usuario sin borrar sus volúmenes, puedes encontrar los volúmenes en la interfaz de usuario de vSphere:
Selecciona un almacén de datos.
Navegue a Supervisa > Almacenamiento nativo de la nube > Volúmenes de contenedores.
En la sección Detalles de cada volumen, puedes ver el nombre del clúster de Kubernetes.
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 GKE en VMware.
- Configura una StorageClass predeterminada para el clúster