Código LXC

Virtualización a nivel de sistema operativo para Linux
Contenedores de Linux
Desarrollador(es)
  • Kernel: Virtuozzo , IBM , Google , Eric Biederman y otros
  • Espacio de usuario: Daniel Lezcano, Serge Hallyn, Stéphane Graber y otros
Lanzamiento inicial6 de agosto de 2008 ; hace 16 años [1] ( 06-08-2008 )
Versión estable
6.0.0 [2]  / 3 de abril de 2024 ; hace 6 meses ( 3 de abril de 2024 )
Repositorio
  • github.com/lxc
Escrito enC , Concha
Sistema operativoLinux
Plataformax86 , IA-64 , PowerPC , SPARC , Itanium , ARM
TipoVirtualización a nivel de sistema operativo
LicenciaGNU LGPL v.2.1 (algunos componentes bajo GNU GPL v2 y BSD )
Sitio weblinuxcontainers.org

Linux Containers ( LXC ) es un método de virtualización a nivel de sistema operativo para ejecutar múltiples sistemas Linux aislados (contenedores) en un host de control utilizando un único kernel Linux.

El kernel de Linux proporciona la funcionalidad cgroups que permite la limitación y priorización de recursos (CPU, memoria, bloque de E/S, red, etc.) sin la necesidad de iniciar ninguna máquina virtual , y también la funcionalidad de aislamiento de espacio de nombres que permite el aislamiento completo de la vista de una aplicación del entorno operativo, incluidos árboles de procesos , redes , identificaciones de usuario y sistemas de archivos montados . [3]

LXC combina los cgroups del núcleo y el soporte para espacios de nombres aislados para proporcionar un entorno aislado para las aplicaciones. [4] Las primeras versiones de Docker usaban LXC como el controlador de ejecución del contenedor, [4] aunque LXC se hizo opcional en la v0.9 y el soporte se eliminó en Docker v1.10. [5] [6]

Descripción general

LXC fue desarrollado inicialmente por IBM , como parte de una colaboración entre varias partes que buscaban agregar espacios de nombres al kernel. [7] Proporciona virtualización a nivel de sistema operativo a través de un entorno virtual que tiene su propio proceso y espacio de red, en lugar de crear una máquina virtual completa . LXC se basa en la funcionalidad cgroups del kernel de Linux [8] que se lanzó en la versión 2.6.24. También se basa en otros tipos de funcionalidad de aislamiento de espacios de nombres, que se desarrollaron e integraron en el kernel principal de Linux.

Seguridad

Originalmente, los contenedores LXC no eran tan seguros como otros métodos de virtualización a nivel de SO como OpenVZ : en los núcleos Linux anteriores a la versión 3.8, el usuario root del sistema invitado podía ejecutar código arbitrario en el sistema host con privilegios de root, tal como lo pueden hacer en las cárceles chroot . [9] A partir de la versión LXC 1.0, es posible ejecutar contenedores como usuarios normales en el host utilizando "contenedores sin privilegios". [10] Los contenedores sin privilegios están más limitados en el sentido de que no pueden acceder al hardware directamente. Sin embargo, incluso los contenedores privilegiados deberían proporcionar un aislamiento adecuado en el modelo de seguridad LXC 1.0, si se configuran correctamente. [10]

Alternativas

LXC es similar a otras tecnologías de virtualización a nivel de SO en Linux como OpenVZ y Linux-VServer , así como a las de otros sistemas operativos como FreeBSD jails , AIX Workload Partitions y Solaris Containers . A diferencia de OpenVZ, LXC funciona en el kernel de Linux original, por lo que no es necesario aplicar parches adicionales a las fuentes del kernel. La versión 1 de LXC, que se lanzó el 20 de febrero de 2014 como una versión con soporte a largo plazo, recibió soporte durante cinco años. [11] LXC 4.0 recibirá soporte hasta el 1 de junio de 2025 y LXC 5.0 hasta el 1 de junio de 2027. [12]

Láser

LXD es un gestor de contenedores alternativo de Linux, escrito en Go . Está construido sobre LXC y tiene como objetivo proporcionar una mejor experiencia de usuario. [13] Es un hipervisor de contenedores que proporciona una API para gestionar contenedores LXC. [14] El proyecto LXD se inició en 2015 y fue patrocinado desde el principio por Canonical Ltd. , la empresa detrás de Ubuntu . El 4 de julio de 2023, el proyecto LinuxContainers anunció que Canonical había decidido hacerse cargo del proyecto LXD, pero se realizó una bifurcación llamada Incus. [15] [16] El 25 de agosto de 2023, la versión 5.17 de LXD se lanzó oficialmente bajo el control de Canonical, proporcionando soporte para las capacidades de delegación de OpenZFS 2.2. [17]

