Ir al contenido

Container Linux

De Wikipedia, la enciclopedia libre
Esta es una versión antigua de esta página, editada a las 09:28 8 sep 2016 por 213.172.56.154 (discusión). La dirección URL es un enlace permanente a esta versión, que puede ser diferente de la versión actual.
CoreOS
Parte de Unix
Información general
Tipo de programa distribución Linux
Desarrollador http://www.coreos.com
Modelo de desarrollo Código abierto
Lanzamiento inicial 03 de octubre de 2013
Discontinuación 26 de mayo de 2020
Licencia Apache 2.0

CoreOS es un sistema operativo ligero de código abierto basado en el kernel de Linux y diseñado para proporcionar la infraestructura para los despliegues en clúster, mientras se centra en la automatización, facilidad de despliegue de aplicaciones, seguridad, fiabilidad y escalabilidad. Como sistema operativo, CoreOS ofrece sólo las funcionalidades mínimas necesarias para la implementación de aplicaciones dentro de contenedores de software, junto con mecanismos incorporados para el descubrimiento de servicios y el intercambio de configuración.[1][2][3][4]

CoreOS es una bifurcación de Chrome OS, por medio de la utilización de su kit de desarrollo de software (SDK) disponible sin costo a través de Chromium OS como base, al tiempo que añade nuevas funcionalidades y personalización para soportar el hardware utilizado en servidores.[3][5]​A partir de julio de 2014, CoreOS se desarrolla activamente, sobre todo por Alex Polvi, Brandon Phillips y Michael Marineau,[2]​ con sus características principales (excepto ETCD y fleet) disponibles como una versión estable.[6][7][8]

Visión general

CoreOS no proporciona un gestor de paquetes, por lo que requiere que todas las aplicaciones ejecuten dentro de sus contenedores, utilizando Docker y sus contenedores Linux (LXC) subyacentes de virtualización a nivel de sistema operativo de tecnología para la ejecución de múltiples sistemas Linux aislados en un único host de control (instancia CoreOS). De esa manera, la partición de los recursos se lleva a cabo a través de múltiples instancias de espacios de usuario aisladas, en lugar de utilizar un hipervisor y una máquina virtual. Este enfoque se basa en cgroups, funcionalidad del kernel de Linux que ofrece aislamiento del espacio de nombres y habilidades para limitar, contabilizar y aislar el uso de los recursos (CPU, la memoria, disco I/O, etc.) de un grupo de procesos.[1][4][9]

CoreOS utiliza systemd como su sistema de inicio principal, con una estrecha integración entre el mismo y las partes internas de CoreOS.[1][10]

Distribución de actualizaciones

Para mayor seguridad y fiabilidad en actualizaciones, CoreOS emplea FastPatch como un esquema de doble partición para su sólo lectura sistema de archivos raíz, lo que significa que las actualizaciones del sistema operativo se llevan a cabo en su totalidad y se instalan en una secundaria pasiva raíz partición, que se activa al reiniciar o realizando una ejecución de kernel (kexec). De esa manera, reversiones fáciles a la versión conocida a-ser-estable del sistema operativo también se aseguró, y cada partición de arranque puede ser firmó para la seguridad adicional. Partes grabables del sistema de archivos se almacenan en una partición "estado" independiente, que se cambia de tamaño automáticamente para ocupar todo el espacio disponible en disco en los reinicios.[1][4][11][12]

El sistema de distribución de actualizaciones de CoreOS se basa en el proyecto de código abierto de Google Omaha, que proporciona un mecanismo para el despliegue de las actualizaciones y el protocolo subyacente petición-respuesta sobre la base de XML[13][14]​ Además, CoreOS ofrece CoreUpdate como un dashboard basado en la web para la gestión de las actualizaciones del clúster. Las operaciones disponibles a través CoreUpdate incluyen la asignación de los miembros del clúster a los diferentes grupos que comparten las políticas de actualización personalizadas, revisar las fallas de todo el clúster en versiones de CoreOS, detener y reiniciar las actualizaciones, y la revisión de los registros de actualización grabados. CoreUpdate también ofrece una API basada en HTTP que permite su integración en los servicios de terceros o sistemas de despliegue.[11][15][16]

Infraestructura de Cluster

CoreOS ofrece ETCD, un demonio, que se ejecuta en todos los equipos en un clúster, permitiendo que los datos de configuración sean fácilmente compartidos, proporcionando un registro de configuración dinámica. Ya que los datos clave-valor almacenados dentro de ETCD son automáticamente distribuidos y replicados (con elección de maestro automatizada), todos los cambios se reflejan en todo el clúster. Además de la gestión de configuración, ETCD también proporciona el descubrimiento de servicios al permitir aplicaciones desplegadas anunciarse a sí mismas. La comunicación con ETCD se realiza a través de una API simple, que utiliza internamente JSON en la parte superior de HTTP; la API se puede utilizar directamente (a través de curl , por ejemplo), o indirectamente a través de etcdctl , que es una utilidad de línea de comandos también suministrada por CoreOS.[1][4][17][18][19]

