En este documento, se describen las opciones de almacenamiento que admite GKE y algunas consideraciones clave para seleccionar la mejor opción según las necesidades de tu empresa.
GKE admite las siguientes integraciones y tipos de almacenamiento:
- Almacenamiento en bloque con Persistent Disk
- Almacenamiento en bloque con Google Cloud Hyperdisk
- Almacenamiento en bloque efímero y sin procesar con SSD local
- Almacenamiento de archivos
- Almacenamiento de objetos con Cloud Storage FUSE
- Bases de datos administradas
- Artefactos de compilación
Almacenamiento en bloque (Persistent Disk)
Los volúmenes de Persistent Disk son dispositivos de almacenamiento de red duraderos que administra Compute Engine y a los que se puede acceder con clústeres de GKE, como discos físicos de una computadora de escritorio o un servidor. Cuando tus clústeres requieren espacio de almacenamiento adicional, puedes conectar más volúmenes de Persistent Disk a tus nodos o cambiar el tamaño de tus volúmenes existentes. Puedes permitir que GKE aprovisione de forma dinámica los PersistentVolumes respaldados por Persistent Disk o puedes aprovisionar discos de forma manual.
Esta opción de almacenamiento es compatible con los clústeres de GKE Autopilot y Standard.
De forma predeterminada, los volúmenes de Persistent Disk son recursos zonales (se mantienen en una sola zona dentro de una región). Puedes crear volúmenes regionales de Persistent Disk (que se mantienen en dos zonas de la misma región). También puedes conectar un volumen de Persistent Disk como de solo lectura a varios nodos de forma simultánea. Esto es compatible con volúmenes de Persistent Disk zonales y regionales.
El almacenamiento en Persistent Disk en GKE es persistente, lo que significa que se conservarán los datos almacenados en tus discos incluso si se cierra el pod que los usa.
Por qué usar el almacenamiento en Persistent Disk
Usa el almacenamiento en Persistent Disk si los clústeres requieren acceso a un almacenamiento en bloque duradero de alta rendimiento y alta disponibilidad. Por lo general, un volumen de Persistent Disk se conecta a un solo Pod. Esta opción de almacenamiento admite el modo de acceso ReadWriteOnce. GKE proporciona asistencia para configurar volúmenes de disco Persistent Disk con una variedad de opciones de latencia y rendimiento, incluidas las siguientes:
- Disco persistente balanceado: Apto para aplicaciones empresariales estándar. Esta opción proporciona un equilibrio entre rendimiento y costo. Respaldado por unidades de estado sólido (SSD). Esta es la opción predeterminada para el aprovisionamiento de volúmenes dinámicos en clústeres y nodos que ejecutan GKE 1.24 o versiones posteriores.
- Disco persistente de rendimiento: Apto para estadísticas de escalamiento horizontal, bases de datos y almacenamiento en caché persistente. Esta opción es ideal para cargas de trabajo sensibles al rendimiento. Respaldado por unidades de estado sólido (SSD).
- Disco persistente estándar: Apto para macrodatos y cargas de trabajo de procesamiento grandes. Esta opción es el tipo de disco más rentable. Se respalda con unidades de disco duro estándar (HDD).
- Extreme Persistent Disk: Apto para aplicaciones empresariales como SAP HANA y Oracle. Esta opción ofrece el mayor rendimiento para satisfacer las necesidades de las bases de datos en la memoria más grandes. Se respalda con unidades de estado sólido (SSD). Para aplicaciones esenciales de rendimiento, en las que Persistent Disk no proporciona suficiente rendimiento, usa discos Hyperdisk Extreme.
Para comenzar a usar esta opción de almacenamiento, consulta estos recursos:
- Para obtener información sobre los tipos de discos disponibles, consulta Opciones de almacenamiento en la documentación de Compute Engine.
- El controlador de CSI de Persistent Disk de Compute Engine es la forma principal en que usas el almacenamiento en discos persistentes con GKE. Para obtener instrucciones, consulta Usa el controlador de CSI de Persistent Disk de Compute Engine.
Almacenamiento en bloque (Google Cloud Hyperdisk)
Los volúmenes de Hyperdisk usan la nueva generación de almacenamiento en bloque de Google Cloud. Los volúmenes de Hyperdisk te permiten ajustar de forma dinámica el rendimiento del almacenamiento en bloque a tu carga de trabajo. Puedes configurar operaciones de entrada y salida por segundo (IOPS) y la capacidad de procesamiento de forma independiente para tus aplicaciones, además de adaptarte a las necesidades cambiantes de rendimiento a lo largo del tiempo.
Esta opción de almacenamiento es compatible con los clústeres de GKE Autopilot y Standard. Los volúmenes de Hyperdisk son recursos zonales, sujetos a la disponibilidad regional. El almacenamiento de Hyperdisk en GKE es persistente, lo que significa que los datos almacenados en tus discos se conservarán incluso si se finaliza el Pod que lo usa.
Por qué usar el almacenamiento en Hyperdisk
Usa el almacenamiento de Hyperdisk si necesitas cambiar el tamaño de forma dinámica y ajustar las IOPS o la capacidad de procesamiento. Por lo general, un volumen de Hyperdisk se conecta a un solo Pod. Esta opción de almacenamiento admite el modo de acceso ReadWriteOnce
. Puedes seleccionar entre las siguientes opciones de almacenamiento de Hyperdisk para GKE según tus necesidades de precio y rendimiento:
- Hyperdisk Throughput: optimizado para una capacidad de procesamiento alta y económica, con una capacidad de procesamiento de hasta 3 GB/s (≥128 KB de tamaño de IO). Esta es una buena opción si tu caso de uso se orienta a estadísticas de escalamiento horizontal (por ejemplo, Hadoop o Kafka), el restablecimiento de datos en frío de servidores de copia de seguridad y cargas de trabajo sensibles al costo orientadas a la capacidad de procesamiento. Esta opción de almacenamiento es compatible con los clústeres de GKE Autopilot y Standard.
- Hyperdisk Extreme: optimizado para el rendimiento de IOPS, con más de 320,000 IOPS aprovisionadas y más de 4.8 GB/s de capacidad de procesamiento. Esta es una buena opción si implementas cargas de trabajo de alto rendimiento, como los sistemas de administración de bases de datos. Esta opción de almacenamiento solo es compatible con clústeres de Standard.
Para comenzar a usar esta opción de almacenamiento, consulta estos recursos:
- Si deseas obtener una descripción general, consulta Acerca de Hyperdisk para GKE.
- Para configurar y consumir el almacenamiento en Hyperdisk en tus clústeres, consulta Escala el rendimiento del almacenamiento con Hyperdisk.
Almacenamiento efímero y en bloque sin procesar (SSD local)
Los discos SSD locales son unidades físicas que se conectan directamente a tus nodos. Pueden ofrecer un mejor rendimiento, pero son efímeros. Cada volumen de SSD local se conecta a un nodo específico. No puedes transferir el volumen a otro nodo.
Esta opción de almacenamiento es compatible con los clústeres estándar de GKE. La compatibilidad con Autopilot para SSD local está disponible en vista previa en máquinas A2 Ultra A100, en clústeres y grupos de nodos que ejecutan GKE 1.27 y versiones posteriores.
El almacenamiento efímero respaldado por el almacenamiento SSD local en GKE está vinculado al ciclo de vida de un Pod. Cuando se cierra tu Pod, también se borra el almacenamiento efímero asociado con ese Pod.
Por qué usar SSD locales
El uso del almacenamiento SSD local en clústeres de GKE es adecuado si necesitas almacenamiento en caché activo para bases de datos y estadísticas en tiempo real, o almacenamiento efímero optimizado para Flash que ofrece las latencias más bajas. El almacenamiento SSD local puede ser muy útil como una capa de almacenamiento en caché frente a Cloud Storage para los casos prácticos de IA/AA, procesamiento por lotes, analítica y bases de datos en la memoria.
Para comenzar a usar esta opción de almacenamiento, consulta estos recursos:
- Si deseas obtener una descripción general, consulta Información sobre el almacenamiento SSD local para GKE.
- Para configurar y consumir el almacenamiento SSD local en tus clústeres como emptyDir, consulta Aprovisiona y usa el almacenamiento efímero respaldado por la SSD local.
- Para configurar y consumir almacenamiento SSD local en tus clústeres como recursos PersistentVolumes locales, consulta Aprovisiona y usa almacenamiento en bloque sin procesar respaldado por SSD local.
Almacenamiento de archivos
Filestore proporciona un sistema de archivos compartido basado en la nube para datos no estructurados, con acceso al sistema de archivos de red (NFS). Las instancias de Filestore funcionan como servidores de archivos en Google Cloud que proporcionan almacenamiento duradero con acceso ReadWriteMany
para tus clústeres de GKE. Las instancias de Filestore están separadas del host y requieren una operación manual mínima. Las conmutaciones por error de las cargas de trabajo son fluidas porque no hay operaciones de infraestructura para conectar o desconectar volúmenes.
Esta opción de almacenamiento es compatible con los clústeres de GKE Autopilot y Standard. El almacenamiento de Filestore con el nivel de servicio empresarial tiene disponibilidad regional de manera predeterminada, mientras que los otros niveles de servicio tienen disponibilidad zonal. El almacenamiento de Filestore en GKE es persistente, lo que significa que los datos almacenados en tus instancias se conservarán incluso si el Pod que los usa se cierra.
Por qué usar el almacenamiento de Filestore
Usa el almacenamiento de Filestore si tus aplicaciones necesitan acceso al sistema de archivos de red (NFS) y varios lectores y escritores. Esta opción de almacenamiento es adecuada si tu caso de uso implica sistemas de administración de contenido, migración de aplicaciones, análisis de datos, renderización y procesamiento de medios.
Para obtener una rentabilidad adicional, Recursos compartidos de Filestore para GKE te permite compartir una instancia de nivel empresarial de Filestore de 10 GiB o más con hasta 80 PersistentVolumes.
Para comenzar a usar esta opción de almacenamiento, consulta estos recursos:
- Si deseas obtener una descripción general, consulta Acerca de la compatibilidad de Filestore con GKE.
- El controlador de CSI de Filestore es la forma principal en la que usas el almacenamiento de Filestore con GKE. Para obtener instrucciones, consulta Accede a instancias de Filestore con el controlador CSI de Filestore.
- Para obtener instrucciones de recursos compartidos de Filestore, consulta Optimiza el almacenamiento con recursos compartidos de Filestore para GKE.
Almacenamiento de objetos (Cloud Storage FUSE)
Cloud Storage es un depósito de objetos para datos binarios y de objetos, BLOB y datos no estructurados. El controlador CSI de Cloud Storage FUSE administra la integración de Cloud Storage FUSE con las APIs de Kubernetes para consumir buckets de Cloud Storage existentes como volúmenes. Puedes usar el controlador CSI de Cloud Storage FUSE para activar buckets como sistemas de archivos en nodos de GKE.
El controlador de CSI de Cloud Storage FUSE admite los modos de acceso ReadWriteMany
, ReadOnlyMany
y ReadWriteOnce
en los clústeres de GKE Autopilot y Standard. Los objetos de Cloud Storage tienen disponibilidad regional. Los datos de Cloud Storage en GKE son persistentes, lo que significa que los datos almacenados en tus buckets se conservarán incluso si se finaliza el Pod que los usa.
Por qué usar Cloud Storage FUSE
La opción Cloud Storage FUSE es adecuada si necesitas una semántica de archivos frente a Cloud Storage para la portabilidad. Cloud Storage FUSE también es una opción común para los desarrolladores que desean almacenar y acceder al entrenamiento de aprendizaje automático (AA) y modelar datos como objetos en Cloud Storage.
Para comenzar a usar esta opción de almacenamiento, consulta estos recursos:
- Para obtener una descripción general, consulta Cloud Storage FUSE.
- Para consumir buckets de Google Cloud en tus clústeres, consulta Accede a los buckets de Cloud Storage con el controlador de CSI de Cloud Storage FUSE.
Bases de datos administradas
Una base de datos administrada, como Cloud SQL o Spanner, proporciona una sobrecarga operativa reducida y está optimizada para la infraestructura de Google Cloud. Las bases de datos administradas requieren menos esfuerzo para su mantenimiento y operación que una base de datos que se implementa de forma directa en Kubernetes.
Por qué usar bases de datos administradas
El uso de una base de datos administrada de Google Cloud permite que tus cargas de trabajo con estado en GKE accedan a datos persistentes mientras automatizan tareas de mantenimiento, como la creación de copias de seguridad, la aplicación de parches y el escalamiento. Debes crear una base de datos, compilar tu aplicación y permitir que Google Cloud la escale por ti. Sin embargo, esto también significa que no tienes acceso a la versión exacta de una base de datos, una extensión o la variante exacta de base de datos que deseas.
GKE proporciona asistencia para conectarse con los servicios de bases de datos administradas de Google Cloud, incluidos los siguientes:
Cloud SQL: Base de datos completamente administrada de MySQL, PostgreSQL y SQL Server. Consulta Conéctate desde Google Kubernetes Engine.
Spanner: Base de datos relacional escalable de forma horizontal con alta disponibilidad y coherencia. Consulta Implementa una app con GKE Autopilot y Cloud Spanner.
Memorystore para Redis: Servicio de almacenamiento de datos en la memoria completamente administrado. Consulta Conéctate a una instancia de Redis desde un clúster de Google Kubernetes Engine.
Para comenzar a usar esta opción de almacenamiento, consulta estos recursos:
- Explicación de las opciones de bases de datos de Google Cloud
- Para conocer algunas consideraciones sobre el uso de una base de datos administrada o una base de datos en contenedores alojada en GKE, consulta Planifica las implementaciones de bases de datos en GKE.
Artefactos de compilación (Artifact Registry)
Artifact Registry es un administrador de repositorios de imágenes de contenedores, paquetes de SO y paquetes de lenguajes que puedes implementar y compilar.
Por qué usar Artifact Registry
Artifact Registry es una opción adecuada para almacenar imágenes de contenedor privadas, charts de Helm y otros artefactos de compilación.
Para extraer imágenes de repositorios de Docker de Artifact Registry a GKE, consulta Implementa en Google Kubernetes Engine en la documentación de Artifact Registry.
¿Qué sigue?
- Lee la entrada de blog Un mapa de opciones de almacenamiento en Google Cloud.
- Diseña una estrategia de almacenamiento óptima para tu carga de trabajo en la nube.
- Aprende a usar las abstracciones de almacenamiento de Kubernetes en GKE: PersistentVolumes y StatefulSets.
- Consulta la página de recursos Datos en GKE para obtener información sobre las soluciones de datos que puedes integrar en GKE.