Véase también

Referencias

  1. ^ "Descargas". Contenedores Linux . Archivado desde el original el 2014-11-10 . Consultado el 2014-11-10 .
  2. ^ "Versión v6.0.0". 3 de abril de 2024. Consultado el 11 de abril de 2024 .
  3. ^ Rami Rosen (mayo de 2013). "Gestión de recursos: espacios de nombres y grupos de control del núcleo de Linux" (PDF) . CS . UCSB . Consultado el 11 de febrero de 2015 .
  4. ^ ab Kenlon, Seth (30 de enero de 2020). "Explorando contenedores Linux simples con lxc". Red Hat . IBM . Consultado el 5 de julio de 2023 .
  5. ^ "Docker 0.9: introducción de controladores de ejecución y libcontainer". Blog . Docker. 2014-03-10 . Consultado el 2018-05-09 .
  6. ^ "1.10.0". Notas de la versión del motor . Docker. 2016-02-04 . Consultado el 2020-10-06 .
  7. ^ Webb, Jordan (13 de septiembre de 2022). "LXC y LXD: una historia de contenedores diferente". LWN.net . Consultado el 5 de julio de 2023 .
  8. ^ Koutoupis, Petros (27 de agosto de 2018). "Todo lo que necesita saber sobre contenedores de Linux, parte II: trabajar con contenedores de Linux (LXC)". Linux Journal . Consultado el 5 de julio de 2023 .
  9. ^ Marco, d'Itri (2011). "Evading from Linux Containers". BOFH . IT. Archivado desde el original el 9 de enero de 2014 . Consultado el 12 de febrero de 2014 .
  10. ^ ab Graber, Stéphane (1 de enero de 2014). "LXC 1.0: características de seguridad [6/10]" . Consultado el 12 de febrero de 2014 . Sin embargo, al menos en Ubuntu, nuestros contenedores predeterminados se entregan con lo que creemos que es una configuración bastante buena tanto del acceso a cgroup como de un amplio perfil de apparmor que evita todos los ataques de los que tenemos conocimiento. [...] LXC ya no se ejecuta como root, por lo que incluso si un atacante logra escapar del contenedor, se encontrará con los privilegios de un usuario normal en el host
  11. ^ Graber, Stéphane (2013-12-20). «LXC 1.0: Su primer contenedor Ubuntu». St. Graber . Consultado el 23 de febrero de 2014 .
  12. ^ "LXC". Contenedores de Linux . Consultado el 7 de febrero de 2023 .
  13. ^ "Introducción". LXD . Contenedores Linux . Consultado el 14 de abril de 2020 .
  14. ^ Parrott, Thomas. "Introducción a los proyectos LXD". Ubuntu . Canonical . Consultado el 5 de julio de 2023 .
  15. ^ "LXD se ha trasladado a Canonical". Contenedores Linux . 2023-07-04. Archivado desde el original el 2023-07-04 . Consultado el 2023-07-05 .
  16. ^ Rudra, Sourav (5 de julio de 2023). "El proyecto LXD encuentra un nuevo hogar en Canonical". Es Foss . Consultado el 5 de julio de 2023 .
  17. ^ Parrott, Thomas (25 de agosto de 2023). "Se ha publicado LXD 5.17". Ubuntu . Canonical.
  • Sitio web oficial y repositorio de código fuente en GitHub
  • Artículo de IBM Developerworks sobre LXC
  • "Cómo evadirse de los contenedores de Linux" por Marco D'Itri
  • Presentación sobre cgroups y espacios de nombres, la tecnología subyacente de los contenedores de Linux, por Rami Rosen
  • Presentación sobre contenedores Linux y la nube del futuro, por Rami Rosen
  • LXC: Instalar y configurar los contenedores de Linux
  • LSS: Contenedores Linux seguros (LWN.net)
  • Introducción a los contenedores de Linux
  • LXC en Android en YouTube , abril de 2013
Obtenido de "https://es.wikipedia.org/w/index.php?title=LXC&oldid=1242793800"