Visión general del almacenamiento IBM Cloud Kubernetes Service
[Nube privada virtual] {: tag-vpc} Infraestructura clásica Satellite
Revise las secciones siguientes para obtener una visión general de las opciones de almacenamiento disponibles para el clúster.
Antes de decidir qué tipo de almacenamiento es la solución adecuada para sus clústeres de IBM Cloud® Kubernetes Service, debe comprender el proveedor de infraestructura IBM Cloud, los requisitos de su aplicación, el tipo de datos que desea almacenar y la frecuencia con la que desea acceder a estos datos.
- Decida si los datos deben almacenarse de forma permanente.
- Almacenamiento persistente: los datos almacenados en el almacenamiento persistente persisten incluso cuando se elimina el contenedor, el nodo trabajador o el clúster. Utilice el almacenamiento persistente en las aplicaciones con estado, los datos empresariales principales o los datos que deben estar disponibles debido a los requisitos legales, como un periodo de retención definido. El almacenamiento persistente también es una buena opción para la auditoría.
- Almacenamiento no persistente: los datos se pueden eliminar cuando el contenedor, el nodo trabajador o el clúster se eliminan. El almacenamiento no persistente se suele utilizar para la información de registro, como registros del sistema o registros de contenedor, pruebas de desarrollo o cuando se desea acceder a datos desde el sistema de archivos del host.
- Si debe guardar sus datos de forma permanente, analice si la app requiere un tipo específico de almacenamiento. Cuando utilizas una aplicación existente, es posible que esta esté diseñada para almacenar datos de una de las siguientes maneras.
- En un sistema de archivos: los datos de pueden almacenar como archivo en un directorio. Por ejemplo, puede almacenar este archivo en el disco duro local. Algunas apps requieren que los datos se almacenen en un sistema de archivos
específico, como por ejemplo
nfsoext4, para optimizar el almacén de datos y alcanzar los objetivos de rendimiento. - En una base de datos: los datos se deben almacenar en una base de datos que sigue un esquema específico. Algunas apps incluyen una interfaz de base de datos que puede utilizar para almacenar los datos. Por ejemplo, WordPress está optimizada para almacenar datos en una base de datos MySQL. En estos casos, el tipo de almacenamiento se selecciona por usted.
- Determine el tipo de datos que desea almacenar.
- Datos estructurados: datos que se pueden almacenar en una base de datos relacional donde tiene una tabla con columnas y filas. Los datos de las tablas se pueden conectar utilizando claves, y normalmente es fácil acceder debido al modelo de datos predefinido. Por ejemplo, números de teléfono, números de cuenta, números de seguridad social o códigos postales.
- Datos semiestructurados: datos que no caben en una base de datos relacional, pero que incluyen algunas propiedades organizativas que se pueden utilizar para leer y analizar estos datos con más facilidad. Por ejemplo, archivos de lenguaje de códigos, como CSV, XML o JSON.
- Datos no estructurados: datos que no siguen un patrón organizativo y que son tan complejos que no se pueden almacenar en una base de datos relacional con modelos de datos predefinidos. Para acceder a estos datos, necesita herramientas y software avanzados. Algunos ejemplos son mensajes de correo electrónico, vídeos, fotos, archivos de audio, presentaciones, datos de redes sociales o páginas web.
Si tiene datos estructurados y no estructurados, intente almacenar cada tipo de datos por separado en una solución de almacenamiento que se ha diseñado para este tipo de datos. El uso de una solución de almacenamiento adecuada para el tipo de datos facilita el acceso a los datos y aporta ventajas de rendimiento, escalabilidad, durabilidad y coherencia.
- Analice cómo desea acceder a los datos. Las soluciones de almacenamiento suelen estar diseñadas y optimizadas para admitir operaciones de lectura o escritura.
- Solo lectura: no desea grabar ni modificar los datos. Los datos son de solo lectura.
- Lectura y escritura: desea leer, escribir y cambiar los datos. Para los datos que se leen y se escriben, es importante saber si las operaciones presentan mucha actividad de lectura, mucha actividad de escritura o una actividad equilibrada.
- Determine la frecuencia a la que se accede a los datos.
- Datos calientes: datos a los que se accede con frecuencia. Las apps web o móviles son ejemplos habituales de este caso.
- Datos fríos o templados: datos a los que se accede con poca frecuencia, como una vez al mes o menos. El archivado, la retención de datos a corto plazo o la recuperación tras desastre son ejemplos habituales de este caso.
- Datos fríos: datos a los que se accede con muy poca frecuencia o nunca. Los archivados, las copias de seguridad a largo plazo o los datos históricos son ejemplos habituales de este caso.
- Datos bloqueados: datos a los que no se accede y que se deben conservar por razones legales.
Si no puede prever la frecuencia o la frecuencia no sigue un patrón estricto, determine si las cargas de trabajo son de lectura intensiva, escritura intensiva o equilibradas. A continuación, busque la opción de almacenamiento que se ajuste a su
carga de trabajo e investigue qué nivel de almacenamiento le proporciona la flexibilidad que necesita. Por ejemplo, IBM Cloud Object Storage proporciona una clase de almacenamiento flex que tiene en cuenta la frecuencia con la que
se accede a los datos en un mes y se basa en esta medida para optimizar la facturación mensual.
- Investigue si los datos se deben compartir entre varias instancias de app, zonas o regiones.
- Acceso en varios pods: si utiliza volúmenes persistentes de Kubernetes para acceder al almacenamiento, puede determinar el número de pods que pueden montar el volumen al mismo tiempo. Hay algunas soluciones de almacenamiento a las que solo puede acceder un pod al mismo tiempo. Con otras soluciones de almacenamiento, puede compartir el volumen entre varios pods.
- Acceso en varias zonas y regiones: puede que necesite que los datos sean accesibles desde varias zonas o regiones. Algunas soluciones de almacenamiento, como el almacenamiento de archivos y en bloque, son específicas del centro de datos y no se pueden compartir con otras zonas en una configuración de clúster multizona.
Si desea hacer que sus datos sean accesibles a través de zonas y regiones, asegúrese de consultar a su departamento legal para verificar que los datos se puedan almacenar en varias zonas o en otro país.
- Conozca otras características de almacenamiento que afectan a su elección.
- Coherencia: la garantía de que una operación de lectura devuelva la última versión de un archivo. Las soluciones de almacenamiento pueden proporcionar una
strong consistencycuando se garantiza que siempre se recibirá la última versión de un archivo, o unaeventual consistencycuando puede que la operación de lectura no devuelva la última versión. La coherencia final se suele dar en sistemas distribuidos geográficamente, donde una operación de escritura primero se debe replicar en todas las instancias. - Rendimiento: el tiempo que se tarda en completar una operación de lectura o escritura.
- Durabilidad: la garantía de que una operación de escritura que se confirme en el almacenamiento sobreviva permanentemente y no se dañe ni se pierda, aunque se escriban gigabytes o terabytes de datos en el almacenamiento de una sola vez.
- Resiliencia: la capacidad de recuperarse de una interrupción y continuar con las operaciones, aunque haya fallado un componente de hardware o de software. Por ejemplo, el almacenamiento físico experimenta una interrupción de alimentación, un corte de red o queda destruido durante una catástrofe natural.
- Disponibilidad: la capacidad de proporcionar acceso a los datos, incluso si un centro de datos o una región no están disponibles. La disponibilidad de los datos se consigue normalmente añadiendo redundancia y configurando mecanismos de migración tras error.
- Escalabilidad: la capacidad de ampliar la capacidad y personalizar el rendimiento en función de sus necesidades.
- Cifrado: el enmascaramiento de datos para evitar la visibilidad cuando un usuario no autorizado accede a los datos.
El almacenamiento local secundario debe añadirse en el momento de la creación del pool de trabajadores. La adición manual de almacenamiento desde el nivel de infraestructura después de crear un grupo de trabajadores no es compatible y no da lugar a almacenamiento efímero adicional en el clúster.
Opciones del almacenamiento no persistente
Puede utilizar las opciones de almacenamiento no persistente si no es necesario que sus datos se almacenen persistentemente o si desea realizar pruebas de unidad de los componentes de la app. La siguiente imagen muestra las opciones de datos no persistentes disponibles en IBM Cloud Kubernetes Service.
| Características | Dentro del contenedor | En el disco primario o secundario del nodo trabajador |
|---|---|---|
| Soporte multizona | No | No |
| Tipos de datos | Todos | Todos |
| Capacidad | Limitada al disco secundario disponible del nodo trabajador. Para limitar la cantidad de almacenamiento secundario que consume su pod, utilice solicitudes y límites de recursos para el almacenamiento efímero. | Limitado al espacio disponible del nodo de trabajo en el disco primario (hostPath) o secundario (emptyDir). Para limitar la cantidad de almacenamiento secundario que consume su pod, utilice solicitudes y límites
de recursos para el almacenamiento efímero. |
| Patrón de acceso a datos | Operaciones de lectura y escritura de cualquier frecuencia | Operaciones de lectura y escritura de cualquier frecuencia |
| Acceso | A través del sistema de archivos local del contenedor | A través de KuberneteshostPath para acceder al almacenamiento primario del nodo de trabajo. A través de KubernetesemptyDir volumen para acceder al almacenamiento secundario del nodo de trabajo. |
| Rendimiento | Alto | Alto con baja latencia cuando se utiliza SSD |
| Resiliencia | Bajo | Bajo |
| Disponibilidad | Específica para el contenedor | Específico para el nodo trabajador |
| Escalabilidad | Dificultad para ampliar, debido a la limitación a la capacidad de disco secundario del nodo trabajador | Dificultad para ampliar, debido a la limitación a la capacidad de disco secundario y primario del nodo trabajador |
| Durabilidad | Los datos se pierden cuando el contenedor se cuelga o se elimina. | Los datos de los volúmenes hostPath o emptyDir se pierden cuando el nodo de trabajador se suprime, se recarga o se actualiza, cuando se suprime el clúster o cuando la cuenta de IBM Cloud entra en estado suspendido.
Además, los datos de un volumen emptyDir se eliminan cuando el pod asignado se suprime de forma permanente del nodo de trabajador o cuando el nodo asignado se planifica en otro nodo de trabajador. |
| Casos de uso comunes | Caché de imagen local o registros de contenedor | Configuración de una caché local de alto rendimiento, acceso a archivos del sistema de archivos del nodo de trabajador o ejecución de pruebas unitarias. |
| Casos de uso no ideales | Almacenamiento de datos persistente o compartición de datos entre contenedores | Almacenamiento de datos persistente |
Clústeres de una sola zona
Si tiene un clúster de región de zona única, puede elegir entre las siguientes opciones en IBM Cloud Kubernetes Service que proporcionan un acceso rápido a sus datos. Para obtener una mayor disponibilidad, utilice una opción de almacenamiento diseñada para datos distribuidos geográficamente y, si es posible según sus necesidades, cree un clúster multizona.
En la imagen siguiente se muestran las opciones que tiene en IBM Cloud Kubernetes Service para almacenar los datos de forma permanente en un solo clúster.
| Características | Descripción |
|---|---|
| Guía de despliegue | Configuración de File Storage for Classic. |
| Tipos de datos ideales | Todos |
| Tipo de suministro soportado | Dinámico y estático |
| Patrón de uso de datos | Operaciones aleatorias de lectura/escritura, operaciones secuenciales de lectura/escritura o cargas de trabajo con uso intensivo de escritura |
| Acceso | A través del sistema de archivos del volumen montado |
| Modos de acceso compatibles c Kubernetes |
|
| Rendimiento | Se puede prever debido a las IOPS y el tamaño asignado. Las IOPS se comparten entre los pods que acceden al volumen. |
| Coherencia | Buena |
| Durabilidad | Alto |
| Resiliencia | Media, ya que es específica de un centro de datos. IBM dispone en un clúster el servidor de almacenamiento de archivos con redes redundantes. |
| Disponibilidad | Media, ya que es específica de un centro de datos. |
| Escalabilidad | Es difícil de ampliar más allá del centro de datos. No puede cambiar un nivel de almacenamiento existente. |
| Cifrado | En reposo |
| Copia de seguridad y recuperación | Configure instantáneas periódicas, replique instantáneas, duplique almacenamiento, haga copias de seguridad de datos en IBM Cloud Object Storage o copie datos a y desde pods y contenedores. |
| Casos de uso comunes | Almacenamiento o compartición de archivos, individuales o en masa, en un clúster de zona única. |
| Casos de uso no ideales | Clústeres multizona o datos distribuidos geográficamente. |
| Características | Descripción |
|---|---|
| Guía de despliegue | Configuración de Block Storage for Classic. |
| Tipos de datos ideales | Todos |
| Tipo de suministro soportado | Dinámico y estático |
| Patrón de uso de datos | Operaciones aleatorias de lectura/escritura, operaciones secuenciales de lectura/escritura o cargas de trabajo con uso intensivo de escritura |
| Acceso | A través del sistema de archivos en el volumen montado. |
| Modos de acceso compatibles c Kubernetes | ReadWriteOnce (RWO) |
| Rendimiento | Se puede prever debido a las IOPS y el tamaño asignado. Las IOPS no se comparten entre pods. |
| Coherencia | Buena |
| Durabilidad | Alto |
| Resiliencia | Media, ya que es específica de un centro de datos. IBM dispone en un clúster el servidor de almacenamiento en bloque con redes redundantes. |
| Disponibilidad | Media, ya que es específica de un centro de datos. |
| Escalabilidad | Es difícil de ampliar más allá del centro de datos. No puede cambiar un nivel de almacenamiento existente. |
| Cifrado | En reposo. |
| Copia de seguridad y recuperación | Configure instantáneas periódicas, replique instantáneas, duplique almacenamiento, haga copias de seguridad de datos en IBM Cloud Object Storage o copie datos a y desde pods y contenedores. |
| Casos de uso comunes | Conjuntos con estado, almacenamiento de reserva cuando se ejecuta una base de datos propia o acceso de alto rendimiento en pods únicos. |
| Casos de uso no ideales | Clústeres multizona, datos distribuidos geográficamente o compartición de datos entre varias instancias de aplicación. |
| Característica | Descripción |
|---|---|
| Guía de despliegue | Configuración de File Storage for VPC. |
| Tipos de datos ideales | Todos |
| Tipo de suministro soportado | Dinámico y estático |
| Patrón de uso de datos | Operaciones aleatorias de lectura/escritura, operaciones secuenciales de lectura/escritura o cargas de trabajo con uso intensivo de escritura |
| Acceso | A través del sistema de archivos del volumen montado |
| Modos de acceso compatibles c Kubernetes |
|
| Rendimiento | Se puede prever debido a las IOPS y el tamaño asignado. Las IOPS no se comparten entre pods. |
| Coherencia | Buena |
| Durabilidad | Alto |
| Resiliencia | Media, ya que es específica de un centro de datos. IBM dispone en un clúster el servidor de almacenamiento de archivos con redes redundantes. |
| Disponibilidad | Media, ya que es específica de un centro de datos. |
| Escalabilidad | Es difícil de ampliar más allá del centro de datos. No puede cambiar un nivel de almacenamiento existente. |
| Cifrado | Ninguna |
| Copia de seguridad y recuperación | Ejecute kubectl cp o copie datos en y desde pod y contenedores. |
| Casos de uso comunes | Almacenamiento o compartición de archivos, individuales o en masa, en un clúster de zona única. |
| Casos de uso no ideales | Clústeres multizona, datos distribuidos geográficamente o compartición de datos entre varias instancias de aplicación. |
| Características | Descripción |
|---|---|
| Guía de despliegue | Configuración de Block Storage for VPC. |
| Soporte multizona | No, ya que es específico de un centro de datos. Los datos no se pueden compartir entre zonas, a menos que implemente su propia réplica de datos. |
| Tipos de datos ideales | Todos |
| Patrón de uso de datos | Operaciones aleatorias de lectura/escritura, operaciones secuenciales de lectura/escritura o cargas de trabajo con uso intensivo de escritura |
| Acceso | A través del sistema de archivos del volumen montado |
| Escrituras de acceso de Kubernetes soportadas | ReadWriteOnce (RWO) |
| Rendimiento | Se puede prever debido a las IOPS y el tamaño asignado. Las IOPS no se comparten entre pods. |
| Coherencia | Buena |
| Durabilidad | Alto |
| Resiliencia | Media, ya que es específica de un centro de datos. IBM dispone en un clúster el servidor de almacenamiento en bloque con redes redundantes. |
| Disponibilidad | Media, ya que es específica de un centro de datos. |
| Escalabilidad | Es difícil de ampliar más allá del centro de datos. No puede cambiar un nivel de almacenamiento existente. |
| Cifrado | Cifrado en tránsito con Key Protect |
| Copia de seguridad y recuperación | Configure instantáneas periódicas, replique instantáneas, duplique almacenamiento, haga copias de seguridad de datos en IBM Cloud Object Storage o copie datos a y desde pods y contenedores. |
| Casos de uso comunes | Conjuntos con estado, almacenamiento de reserva cuando se ejecuta una base de datos propia o acceso de alto rendimiento en pods únicos. |
| Casos de uso no ideales | Clústeres multizona, datos distribuidos geográficamente o compartición de datos entre varias instancias de aplicación. |
Clústeres multizona
Las siguientes secciones muestran las opciones que tiene en IBM Cloud Kubernetes Service para almacenar de forma permanente sus datos en un clúster multizona y hacer que sus datos estén altamente disponibles. Puede utilizar estas opciones en un clúster de una sola zona, pero es posible que no obtenga las ventajas de alta disponibilidad que requiere la app.
| Característica | Descripción |
|---|---|
| Guía de despliegue | Configuración de IBM Cloud Object Storage. |
| Proveedores de infraestructura admitidos | Clásico, VPC, Satellite |
| Tipos de datos ideales | Datos semiestructurados y no estructurados |
| Patrón de uso de datos | Cargas de trabajo con mucha actividad de lectura. Pocas operaciones de escritura (o ninguna). |
| Acceso | A través del sistema de archivos del volumen montado (plugin) o a través de la API REST desde la app |
| Modos de acceso compatibles c Kubernetes | ReadWriteMany (RWX) |
| Rendimiento | Alto para operaciones de lectura. Se puede prever debido a las IOPS y el tamaño asignado cuando se utilizan máquinas no SDS. |
| Coherencia | Eventual |
| Durabilidad | Muy alta, ya que las porciones de datos se dispersan en un clúster de nodos de almacenamiento. Cada nodo almacena únicamente una parte de los datos. |
| Resiliencia | Alta ya que las porciones de datos se dispersan en tres zonas o regiones. Medio, cuando se configura solo en una región de zona única. |
| Disponibilidad | Alta, debido a la distribución en varias zonas o regiones. |
| Escalabilidad | Se escala automáticamente |
| Cifrado | En tránsito y en reposo |
| Copia de seguridad y recuperación | Los datos se replican automáticamente entre varios nodos para conseguir una alta durabilidad. Para obtener más información, consulte el SLA en los términos del servicioIBM Cloud Object Storage. |
| Casos de uso comunes | Datos distribuidos geográficamente, big data estático, contenido multimedia estático, aplicaciones web, copias de seguridad, archivos, conjuntos con estado. |
| Casos de uso no ideales | Cargas de trabajo con mucha actividad de escritura, operaciones de escritura aleatorias, actualizaciones incrementales de datos o bases de datos transaccionales. |
| Características | Descripción |
|---|---|
| Guía de despliegue | Configuración de Portworx. |
| Proveedores de infraestructura admitidos | Clásico, VPC, Satellite |
| Tipos de datos ideales | Cualquiera |
| Patrón de uso de datos | Cargas de trabajo intensivas de lectura y escritura. |
| Acceso | A través del sistema de archivos del volumen montado (plugin) o a través de la API REST desde la app |
| Modos de acceso compatibles c Kubernetes |
|
| Rendimiento | Alto para operaciones de lectura. Se puede prever debido a las IOPS y el tamaño asignado cuando se utilizan máquinas no SDS. |
| Coherencia | Buena |
| Durabilidad | Muy alta, ya que las porciones de datos se dispersan en un clúster de nodos de almacenamiento. Cada nodo almacena únicamente una parte de los datos. |
| Resiliencia | Alta ya que las porciones de datos se dispersan en tres zonas o regiones. Medio, cuando se configura solo en una región de zona única. |
| Disponibilidad | Alta, debido a la distribución en varias zonas o regiones. |
| Escalabilidad | Se escala automáticamente |
| Cifrado | Traiga su propia clave para proteger sus datos en tránsito y en reposo con IBM Key Protect. |
| Copia de seguridad y recuperación | Los datos se replican automáticamente entre varios nodos para conseguir una alta durabilidad. Para obtener más información, consulte el SLA en los términos del servicioIBM Cloud Object Storage. Utilice instantáneas locales o de nube para guardar el estado actual de un volumen. Para obtener más información, consulte Crear y utilizar instantáneas locales. |
| Casos de uso comunes | Clusters multizona. Datos distribuidos geográficamente. Big data estáticos. Contenido multimedia estático |
| Casos de uso no ideales | Cargas de trabajo con mucha actividad de escritura, operaciones de escritura aleatorias, actualizaciones incrementales de datos o bases de datos transaccionales. |
| Características | Descripción |
|---|---|
| Guía de despliegue | Conectar un despliegue Cloud Databases a una aplicación IBM Cloud Kubernetes Service. |
| Proveedores de infraestructura admitidos | Clásico, VPC, Satellite |
| Tipos de datos ideales | Depende de DBaaS |
| Patrón de uso de datos | Cargas de trabajo de lectura/escritura intensiva |
| Acceso | A través de la API REST desde la aplicación. |
| Escrituras de acceso de Kubernetes soportadas | N/A, ya que se accede directamente desde la aplicación. |
| Rendimiento | Alto si se despliega en el mismo centro de datos que la app. |
| Coherencia | Depende de DBaaS |
| Durabilidad | Alto |
| Resiliencia | Depende de la DBaaS y de la configuración. |
| Disponibilidad | Alta si se configuran varias instancias. |
| Escalabilidad | Se escala automáticamente |
| Cifrado | En reposo |
| Copia de seguridad y recuperación | Depende de DBaaS |
| Casos de uso comunes | Clústeres multizona, bases de datos relacionales y no relacionales o datos distribuidos geográficamente. |
| Casos de uso no ideales | Aplicación diseñada para escribir en un sistema de archivos. |
Próximos pasos
Para continuar con el proceso de planificación, documente la arquitectura de su entorno.