En este tema, se explica cómo instalar un controlador de almacenamiento de la interfaz de almacenamiento de contenedores (CSI) en tus clústeres.
Descripción general
De forma predeterminada, GKE en AWS aprovisiona volúmenes de EBS de AWS con el recurso StorageClass predeterminado. Si tus cargas de trabajo necesitan usar otro tipo de volumen de almacenamiento, puedes instalar un controlador de CSI compatible para proporcionar acceso a este.
El Container Storage Interface
(CSI) es una API estándar abierta que otorga acceso a sistemas de almacenamiento compatibles a las cargas de trabajo de Kubernetes. CSI también permite el uso de funciones de almacenamiento modernas, como el cambio de tamaño y las instantáneas.
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. Para ver un ejemplo de cómo crear un StatefulSet con un recurso StorageClass personalizado, consulta Usa recursos StorageClass con tus cargas de trabajo.
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.
Verifica la instalación del controlador
Después de instalar un controlador de CSI, ejecuta los siguientes comando para verificar la instalación.
kubectl get csinodes \
-o jsonpath='{range .items[*]} {.metadata.name}{": "} {range .spec.drivers[*]} {.name}{"\n"} {end}{end}'
Cómo usar un controlador de CSI
Para usar un controlador CSI, sigue estos pasos:
Crea una StorageClass personalizada 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 a la StorageClass, incluido el nombre del aprovisionador.
Debes llamar a la 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.
¿Qué sigue?
- Crea una StorageClass que haga referencia al controlador de CSI.