Puedes crear almacenamiento persistente para cargas de trabajo que se ejecuten en GKE en AWS con objetos de Kubernetes.
Usar almacenamiento persistente en las cargas de trabajo de GKE en AWS
En GKE en AWS, se usan los recursos de Kubernetes PersistentVolume (PV), PersistentVolumeClaim (PVC) y StorageClass para proporcionar almacenamiento persistente de archivos y bloques a las cargas de trabajo. En los clústeres de usuarios con la versión 1.17 o posterior, puedes crear capturas de almacenamiento persistente con los recursos VolumeSnapshot y VolumeSnapshotClass. Las instantáneas se almacenan en tu cuenta de AWS.
StorageClass
Los clústeres de usuario tienen una StorageClass de Kubernetes predeterminada que aprovisiona de forma dinámica almacenamiento con estado para las cargas de trabajo en volúmenes de AWS Elastic Block Storage (EBS). También puedes usar una StorageClass diferente para aprovisionar otros tipos de volúmenes. Estas opciones se describen en la siguiente sección.
VolumeSnapshotClass
Los clústeres de usuarios tienen una VolumeSnapshotClass de Kubernetes predeterminada que crea instantáneas del almacenamiento con estado en volúmenes de Elastic Block Storage (EBS) de AWS.
Configurar el almacenamiento de clúster
Si quieres aprovisionar volúmenes de almacenamiento con una StorageClass que no sea la predeterminada, puedes crear una StorageClass en un clúster que use parámetros o un controlador de almacenamiento diferentes. Después, puedes definir StorageClass como predeterminado del clúster o configurar tus cargas de trabajo para que usen StorageClass. Por ejemplo, puedes usar un StatefulSet para definir un nombre de StorageClass específico.
Usar las capturas de volumen
En las versiones 1.17 y posteriores de Kubernetes, puedes usar el recurso VolumeSnapshot para crear capturas de volúmenes de almacenamiento. Después, puedes aprovisionar nuevos volúmenes persistentes a partir de estas capturas.
Elastic Block Storage (EBS)
GKE on AWS gestiona los volúmenes de AWS EBS con el aws-ebs-csi-driver.
La versión del controlador de CSI de EBS está vinculada a una versión de Kubernetes de GKE en AWS. Cuando actualizas la versión de tu clúster de usuario, se aplica automáticamente la nueva versión del controlador. Normalmente, esta versión es la más reciente del controlador disponible en el momento en que se publica la versión de GKE en AWS.
El controlador preinstalado con GKE en AWS proporciona las siguientes StorageClasses de forma predeterminada:
standard-rwo
(predeterminado): se usa para aprovisionar volúmenes degp2
EBS.premium-rwo
: se usa para aprovisionar volúmenes deio1
de EBS.
Los volúmenes de EBS admiten el modo de acceso ReadWriteOnce de Kubernetes.
Volúmenes de EBS ya creados
Puedes aprovisionar volúmenes de EBS en tus cargas de trabajo de GKE en AWS. Consulta Importar un volumen de EBS ya creado para ver ejemplos de cómo usar volúmenes de EBS en GKE en AWS.
Elastic File System (EFS)
GKE on AWS 1.6 y versiones posteriores admiten el montaje de sistemas de archivos y puntos de acceso AWS EFS preexistentes. Para obtener más información, consulta Usar EFS.
Otras opciones de almacenamiento
Otros sistemas de almacenamiento de terceros se pueden usar con GKE en AWS mediante controladores de interfaz de almacenamiento de contenedores (CSI) de terceros (opción recomendada) o complementos de volumen de Kubernetes integrados.
Controladores de CSI
La interfaz de almacenamiento de contenedores (CSI) es una API estándar abierta que permite a Kubernetes conectar sistemas de almacenamiento arbitrarios a cargas de trabajo en contenedores. Puedes consultar una lista no exhaustiva de controladores de CSI en la documentación para desarrolladores de CSI de Kubernetes. GKE on AWS admite CSI v1.x.
Para usar un controlador de CSI en tu clúster, debes instalar el controlador de CSI que te proporcione tu proveedor de almacenamiento. Después, puedes configurar las cargas de trabajo para que usen la clase de almacenamiento del controlador o definirla como la clase de almacenamiento predeterminada.
Controladores de almacenamiento específicos de AWS
Los siguientes controladores de volumen se pueden usar con GKE en AWS.
FSx para Lustre (FSX)
GKE en AWS no gestiona los volúmenes de FSx directamente. Puedes instalar manualmente el controlador aws-fsx-csi-driver, pero Google no ofrece asistencia.
Complementos de volumen de Kubernetes
Kubernetes incluye plugins de volumen integrados. Entre los controladores incluidos en el árbol, se encuentran los siguientes:
- configMap
- emptyDir
- hostPath
- nfs
- previsto
- secretos
Siguientes pasos
- Consulta información sobre cómo usar StorageClasses con tus cargas de trabajo.
- Importar un volumen de EBS ya creado a GKE en AWS.
- Consulta información sobre los volúmenes persistentes en GKE.
- Consulta información sobre las instantáneas de volúmenes en GKE.
- Consulta la documentación de clases de almacenamiento de Kubernetes.
- Lee el anuncio de lanzamiento de la interfaz de almacenamiento de contenedores.