Container Linux
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 License 2.0 | |
Información técnica | ||
Plataformas admitidas | x64 | |
Versiones | ||
Última versión estable | 2135.5.0 (info) (2 de julio de 2019 (5 años y 10 meses)) | |
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 solo 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 tener mayor seguridad y fiabilidad en las actualizaciones, CoreOS usa FastPatch como un esquema de doble partición con un sistema de archivos raíz de sólo lectura, lo que significa que las actualizaciones del sistema operativo se llevan a cabo en su totalidad y se instalan en una partición secundaria, que se activa al reiniciar o realizando una ejecución de kernel (kexec). De esa manera también se aseguran reversiones fáciles a la versión estable conocida. Cada partición de arranque puede firmarse para la tener 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 vía 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
Portal:Software Libre. Contenido relacionado con Linux.
Referencias
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ a b c d e Using CoreOS. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy.
- ↑ Brian Harrington (2014-07-08 de mdy). «CoreOS: Anatomy of a CoreOS update». youtube.com. Rackspace. Consultado el 2014-07-25 de mdy.
- ↑ Alex Polvi (2014-07-25 de mdy). «CoreOS Stable Release». coreos.com. Consultado el 2014-08-28 de mdy.
- ↑ «CoreOS Release Notes». coreos.com. Consultado el 2014-08-28 de mdy.
- ↑ Blake Mizerany (2014-04-14 de mdy). «etcd – The Road to 1.0». coreos.com. Consultado el 2014-08-28 de mdy.
- ↑ Using docker with CoreOS. «CoreOS documentation». coreos.com. Archivado desde el original el 14 de febrero de 2014. Consultado el 2014-02-13 de mdy.
- ↑ Using systemd with CoreOS. «CoreOS documentation». coreos.com. Archivado desde el original el 14 de febrero de 2014. Consultado el 2014-02-13 de mdy.
- ↑ a b Updates & Patches. «CoreOS documentation». coreos.com. Archivado desde el original el 14 de febrero de 2014. Consultado el 2014-02-13 de mdy.
- ↑ Adding Disk Space to Your CoreOS Machine. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy.
- ↑ «Omaha – software installer and auto-updater for Windows». code.google.com. Consultado el 2014-10-11 de mdy.
- ↑ «Omaha Overview». omaha.googlecode.com. 2009-09-23 de mdy. Archivado desde el original el 6 de mayo de 2009. Consultado el 2014-10-11 de mdy.
- ↑ «Package omaha». godoc.org. 2014-06-24 de mdy. Consultado el 2014-07-04 de mdy.
- ↑ CoreUpdate. «CoreOS documentation». coreos.com. Consultado el 2014-07-04 de mdy.
- ↑ Using etcd with CoreOS. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy.
- ↑ Getting Started with etcd. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy.
- ↑ Brandon Philips (2014-01-15 de mdy). «etcd @ GoSF». speakerdeck.com. Consultado el 2014-02-13 de mdy.
- ↑ Launching containers with fleet. «CoreOS documentation». coreos.com. Consultado el 2014-04-03 de mdy.
- ↑ Using the Client. «CoreOS documentation». coreos.com. Consultado el 2014-04-03 de mdy.
- ↑ fleet/README.md at master. «coreos/fleet». github.com. 2014-02-18 de mdy. Consultado el 2014-04-03 de mdy.
- ↑ fleet/Documentation/deployment.md at master. «coreos/fleet». github.com. 2014-03-07 de mdy. Consultado el 2014-04-03 de mdy. (enlace roto disponible en Internet Archive; véase el https://github.com/coreos/fleet/blob/master/Documentation/deployment.md (enlace roto disponible en Internet Archive; véase el [//web.archive.org/web/*/https://github.com/coreos/fleet/blob/master/Documentation/deployment.md historial, la primera versión y la última). historial], la https://github.com/coreos/fleet/blob/master/Documentation/deployment.md (enlace roto disponible en Internet Archive; véase el [//web.archive.org/web/*/https://github.com/coreos/fleet/blob/master/Documentation/deployment.md historial, la primera versión y la última). primera versión] y la https://github.com/coreos/fleet/blob/master/Documentation/deployment.md (enlace roto disponible en Internet Archive; véase el [//web.archive.org/web/*/https://github.com/coreos/fleet/blob/master/Documentation/deployment.md historial, la primera versión y la última). última]).
- ↑ Installing CoreOS to Disk. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy.
- ↑ Booting CoreOS via PXE. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy.
- ↑ Booting CoreOS via iPXE. «CoreOS documentation». coreos.com. Consultado el 2014-02-13 de mdy.
- ↑ Alex Crawford (2014-09-05 de mdy). «CoreOS Image Now Available On DigitalOcean». coreos.com. Consultado el 2014-09-05 de mdy.
- ↑ 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.
- ↑ Alex Crawford (2014-10-20 de mdy). «CoreOS Now Available On Microsoft Azure». coreos.com. Consultado el 2014-10-22 de mdy.