En este documento se explica cómo usar el controlador de interfaz de almacenamiento de contenedores (CSI) de vSphere con Google Distributed Cloud.
Información general
El controlador CSI de vSphere se despliega automáticamente al instalar Google Distributed Cloud (solo software) para VMware. Para obtener información sobre cómo usar otros controladores de CSI, consulta Instalar un controlador de CSI.
Requisitos de vSphere
Para usar el controlador de CSI para vSphere, debes tener lo siguiente:
Una versión compatible de vCenter Server basada en Linux
Expansión de volumen
Para ampliar el volumen sin conexión, vCenter Server y ESXi deben tener la versión 7.0 Update 1 o una posterior.
Para ampliar el volumen online, tanto vCenter Server como ESXi deben tener la versión 7.0 Update 2 o una posterior.
Captura de volumen
Para crear una copia de seguridad de un volumen, tanto vCenter Server como ESXi deben tener la versión 7.0 Update 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 sabes si tu cuenta cumple los requisitos previos de CSI, ejecuta
gkectl diagnose cluster
antes de implementar cualquier carga de trabajo de CSI.
Verificar que el controlador está instalado
Cuando el controlador de CSI para vSphere se instala en el clúster de usuarios, se crea un objeto StorageClass
llamado standard-rwo
.
Lista los objetos StorageClass:
kubectl --kubeconfig CLUSTER_KUBECONFIG get storageclass
Sustituye CLUSTER_KUBECONFIG por la ruta del archivo kubeconfig de tu clúster.
Comprueba 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 para vSphere esté instalado:
kubectl --kubeconfig CLUSTER_KUBECONFIG get csinode \ -o="custom-columns=NAME:metadata.name,DRIVERS:spec.drivers[].name"
El resultado debe 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
Aprovisionar volúmenes
Para aprovisionar volúmenes con el controlador de CSI para vSphere, define el campo storageClassName
de tu
PersistentVolumeClaim
como standard-rwo
.
Configurar la clase de almacenamiento predeterminada
Para definir standard-rwo
como clase de almacenamiento predeterminada, consulta Clase de almacenamiento predeterminada.
Usar una captura para restaurar un volumen
Consulta Restaurar un volumen a partir de una captura.
Crear StorageClasses adicionales
Puede crear StorageClasses de CSI de vSphere adicionales en su clúster mediante 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
Sustituye DATASTORE_NAME por el nombre de tu almacén de datos de vSphere.
Usa el valor de URL de la salida de datastoreurl
. Un ejemplo de salida sería el siguiente:
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 volúmenes
Los volúmenes aprovisionados por el controlador CSI de vSphere no se eliminan cuando se elimina un clúster de usuario. Debes eliminar todos los PVCs y los StatefulSets antes de eliminar el clúster. Para eliminar tus volúmenes, ejecuta el siguiente comando:
kubectl delete statefulsets,persistentvolumeclaims --namespace=MY_NAMESPACE --all
Sustituye MY_NAMESPACE por tu espacio de nombres de Kubernetes.
Si has eliminado un clúster de usuarios sin eliminar sus volúmenes, puedes encontrar los volúmenes en la interfaz de usuario de vSphere:
Selecciona un almacén de datos.
Vaya a Monitor > Almacenamiento nativo de la nube > Volúmenes de contenedor.
En la sección Detalles de cada volumen, puedes ver el nombre del clúster de Kubernetes.
Inhabilitar el controlador de CSI para vSphere
Para quitar la compatibilidad con vSphere CSI, añade lo siguiente a la configuración del clúster de usuarios:
# (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
Siguientes pasos
- Más información sobre los conceptos de almacenamiento de Google Distributed Cloud
- Definir una StorageClass predeterminada para el clúster