En esta página, se explica cómo instalar un controlador de almacenamiento de Container Storage Interface (CSI) en los clústeres de GKE.
CSI es una API estándar abierta que permite a Kubernetes exponer sistemas de almacenamiento arbitrarios a cargas de trabajo en contenedores. Además, CSI permite el uso de funciones de almacenamiento modernas, como la generación de instantáneas y el cambio de tamaño.
De forma predeterminada, GKE en AWS aprovisiona volúmenes de EBS con elebs-csi-driver
.
También puedes aprovisionar volúmenes de EFS con efs-csi-driver
.
Si deseas usar otro tipo de volumen de almacenamiento, puedes instalar un controlador de CSI.
Después de instalar un controlador de CSI, debes crear un StorageClass de Kubernetes. Establece el controlador de CSI como aprovisionador para el StorageClass. Luego, puedes configurar el StorageClass como predeterminado o configurar tus cargas de trabajo para que usen el StorageClass.
Antes de comenzar
Conéctate a tu clúster y autentícate en él
Instala el controlador de CSI de un proveedor
Los proveedores de almacenamiento son responsables de proporcionar instrucciones de instalación para sus controladores de CSI. Consulta la lista de controladores de CSI en la documentación de CSI.
Sigue las instrucciones de instalación del controlador de CSI y, luego, continúa con los siguientes pasos de esta página.
Google no proporciona asistencia ni instrucciones para los controladores de terceros. Comunícate con tu proveedor de almacenamiento para obtener asistencia.
Verifica la instalación del controlador
Después de instalar un controlador de CSI, puedes verificar la instalación mediante la ejecución de los siguientes comandos.
kubectl get csinodes \
-o jsonpath='{range .items[*]} {.metadata.name}{": "} {range .spec.drivers[*]} {.name}{"\n"} {end}{end}'
Usa un controlador de CS
Para usar un controlador de CSI, haz lo siguiente:
Crea un StorageClass personalizado que haga referencia al controlador en su campo
provisioner
.Para aprovisionar almacenamiento, puedes hacer lo siguiente:
- Haz referencia al recurso StorageClass en la especificación
volumeClaimTemplates
de un StatefulSet. - Configúralo como la StorageClass predeterminada del clúster.
- Haz referencia al recurso StorageClass en la especificación
Consideraciones para un StorageClass respaldado por un controlador de CSI
Cuando crees una StorageClass, ten en cuenta lo siguiente:
Revisa la documentación de tu controlador de CSI para ver los parámetros específicos del controlador que proporcionas al StorageClass, incluido el nombre del aprovisionador.
Debes llamar al StorageClass según sus propiedades (como
fast
ohighly-replicated
), en lugar de por el nombre del controlador o dispositivo específico detrás de ella. Cuando le asignas un nombre a un StorageClass según sus propiedades, puedes crear StorageClasses con el mismo nombre en diferentes clústeres y entornos. Luego, configura tus cargas de trabajo para usar el mismo StorageClass.
Próximos pasos
- Crea una StorageClass que haga referencia al controlador de CSI.