Kubernetes storage 101: conceptos básicos de almacenamiento de contenedores

Kubernetes storage 101: conceptos básicos de almacenamiento de contenedores


El uso de aplicaciones en contenedores, generalmente con un orquestador de contenedores como Kubernetes, es actualmente una gran tendencia en TI y se está volviendo casi omnipresente entre los usuarios de todos los sectores.

Las aplicaciones en contenedores son una forma de virtualización de aplicaciones, pero que elimina la necesidad de múltiples iteraciones de un sistema operativo (OS). Los contenedores son algo así como máquinas virtuales (VM) «tradicionales», pero hacen uso del sistema operativo del servidor en lugar de crear versiones pequeñas propias.

Los contenedores, a menudo Docker, pero hay otros en el mercado, contienen todo lo que se necesita para que se ejecute una aplicación, y se pueden crear, agilizar, clonar y escalar, y extinguir muy rápidamente.

Por esta razón, los contenedores se adaptan bien a las cargas de trabajo que ven picos masivos en la demanda, especialmente en la web, y principalmente donde Kubernetes funcionalidad de automatización permite que esto ocurra rápidamente.

Los contenedores son inherentemente apátrida, y veremos primero cómo funcionan las cosas allí, aunque la mayor parte de este artículo se referirá al almacenamiento persistente en Kubernetes, que se ha convertido en la plataforma de orquestación de contenedores predeterminada.

Kubernetes maneja funciones como la creación, gestión, automatización, equilibrio de carga, relación con el hardware, incluido el almacenamiento, de contenedores, que se organizan, en Kubernetes-speak, en vainas, que es lo que llamamos cualquier colección de uno o más contenedores.

Efímero por naturaleza, persistente si es necesario

En su forma más básica, el almacenamiento en Kubernetes es efímero (no persistente). Es el almacenamiento que se escribe en el contenedor y se crea a partir de un espacio temporal temporal en la máquina host que existe para la vida útil del pod Kubernetes. Se crea mediante el comando emptyDir y es portátil, pero no persistente.

Kubernetes también es compatible almacenamiento persistente que puede estar en una amplia gama de formatos locales y en la nube, incluidos archivos, bloques, objetos y numerosas clases de almacenamiento de los proveedores de la nube. El almacenamiento también puede estar en servicios de datos, como bases de datos, que finalmente dependen de la existencia de almacenamiento físico en algún lugar también.

Se puede hacer referencia al almacenamiento directamente desde el interior de la cápsula, pero esto no se recomienda porque viola el principio de portabilidad del contenedor / cápsula. En cambio, los volúmenes persistentes y los reclamos de volúmenes persistentes (PV / PVC) se utilizan para definir los requisitos de almacenamiento y aplicación.

Los PV y los PVC desacoplan la implementación del almacenamiento de su funcionamiento y permiten que el almacenamiento de bloques / archivos / objetos sea consumido por un pod de forma portátil. También desacoplan las necesidades del usuario / aplicación y la configuración de almacenamiento.

Un PV es donde los administradores definen el almacenamiento y sus parámetros de rendimiento y capacidad, es decir, define un volumen de almacenamiento persistente. Contiene detalles sobre el almacenamiento, como la clase de rendimiento / costo, la capacidad, así como el complemento de volumen utilizado, las rutas, las direcciones IP, los nombres de usuario y las contraseñas y qué hacer con el volumen después de su uso. Los PV no son portátiles en los grupos de Kubernetes.

Mientras tanto, se utiliza un PVC para describir el almacenamiento que un usuario / devops desea para su aplicación. Estos son portátiles y viajan con la aplicación. Kubernetes calcula qué almacenamiento está disponible a partir de PV definidos y le une el PVC.

Los PVC se definen en el pod Ñame para que el reclamo viaje con él y pueda ser bastante simple, especificando solo la capacidad y el nivel de almacenamiento, por ejemplo.

Hay disposiciones para múltiples pods clonados en Kubernetes, llamados despliegues, que comparten un solo PVC, pero esto puede generar problemas como bloqueos. Una alternativa es el conjunto con estado, que duplica el PVC a través de las vainas.

La clase de almacenamiento agrupa volúmenes persistentes

Se puede agrupar una colección de PV en una clase de almacenamiento, que es una interfaz de programación de aplicaciones de Kubernetes (API) que establece los parámetros de almacenamiento. Es un método de aprovisionamiento dinámico que brinda la capacidad de crear nuevos volúmenes a pedido.

La clase de almacenamiento especifica el complemento de volumen utilizado, el proveedor externo, por ejemplo, en la nube, y el nombre del controlador CSI. Las CSI (interfaces de almacenamiento de contenedores) son controladores que permiten que los contenedores interactúen con la nube y los productos del proveedor de almacenamiento.

Es una buena práctica tener una clase de almacenamiento marcada como «predeterminada» para que no tenga que invocarse mediante el uso de un PVC, o para que se pueda invocar si un usuario no especifica una clase de almacenamiento en un PVC.

También se puede crear una clase de almacenamiento para datos antiguos a los que las aplicaciones en contenedores deben tener acceso.

Otras formas de hacer almacenamiento en Kubernetes

Existen otros métodos para crear el almacenamiento de Kubernetes, pero estos tienen sus inconvenientes, como la falta de portabilidad.

Ese es el caso de la ruta del host, que expone un directorio en la máquina host. Obviamente, eso no será portátil porque la ruta no será accesible si el pod / contenedor se mueve y no es algo que la mayoría de las implementaciones de pod desean.

Los volúmenes locales persistentes también se pueden crear mediante el almacenamiento de bloques, archivos u objetos. Esto se puede usar, por ejemplo, para construir un sistema de almacenamiento distribuido sobre Kubernetes, creando efectivamente un grupo de almacenamiento virtualizado / en contenedores, que es algo similar a lo que ha creado Rook.

Deberías leer:   Dodge presenta a los fanáticos de los muscle-cars los vehículos eléctricos mientras busca retirar los modelos Challenger y Charger
Acerca de

Pilar Benegas es una reconocida periodista con amplia experiencia en importantes medios de USA, como LaOpinion, Miami News, The Washington Post, entre otros. Es editora en jefe de Es de Latino desde 2019.