Container Linux
CoreOS is an open source lightweight Linux-based operating system designed for clustered deployments, focusing on automation, security, reliability, scalability, and ease of applications deployment. As an operating system, CoreOS provides only the minimal functionality required for deploying applications inside software containers, together with built-in mechanisms for service discovery and configuration sharing. CoreOS is a fork of Chrome OS, using it as a base while adding new functionality.[1][2][3]
Overview
CoreOS provides no package manager, requring all applications to run inside their containers, using Docker and its underlying Linux Containers (LXC) operating system-level virtualization technology for running multiple isolated Linux systems (containers) on a single control host (CoreOS instance). That way, resource partitioning is performed through multiple isolated userspace instances, instead of using a hypervisor and providing full-fledged virtual machines. This approach relies on the Linux kernel's cgroups functionality, which provides namespace isolation and abilities to limit, account and isolate resource usage (CPU, memory, disk I/O, etc.) of process groups.[2][3][4]
For additional security and reliability of updates, CoreOS employs a dual-partition scheme for its read-only root filesystem, meaning that the operating system update is performed as a whole and installed onto a passive secondary root partition, which becomes active upon reboot or kexec. That way, easy rollbacks to known-to-be-stable version of the operating system are also ensured, and each boot partition can be signed for additional security. Writable parts of the filesystem are stored in a separate "state" partition, which is automatically resized to fill all available disk space upon reboots. CoreOS uses systemd as its primary init system, with tight integration between it and various CoreOS' internal parts.[2][3][5][6][7]
CoreOS also provides etcd, a daemon which runs across all computers in a cluster, allowing configuration data to be easily shared by providing a dynamic configuration registry. Since the key–value data stored within etcd is automatically distributed and replicated (with automated master election), all changes are reflected across the entire cluster. Beside configuration management, etcd also provides service discovery by allowing deployed applications to announce themselves. Communication with etcd is performed through a simple API, which internally uses JSON on top of HTTP; the API can be used directly through curl (for example), or indirectly through etcdctl which is a command-line utility also supplied by CoreOS.[2][3][8][9]
Deployment
In addition to running on dedicated hardware, where it can be either permanently installed to disk or remotely booted via PXE or iPXE, CoreOS supports deployments on various hardware virtualization platforms, including Amazon EC2, QEMU/KVM, OpenStack, Vagrant and VMware.[3][10][11][12]
See also
References
- ^ Cade Metz (2013-08-21). "Linux Hackers Rebuild Internet From Silicon Valley Garage". wired.com. Retrieved 2014-02-13.
- ^ a b c d Libby Clark (2013-09-09). "Brandon Philips: How the CoreOS Linux Distro Uses Cgroups". linux.com. Retrieved 2014-02-13.
- ^ a b c d e "Using CoreOS". CoreOS documentation. coreos.com. Retrieved 2014-02-13.
- ^ "Using docker with CoreOS". CoreOS documentation. coreos.com. Retrieved 2014-02-13.
- ^ "Updates & Patches - CoreOS". CoreOS documentation. coreos.com. Retrieved 2014-02-13.
- ^ "Adding Disk Space to Your CoreOS Machine". CoreOS documentation. coreos.com. Retrieved 2014-02-13.
- ^ "Using systemd with CoreOS". CoreOS documentation. coreos.com. Retrieved 2014-02-13.
- ^ "Using etcd with CoreOS". CoreOS documentation. coreos.com. Retrieved 2014-02-13.
- ^ "Getting Started with etcd". coreos.com. Retrieved 2014-02-13.
- ^ "Installing CoreOS to Disk". CoreOS documentation. coreos.com. Retrieved 2014-02-13.
- ^ "Booting CoreOS via PXE". CoreOS documentation. coreos.com. Retrieved 2014-02-13.
- ^ "Booting CoreOS via iPXE". CoreOS documentation. coreos.com. Retrieved 2014-02-13.