En esta página se explica cómo instalar un controlador de almacenamiento de interfaz de almacenamiento de contenedores (CSI) en tus 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 usar funciones de almacenamiento modernas, como el cambio de tamaño y las instantáneas.
De forma predeterminada, GKE on AWS aprovisiona volúmenes de EBS con elebs-csi-driver
.
También puedes aprovisionar volúmenes de EFS con el efs-csi-driver
.
Si quieres usar otro tipo de volumen de almacenamiento, puedes instalar un controlador de CSI.
Después de instalar un controlador CSI, debes crear un StorageClass de Kubernetes. Has definido el controlador CSI como aprovisionador de la clase de almacenamiento. Después, puedes configurar StorageClass como predeterminada o configurar tus cargas de trabajo para que usen StorageClass.
Antes de empezar
Conectarse y autenticarse en tu clúster
Instalar un controlador de CSI de un proveedor
Los proveedores de almacenamiento son los responsables de proporcionar las instrucciones de instalación de sus controladores de CSI. Consulta la lista de controladores de CSI en la documentación de CSI.
Sigue las instrucciones de instalación de tu controlador CSI y, a continuación, continúa con los pasos que se indican en esta página.
Google no ofrece asistencia ni instrucciones para controladores de terceros. Ponte en contacto con tu proveedor de almacenamiento para obtener ayuda.
Verificar la instalación del controlador
Después de instalar un controlador de CSI, puedes verificar la instalación ejecutando los siguientes comandos.
kubectl get csinodes \
-o jsonpath='{range .items[*]} {.metadata.name}{": "} {range .spec.drivers[*]} {.name}{"\n"} {end}{end}'
Usar un controlador de CSI
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:
- Haga referencia a StorageClass en la especificación de un StatefulSet.
volumeClaimTemplates
- Definirla como StorageClass predeterminada del clúster.
- Haga referencia a StorageClass en la especificación de un StatefulSet.
Consideraciones sobre StorageClass respaldado por un controlador de CSI
Cuando crees un StorageClass, ten en cuenta lo siguiente:
Consulta la documentación de tu controlador de CSI para ver los parámetros específicos del controlador que proporcionas a tu StorageClass, incluido el nombre del provisionador.
Debes asignar a StorageClass el nombre de sus propiedades (como
fast
ohighly-replicated
) en lugar del nombre del controlador o del dispositivo específico que haya detrás. Si le pones a una StorageClass el nombre de sus propiedades, puedes crear StorageClasses con el mismo nombre en diferentes clústeres y entornos. A continuación, configura tus cargas de trabajo para que usen el mismo StorageClass.
Siguientes pasos
- Crea un StorageClass que haga referencia al controlador de CSI.