Mejores prácticas de almacenamiento

Descubra las mejores prácticas de almacenamiento para clusters que ha creado con Kubernetes Engine (OKE).

Esta sección contiene las mejores prácticas para el almacenamiento y el motor de Kubernetes.

Mejores prácticas: elija el tipo de almacenamiento adecuado

Le recomendamos que tenga en cuenta el tipo de carga de trabajo que ejecutará un cluster antes de elegir un tipo de almacenamiento adecuado para esa carga de trabajo.

Si necesita un sistema de archivos de red empresarial duradero, ampliable y distribuido, recomendamos que utilice el servicio Oracle Cloud Infrastructure File Storage.

Si necesita un almacenamiento en bloque de alto rendimiento, duradero y persistente, recomendamos utilizar el servicio Oracle Cloud Infrastructure Block Volume.

Mejores prácticas: creación y uso de clases de almacenamiento para definir las necesidades de la aplicación

Le recomendamos que defina el tipo de almacenamiento necesario mediante las clases de almacenamiento de Kubernetes y, a continuación, haga referencia a las clases de almacenamiento en las especificaciones de despliegue y pod. Las definiciones de clase de almacenamiento funcionan conjuntamente para crear el almacenamiento adecuado y conectarlo a los pods.

Consulte Configuración del almacenamiento para clusters de Kubernetes.

Mejores prácticas: creación y uso de volúmenes para almacenamiento persistente

Le recomendamos que cree y utilice volúmenes persistentes (PV) para almacenar datos fuera de los contenedores y evitar la pérdida de datos.

El almacenamiento en contenedores a través de un sistema de archivos raíz de contenedor es efímero y puede desaparecer durante la creación y supresión de contenedores. Para proporcionar una ubicación duradera para evitar que se pierdan datos, cree y utilice volúmenes persistentes para almacenar datos fuera de contenedores.

Al crear un volumen persistente, la documentación de Kubernetes recomienda:

  • Incluya siempre las reclamaciones de volumen persistentes (PVC) en las configuraciones de contenedor.
  • Siempre se define una clase de almacenamiento por defecto para un cluster; de lo contrario, fallarán las PVC que no especifiquen una clase específica.
  • Proporcionar siempre nombres significativos a las clases de almacenamiento.

Consulte Configuración del almacenamiento para clusters de Kubernetes.

Mejores prácticas: aprovisionamiento dinámico de volúmenes

Recomendamos aprovisionar de forma dinámica volúmenes persistentes (PV) respaldados por el servicio de volúmenes en bloque, en lugar de crear y asignar volúmenes de forma estática. El aprovisionamiento dinámico de volúmenes reduce la sobrecarga de gestión y permite la ampliación.

También recomendamos que incluya una política de reclamación adecuada en las definiciones de clase de almacenamiento para minimizar los costos de almacenamiento innecesarios cuando se supriman los pods.

Tenga en cuenta que el aprovisionamiento dinámico no está disponible para PV respaldados por el servicio File Storage.

Consulte Creación de una PVC en un volumen en bloque mediante el plugin de volumen CSI.

Mejores prácticas: utilice el plugin de volumen CSI en lugar del plugin de volumen FlexVolume

Recomendamos que utilice el plugin de volumen CSI para aprovisionar reclamaciones de volumen persistentes en el servicio de volumen en bloque, en lugar del plugin de volumen FlexVolume.

Recomendamos el plugin de volumen CSI porque:

  • La nueva funcionalidad solo se está agregando al plugin de volumen CSI, no al plugin de volumen FlexVolume (aunque los desarrolladores de Kubernetes seguirán manteniendo el plugin de volumen FlexVolume).
  • El plugin de volumen CSI no requiere acceso a dependencias subyacentes del sistema operativo y del sistema de archivos raíz.

El StorageClass especificado para un PVC controla qué plugin de volumen se debe utilizar para conectarse a los volúmenes del servicio Volumen en bloque. Por defecto, se definen dos clases de almacenamiento: oci-bv para el plugin de volumen CSI y oci para el plugin FlexVolume. Si no especifica explícitamente un valor para storageClassName en el archivo yaml que define la PVC, se utilizará la clase de almacenamiento por defecto del cluster.

Kubernetes Engine define inicialmente la clase de almacenamiento por defecto de un cluster según la versión de Kubernetes especificada cuando se creó el cluster. En los clusters creados por Kubernetes Engine para ejecutar Kubernetes versión 1.24 (o posterior), la clase de almacenamiento oci-bv se define inicialmente como la clase por defecto.

Consulte Creación de una PVC en un volumen en bloque mediante el plugin de volumen CSI (y Cambio del valor por defecto StorageClass en la documentación de Kubernetes).

Mejores prácticas: Limitación del consumo de recursos de almacenamiento

Recomendamos que limite el uso del almacenamiento por contenedores para reflejar la cantidad de almacenamiento realmente disponible en el centro de datos local o el presupuesto disponible para los recursos de almacenamiento de Oracle Cloud.

Puede limitar el consumo de almacenamiento de contenedores mediante:

  • Cuotas de recursos para limitar la cantidad de recursos (incluido el almacenamiento, la CPU y la memoria) que pueden utilizar todos los contenedores de un espacio de nombres de Kubernetes.
  • StorageClasses para limitar la cantidad de almacenamiento aprovisionado a los contenedores en respuesta a una reclamación de volumen persistente (PVC).

Consulte Configuración del almacenamiento para clusters de Kubernetes (y Cuotas de recursos en la documentación de Kubernetes).

Mejores prácticas: Protección y copia de seguridad de datos

Le recomendamos que utilice las herramientas adecuadas para proteger y realizar copias de seguridad de los datos.

Mejores prácticas: uso de un sistema de archivos distribuido para casos de uso de ReadWriteMany

Recomendamos utilizar un sistema de archivos distribuido (como NFS o el servicio File Storage de Oracle Cloud Infrastructure) al aprovisionar PVC para casos de uso de ReadWriteMany.

El almacenamiento de volúmenes en bloque con capacidades de alto rendimiento (como el servicio Oracle Cloud Infrastructure Block Volume) es más adecuado al aprovisionar PVC para casos de uso de lectura y escritura únicas.

Consulte Configuración del almacenamiento para clusters de Kubernetes.