
Durante la última década, los contenedores se han convertido en una parte esencial para hacer funcionar la infraestructura de manera más eficiente. Los contenedores permiten la productividad, la automatización y la implementación rentable. Pero hay diferentes tipos de contenedores a considerar, este blog explica qué son los contenedores de Linux y en qué se diferencian de los contenedores de aplicaciones.
fotógrafo Guillermo Borduc existe sin salpicaduras
Contenedores de aplicaciones y sistemas
contenedor de aplicaciones (Tal como Peón) es un contenedor que ejecuta un proceso por contenedor. Ejecutan tipos de cargas de trabajo sin estado, por lo que puede crecer y reducirse según sea necesario: cree nuevos contenedores y elimínelos en cualquier momento. Por lo general, no necesita preocuparse por la vida útil de estos contenedores porque son de corta duración.
otro contenedor, contenedor del sistema, que está más cerca de una máquina virtual o física. Ejecutan un sistema operativo completo en ellos y puede administrarlos como máquinas virtuales o físicas. Esto significa que puede instalar paquetes en él, puede administrar servicios, definir políticas de respaldo, monitoreo y todo lo demás, tal como lo haría normalmente con una máquina virtual. Estos contenedores suelen ser muy duraderos. Si necesitas actualizarlos, puedes hacerlo usando las herramientas habituales para la distribución de Linux que estés usando. Esto también significa que obtendrá actualizaciones de seguridad normales a partir del lanzamiento de estos contenedores, por lo que no necesita esperar a que se publiquen imágenes para obtener correcciones de seguridad.
caminar por el carril de la memoria
Los contenedores de sistema son técnicamente el tipo de contenedor más antiguo.Todo comenzó en 1999, cuando salió BSD prisión, una forma de ejecutar un segundo sistema BSD en el mismo kernel que el sistema principal.Poco después, la implementación de Linux del concepto fue servidor virtual linuxEste es un proyecto separado con un gran conjunto de parches para el kernel de Linux, con el objetivo de implementar la funcionalidad similar a la cárcel de BSD.En poco tiempo, Solaris crece área Es el mismo concepto, pero es parte del sistema operativo Solaris. OpenVZ Los proyectos siguieron y comenzaron a implementar múltiples VPS (Servidor Privado Virtual) en Linux. Todos estos proyectos proporcionan contenedores de sistema que ejecutan un sistema operativo Linux completo. Ni Linux vServer ni OpenVZ son la línea principal, son conjuntos de parches bastante grandes sobre el kernel de Linux. Para habilitar estos contenedores, debe instalar un conjunto de parches específico en una distribución específica y luego usar otras herramientas para adjuntar el contenedor.
Contenedores Linux
Los contenedores de Linux, también conocidos como LXC, son la primera implementación de contenedores del sistema basada completamente en las funciones principales de Linux. Esto significa que puede tomar un kernel upstream completamente limpio, o el kernel de cualquier distribución de distribución de Linux, y usarlo para crear contenedores en Linux. LXC en sí mismo es una herramienta de bajo nivel que puede crear contenedores de aplicaciones y sistemas. Docker se basó originalmente en LXC y luego se reemplazó al implementar su propio tiempo de ejecución.
Los contenedores LXC generalmente se consideran en algún lugar entre un chroot y una máquina virtual completa. El objetivo de LXC es crear un entorno lo más parecido posible a una instalación estándar de Linux, pero sin la necesidad de un kernel separado. Un contenedor LXC es esencialmente una copia del sistema operativo que se ejecuta en el mismo núcleo que su host, por lo que en este caso no necesita virtualizar nada y no hay ningún proceso general. En lo que respecta al kernel, todos los procesos que se ejecutan en el contenedor son simplemente procesos normales en el sistema, simplemente ven el sistema operativo de manera ligeramente diferente.
¿Cuándo debería usar contenedores de Linux?
Cada vez que ejecute Linux sobre Linux, debe considerar usar contenedores en lugar de máquinas virtuales. No hay nada que una máquina virtual pueda hacer que un contenedor Linux no pueda. Para casi cualquier caso de uso, puede ejecutar exactamente la misma carga de trabajo en un contenedor del sistema sin sufrir los gastos generales en los que normalmente incurriría al usar una máquina virtual. La única excepción es si necesita una versión específica del kernel que sea diferente del kernel host para la funcionalidad específica de esa máquina virtual.
Los contenedores del sistema son más fáciles de administrar que las máquinas virtuales. Puede ver todo lo que están haciendo directamente desde el sistema host y verá todos los procesos que se ejecutan en él. También puede compartir fácilmente sistemas de archivos directamente o compartir archivos específicos, y puede limitar o aumentar su consumo de recursos sin reiniciar nada. Puede pasar cualquier dispositivo del host al contenedor y eliminarlo en cualquier momento sin necesidad de hardware, firmware, controladores o cualquier otra cosa específica para hacerlo. Esto hace que los contenedores de Linux sean ideales para entornos de desarrollo y producción, reemplazando sus máquinas físicas o virtuales habituales.
¿Qué es LXD?
LXD es un contenedor de sistema e hipervisor que se ejecuta sobre LXC, lo que mejora la experiencia y permite un control y mantenimiento más sencillos. LXD está basado en imágenes y proporciona imágenes para varias distribuciones de Linux diferentes. Una herramienta de línea de comandos simple le permite administrar fácilmente sus instancias y es fácil de integrar con herramientas de administración y orquestación de terceros. LXD puede ejecutar clústeres, alimenta diferentes backends de almacenamiento y tipos de red, y puede escalar fácilmente desde una única instancia en una computadora portátil hasta un bastidor completo en un centro de datos.
LXC y LXD
LXC | LXD |
– El tiempo de ejecución del contenedor de Linux permite la creación de múltiples sistemas Linux aislados (contenedores) en el host de control usando un solo kernel de Linux – solo admite contenedores – Herramientas de bajo nivel que requieren conocimientos especializados | – Contenedor de sistema e hipervisor integrados en LXC para facilitar la gestión, el control y la integración – Soporte para contenedores y máquinas virtuales – Mejor experiencia de usuario con API REST simple |
TL; Doctorado
Los contenedores de Linux son contenedores del sistema que se comportan y administran como máquinas virtuales, sin la sobrecarga habitual de las máquinas virtuales y con la densidad y eficiencia de los contenedores. Son adecuados para ejecutar todo tipo de cargas de trabajo. Con LXD, puede ejecutar y administrar fácilmente contenedores de Linux y escalarlos según sea necesario.Para obtener más información sobre LXC y LXD, visite sitio de la comunidadSi desea probar y probar LXD sin tenerlo instalado en su máquina, puede usar LXD Herramienta de presentación en línea.