CoreOS también ofrece fleet, un demonio para la administración del clúster, que controla instancias systemd separadas de CoreOS a nivel del clúster. Mediante el uso de fleet, CoreOS crea un sistema de inicio distribuido que enlaza diferentes instancias de systemd y de despliegue ETCD en todo el clúster; internamente, fleet se comunica con systemd sobre D-Bus. Fleet permite tener contenedores simples o múltiples que se desplegarán en todo el clúster, con opciones más avanzadas incluyendo redundancia, failover, despliegue a miembros específicos del clúster, dependencias entre los contenedores, y el despliegue de contenedores agrupados. La utilidad de línea de comandos denominada fleetctl se utiliza para configurar y supervisar este sistema init distribuido; internamente, se comunica con el clúster ETCD. Cuando se utiliza de forma local en un miembro de clúster, fleetctl se comunica con la instancia local de ETCD; cuando se utiliza desde un host externo, el túnel SSH se utiliza con la autenticación proporcionada a través de clave SSH pública.[20][21][22][23]

Tanto etcd como fleet están escritos en el lenguaje de programación GO y distribuidas bajo la licencia de Apache 2.0.

Despliegue

Además de ejecutar en hardware dedicado, donde puede ser tanto instalado en el disco permanentemente como ejecutado remotamente via PXE o iPXE,[24][25][26]​ CoreOS soporta despliegues en varias plataformas de virtualización de hardware, incluyendo Amazon EC2, DigitalOcean, Google Compute Engine, Microsoft Azure, OpenStack, QEMU / KVM, Vagrant y VMware.[4][27][28][29]

Véase también

Referencias

  1. a b c d e Libby Clark (2013-09-09 de mdy). «Brandon Philips: How the CoreOS Linux Distro Uses Cgroups». Linux.com. Consultado el 2014-02-13 de mdy. 
  2. a b Cade Metz (2013-08-21 de mdy). «Linux Hackers Rebuild Internet From Silicon Valley Garage». Wired. Consultado el 2014-02-13 de mdy. 
  3. a b «CoreOS – a new approach to Linux-based server systems». itnews2day.com. 2013-08-22 de mdy. Consultado el 2014-03-26 de mdy. 
  4. a b c d e Using CoreOS. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy. 
  5. Brian Harrington (2014-07-08 de mdy). «CoreOS: Anatomy of a CoreOS update». youtube.com. Rackspace. Consultado el 2014-07-25 de mdy. 
  6. Alex Polvi (2014-07-25 de mdy). «CoreOS Stable Release». coreos.com. Consultado el 2014-08-28 de mdy. 
  7. «CoreOS Release Notes». coreos.com. Consultado el 2014-08-28 de mdy. 
  8. Blake Mizerany (2014-04-14 de mdy). «etcd – The Road to 1.0». coreos.com. Consultado el 2014-08-28 de mdy. 
  9. Using docker with CoreOS. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy. 
  10. Using systemd with CoreOS. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy. 
  11. a b Updates & Patches. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy. 
  12. Adding Disk Space to Your CoreOS Machine. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy. 
  13. «Omaha – software installer and auto-updater for Windows». code.google.com. Consultado el 2014-10-11 de mdy. 
  14. «Omaha Overview». omaha.googlecode.com. 2009-09-23 de mdy. Consultado el 2014-10-11 de mdy. 
  15. «Package omaha». godoc.org. 2014-06-24 de mdy. Consultado el 2014-07-04 de mdy. 
  16. CoreUpdate. «CoreOS documentation». coreos.com. Consultado el 2014-07-04 de mdy. 
  17. Using etcd with CoreOS. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy. 
  18. Getting Started with etcd. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy. 
  19. Brandon Philips (2014-01-15 de mdy). «etcd @ GoSF». speakerdeck.com. Consultado el 2014-02-13 de mdy. 
  20. Launching containers with fleet. «CoreOS documentation». coreos.com. Consultado el 2014-04-03 de mdy. 
  21. Using the Client. «CoreOS documentation». coreos.com. Consultado el 2014-04-03 de mdy. 
  22. fleet/README.md at master. «coreos/fleet». github.com. 2014-02-18 de mdy. Consultado el 2014-04-03 de mdy. 
  23. fleet/Documentation/deployment.md at master. «coreos/fleet». github.com. 2014-03-07 de mdy. Consultado el 2014-04-03 de mdy. 
  24. Installing CoreOS to Disk. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy. 
  25. Booting CoreOS via PXE. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy. 
  26. Booting CoreOS via iPXE. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy. 
  27. Alex Crawford (2014-09-05 de mdy). «CoreOS Image Now Available On DigitalOcean». coreos.com. Consultado el 2014-09-05 de mdy. 
  28. Jack Clark (2014-05-23 de mdy). «Google brings futuristic Linux software CoreOS onto its cloud». The Register. Consultado el 2014-05-26 de mdy. 
  29. Alex Crawford (2014-10-20 de mdy). «CoreOS Now Available On Microsoft Azure». coreos.com. Consultado el 2014-10-22 de mdy. 

Enlaces externos