Recent from talks
Nothing was collected or created yet.
Container Linux
View on Wikipedia
| Container Linux | |
|---|---|
| Developer | CoreOS team, Red Hat |
| OS family | Linux (based on Gentoo Linux) |
| Working state | Discontinued[1] |
| Source model | Open source |
| Initial release | October 3, 2013[2] |
| Latest release | 2512.3.0[3] / May 22, 2020 |
| Latest preview | 2513.2.0[4](Beta) / May 22, 2020 2514.1.0[5](Alpha) / May 22, 2020 |
| Repository | github |
| Marketing target | Servers and clusters |
| Supported platforms | x86-64[6] |
| Kernel type | Monolithic (Linux kernel) |
| License | Apache License 2.0[7][8] |
| Succeeded by | Fedora CoreOS RHEL CoreOS Flatcar Container Linux |
| Official website | fedoraproject |
Container Linux (formerly CoreOS Linux) is a discontinued open-source lightweight operating system based on the Linux kernel and designed for providing infrastructure for clustered deployments. One of its focuses was scalability. As an operating system, Container Linux provided only the minimal functionality required for deploying applications inside software containers, together with built-in mechanisms for service discovery and configuration sharing.[9][10][11][12][13]
Container Linux shares foundations with Gentoo Linux,[14][15] ChromeOS, and ChromiumOS through a common software development kit (SDK). Container Linux adds new functionality and customization to this shared foundation to support server hardware and use cases.[12][16]: 7:02 CoreOS was developed primarily by Alex Polvi, Brandon Philips, and Michael Marineau,[11] with its major features available as a stable release.[17][18][19]
The CoreOS team announced the end-of-life for Container Linux on May 26, 2020,[1] offering Fedora CoreOS,[20] and RHEL CoreOS as its replacement.
Overview
[edit]Container Linux provides no package manager as a way for distributing payload applications, requiring instead all applications to run inside their containers. Serving as a single control host, a Container Linux instance uses the underlying operating-system-level virtualization features of the Linux kernel to create and configure multiple containers that perform as isolated Linux systems. That way, resource partitioning between containers 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 and namespaces functionalities,[21][22] which together provide abilities to limit, account and isolate resource usage (CPU, memory, disk I/O, etc.) for the collections of userspace processes.[10][13][23]
Initially, Container Linux exclusively used Docker as a component providing an additional layer of abstraction and interface[24] to the operating-system-level virtualization features of the Linux kernel, as well as providing a standardized format for containers that allows applications to run in different environments.[10][23] In December 2014, CoreOS released and started to support rkt (initially released as Rocket) as an alternative to Docker, providing through it another standardized format of the application-container images, the related definition of the container runtime environment, and a protocol for discovering and retrieving container images.[25][26][27][28] CoreOS provides rkt as an implementation of the so-called app container (appc) specification that describes the required properties of the application container image (ACI). CoreOS created appc and ACI as an independent committee-steered set of specifications[29][30] aimed to become part of the vendor- and operating-system-independent Open Container Initiative, or OCI, initially named the Open Container Project (OCP) containerization standard,[31] which was announced by a group of large tech companies in June 2015.[32][33][34]
Container Linux uses ebuild scripts from Gentoo Linux for automated compilation of its system components,[14][15] and uses systemd as its primary init system, with tight integration between systemd and various Container Linux's internal mechanisms.[10][35]
Updates distribution
[edit]Container Linux achieves additional security and reliability of its operating system updates by employing FastPatch as a dual-partition scheme for the read-only part of its installation, meaning that the updates are performed as a whole and installed onto a passive secondary boot partition that becomes active upon a reboot or kexec. This approach avoids possible issues arising from updating only certain parts of the operating system, ensures easy rollbacks to a known-to-be-stable version of the operating system, and allows each boot partition to be signed for additional security.[10][13][36] The root partition and its root file system are automatically resized to fill all available disk-space upon reboots; while the root partition provides read-write storage space, the operating system itself is mounted read-only under /usr.[37][38][39]
To ensure that only a certain part of the cluster reboots at once when the operating system updates are applied, preserving the resources required for running deployed applications, CoreOS provides locksmith as a reboot manager for Container Linux.[40] Using locksmith, one can select between different update strategies that are determined by how the reboots are performed as the last step in applying updates; for example, one can configure how many cluster members are allowed to reboot simultaneously. Internally, locksmith operates as the locksmithd daemon that runs on cluster members, while the locksmithctl command-line utility manages configuration parameters.[41][42] Locksmith is written in the Go language and distributed under the terms of the Apache License 2.0.[43]
The updates distribution system employed by Container Linux is based on Google's open-source Omaha project, which provides a mechanism for rolling out updates and the underlying request–response protocol based on XML.[6][44][45] Additionally, CoreOS provides CoreUpdate as a web-based dashboard for the management of cluster-wide updates. Operations available through CoreUpdate include assigning cluster members to different groups that share customized update policies, reviewing cluster-wide breakdowns of Container Linux versions, stopping and restarting updates, and reviewing recorded update logs. CoreUpdate also provides an HTTP-based API that allows its integration into third-party utilities or deployment systems.[36][46][47]
Cluster infrastructure
[edit]
Container Linux provides etcd, a daemon that runs across all computers in a cluster and provides a dynamic configuration registry, allowing various configuration data to be easily and reliably shared between the cluster members.[6][37] Since the key–value data stored within etcd is automatically distributed and replicated with automated master election and consensus establishment using the Raft algorithm, all changes in stored data are reflected across the entire cluster, while the achieved redundancy prevents failures of single cluster members from causing data loss.[28][49] Beside the configuration management, etcd also provides service discovery by allowing deployed applications to announce themselves and the services they offer. Communication with etcd is performed through an exposed REST-based API, which internally uses JSON on top of HTTP; the API may be used directly (through curl or wget, for example), or indirectly through etcdctl, which is a specialized command-line utility also supplied by CoreOS.[10][13][50][51][52] etcd is also used in Kubernetes software.
Container Linux also provides the fleet cluster manager, which controls Container Linux's separate systemd instances at the cluster level. As of 2017, "fleet" is no longer actively developed and is deprecated in favor of Kubernetes.[53] By using fleetd, Container Linux creates a distributed init system that ties together separate systemd instances and a cluster-wide etcd deployment;[49] internally, fleetd daemon communicates with local systemd instances over D-Bus, and with the etcd deployment through its exposed API. Using fleetd allows the deployment of single or multiple containers cluster-wide, with more advanced options including redundancy, failover, deployment to specific cluster members, dependencies between containers, and grouped deployment of containers. A command-line utility called fleetctl is used to configure and monitor this distributed init system;[54] internally, it communicates with the fleetd daemon using a JSON-based API on top of HTTP, which may also be used directly. When used locally on a cluster member, fleetctl communicates with the local fleetd instance over a Unix domain socket; when used from an external host, SSH tunneling is used with authentication provided through public SSH keys.[55][56][57][58][59]
All of the above-mentioned daemons and command-line utilities (etcd, etcdctl, fleetd and fleetctl) are written in the Go language and distributed under the terms of the Apache License 2.0.[8][60]
Deployment
[edit]When running on dedicated hardware, Container Linux can be either permanently installed on local storage, such as a hard disk drive (HDD) or solid-state drive (SSD),[61] or booted remotely over a network using Preboot Execution Environment (PXE) in general, or iPXE as one of its implementations.[62][63] CoreOS also supports deployments on various hardware virtualization platforms, including Amazon EC2, DigitalOcean, Google Compute Engine, Microsoft Azure, OpenStack, QEMU/KVM, Vagrant and VMware.[13][64][65][66] Container Linux may also be installed on Citrix XenServer, noting that a "template" for CoreOS exists.
Container Linux can also be deployed through its commercial distribution called Tectonic, which additionally integrates Google's Kubernetes as a cluster management utility. As of April 2015[update], Tectonic is planned to be offered as beta software to select customers.[29][67][68] Furthermore, CoreOS provides Flannel as a component, implementing an overlay network required primarily for the integration with Kubernetes.[29][69][70]
As of February 2015[update], Container Linux supports only the x86-64 architecture.[6]
Derivatives
[edit]Following its acquisition of CoreOS, Inc.[71] in January 2018, Red Hat announced[72] that it would be merging CoreOS Container Linux with Red Hat's Project Atomic to create a new operating system, Red Hat CoreOS, while aligning the upstream Fedora Project open source community around Fedora CoreOS, combining technologies from both predecessors.
On March 6, 2018, Kinvolk GmbH announced Flatcar Container Linux, a derivative of CoreOS Container Linux.[73] Flatcar tracks the upstream CoreOS alpha, beta, and stable channel releases, with an experimental Edge release channel added in May 2019.[74]
Reception
[edit]LWN.net reviewed CoreOS in 2014:[75]
For those who are putting together large, distributed systems—web applications being a prime example—CoreOS would appear to have a lot of interesting functionality. It should allow applications of that type to grow and shrink as needed with demand, as well as provide a stable platform where upgrades are not a constant headache. For "massive server deployments", CoreOS, or something with many of the same characteristics, looks like the future.
See also
[edit]- Application virtualization – software technology that encapsulates application software from the operating system on which it is executed
- Comparison of application virtualization software – various portable and scripting language virtual machines
- Comparison of platform virtualization software – various emulators and hypervisors, which emulate the whole physical computers
- LXC (Linux Containers) – an environment for running multiple isolated Linux systems (containers) on a single Linux control host
- Operating-system-level virtualization implementations – based on operating system kernel's support for multiple isolated userspace instances
- Software as a service (SaaS) – a software licensing and delivery model that hosts the software centrally and licenses it on a subscription basis
- Virtualization – a general concept of providing virtual versions of computer hardware platforms, operating systems, storage devices, etc.
References
[edit]- ^ a b "End-of-life announcement for CoreOS Container Linux". coreos.com. Retrieved August 16, 2020.
- ^ "coreos/manifest: Release v94.0.0 (Container Linux v94.0.0)". github.com. October 3, 2013. Retrieved September 22, 2014.
- ^ "CoreOS Container Linux Release Notes # Stable channel". coreos.com. May 22, 2020. Archived from the original on November 11, 2020. Retrieved May 22, 2020.
- ^ "CoreOS Container Linux Release Notes # Beta channel". coreos.com. May 22, 2020. Archived from the original on November 11, 2020. Retrieved May 22, 2020.
- ^ "CoreOS Container Linux Release Notes # Alpha channel". coreos.com. May 22, 2020. Archived from the original on November 11, 2020. Retrieved May 22, 2020.
- ^ a b c d Timothy Prickett Morgan (February 15, 2015). "CoreOS Hyperscales Linux By Making It Invisible". nextplatform.com. Retrieved June 14, 2015.
- ^ "CoreOS Pilot Agreement". coreos.com. March 13, 2014. Archived from the original on September 12, 2014. Retrieved March 26, 2014.
- ^ a b "coreos/etcd: etcd/LICENSE at master". github.com. July 31, 2013. Retrieved March 26, 2014.
- ^ "CoreOS Linux is now Container Linux". coreos.com. Retrieved December 20, 2016.
- ^ a b c d e f Libby Clark (September 9, 2013). "Brandon Philips: How the CoreOS Linux Distro Uses Cgroups". Linux.com. Archived from the original on February 22, 2014. Retrieved February 13, 2014.
- ^ a b Cade Metz (August 21, 2013). "Linux Hackers Rebuild Internet From Silicon Valley Garage". Wired. Retrieved February 13, 2014.
- ^ a b "CoreOS – a new approach to Linux-based server systems". itnews2day.com. August 22, 2013. Archived from the original on November 29, 2014. Retrieved March 26, 2014.
- ^ a b c d e "CoreOS documentation: Using CoreOS". coreos.com. Archived from the original on February 23, 2014. Retrieved February 13, 2014.
- ^ a b "Building development images: Updating portage-stable ebuilds from Gentoo". coreos.com. Archived from the original on July 14, 2017. Retrieved May 24, 2016.
- ^ a b "Distributions based on Gentoo". gentoo.org. March 25, 2016. Retrieved May 24, 2016.
- ^ Brian Harrington (July 8, 2014). "CoreOS: Anatomy of a CoreOS update". youtube.com. Rackspace. Retrieved July 25, 2014.
- ^ Alex Polvi (July 25, 2014). "CoreOS Stable Release". coreos.com. Retrieved August 28, 2014.
- ^ "CoreOS Release Notes". coreos.com. Archived from the original on November 11, 2020. Retrieved August 28, 2014.
- ^ Brandon Philips (January 28, 2015). "etcd 2.0 Release – First Major Stable Release". coreos.com. Retrieved June 14, 2015.
- ^ "Fedora CoreOS Documentation :: Fedora Docs Site". docs.fedoraproject.org. Retrieved August 16, 2020.
- ^ Jonathan Corbet (October 29, 2007). "Notes from a container". LWN.net. Retrieved July 3, 2016.
- ^ Jake Edge (November 19, 2014). "Control group namespaces". LWN.net. Retrieved July 3, 2016.
- ^ a b "CoreOS documentation: Using Docker with CoreOS". coreos.com. Archived from the original on August 4, 2016. Retrieved June 14, 2015.
- ^ "Docker 0.9: Introducing execution drivers and libcontainer". docker.com. March 10, 2014. Retrieved January 20, 2015.
- ^ Libby Clark (January 30, 2015). "CoreOS Co-Founder Alex Polvi Talks Containers, Rocket vs. Docker, and More". Linux.com. Retrieved June 14, 2015.
- ^ Charles Babcock (February 20, 2015). "Rocket Containers: How CoreOS Plans To Challenge Docker". informationweek.com. Retrieved June 14, 2015.
- ^ Alex Polvi (December 1, 2014). "CoreOS is building a container runtime, rkt". coreos.com. Retrieved June 14, 2015.
- ^ a b Josh Berkus (February 4, 2015). "New etcd, appc, and Rocket releases from CoreOS". LWN.net. Retrieved June 22, 2015.
- ^ a b c Josh Berkus (May 13, 2015). "CoreOS Fest and the world of containers, part 1". LWN.net. Retrieved June 22, 2015.
- ^ Nathan Willis (December 3, 2014). "The Rocket containerization system". LWN.net. Retrieved June 22, 2015.
- ^
McAllister, Neil (June 22, 2015). "Docker and chums unveil standards org for software containers". Data Centre. The Register. Retrieved January 19, 2017.
Announced at the DockerCon conference in San Francisco on Monday, the Open Container Project (OCP) will maintain and develop a common container runtime and image format based in part on code and specs donated by Docker.
- ^ Frederic Lardinois (June 22, 2015). "Docker, CoreOS, Google, Microsoft, Amazon and others come together to develop common container standard". TechCrunch. Retrieved June 24, 2015.
- ^ "Industry Leaders Unite to Create Project for Open Container Standards". opencontainers.org. June 22, 2015. Archived from the original on August 13, 2015. Retrieved June 24, 2015.
- ^ Neil McAllister (July 22, 2015). "Open Container Project renames, says standard is just weeks away: Linux Foundation, Docker and friends opt for Open Container Initiative". The Register. Retrieved January 29, 2016.
- ^ "CoreOS documentation: Using systemd with CoreOS". coreos.com. Archived from the original on February 14, 2014. Retrieved February 13, 2014.
- ^ a b "CoreOS documentation: Updates & patches". coreos.com. Archived from the original on February 14, 2014. Retrieved February 27, 2015.
- ^ a b Phil Whelan (August 28, 2013). "Alex Polvi Explains CoreOS". activestate.com. Archived from the original on February 24, 2015. Retrieved May 7, 2015.
- ^ "CoreOS documentation: Adding disk space to your CoreOS machine". coreos.com. Retrieved February 27, 2015.
- ^ Alex Polvi (March 27, 2014). "Major Update: btrfs, Docker 0.9, add users, writable /etc, and more!". coreos.com. Retrieved February 27, 2015.
- ^ "Simple Introduction to CoreOS with CEO Alex Polvi and CTO Brandon Philips". centurylinklabs.com. June 6, 2014. Archived from the original on June 22, 2015. Retrieved June 22, 2015.
- ^ "CoreOS documentation: Update strategies". coreos.com. Retrieved April 17, 2015.
- ^ "coreos/locksmith: locksmith/README.md at master". github.com. February 1, 2015. Retrieved April 17, 2015.
- ^ "coreos/locksmith: locksmith/LICENSE at master". github.com. January 19, 2014. Retrieved April 17, 2015.
- ^ "Omaha – software installer and auto-updater for Windows". code.google.com. Retrieved October 11, 2014.
- ^ "Omaha Overview". omaha.googlecode.com. September 23, 2009. Archived from the original on May 6, 2009. Retrieved October 11, 2014.
- ^ "Package omaha". godoc.org. June 24, 2014. Retrieved July 4, 2014.
- ^ "CoreOS documentation: CoreUpdate". coreos.com. Retrieved July 4, 2014.
- ^ Mark Moudy (May 16, 2014). "CoreOS + Docker Development Environment Demo". github.com. Retrieved April 16, 2015.
- ^ a b Jonathan Corbet (October 22, 2014). "Etcd and fleet". LWN.net. Retrieved June 22, 2015.
- ^ "CoreOS documentation: Using etcd with CoreOS". coreos.com. Retrieved February 13, 2014.
- ^ "CoreOS documentation: Getting started with etcd". coreos.com. Retrieved February 13, 2014.
- ^ Brandon Philips (January 15, 2014). "etcd @ GoSF". speakerdeck.com. Retrieved February 13, 2014.
- ^ Wood, Josh. "Container orchestration: Moving from fleet to Kubernetes". coreos..com. CoreOS.
- ^ Justin Ellingwood (September 12, 2014). "How To Use Fleet and Fleetctl to Manage your CoreOS Cluster". digitalocean.com. Retrieved June 22, 2015.
- ^ "CoreOS documentation: Launching containers with fleet". coreos.com. Retrieved April 3, 2014.
- ^ "CoreOS documentation: Using the client". coreos.com. Retrieved April 3, 2014.
- ^ "coreos/fleet: fleet/README.md at master". github.com. February 18, 2014. Retrieved April 3, 2014.
- ^ "coreos/fleet: fleet/Documentation/deployment-and-configuration.md at master (Deploying fleet)". github.com. April 14, 2015. Retrieved April 17, 2015.
- ^ "coreos/fleet: fleet/Documentation/api-v1.md (fleet API v1)". github.com. October 29, 2014. Retrieved April 17, 2015.
- ^ "coreos/fleet: fleet/LICENSE at master". github.com. February 6, 2014. Retrieved April 3, 2014.
- ^ "CoreOS documentation: Installing CoreOS to disk". coreos.com. Retrieved February 13, 2014.
- ^ "CoreOS documentation: Booting CoreOS via PXE". coreos.com. Retrieved February 13, 2014.
- ^ "CoreOS documentation: Booting CoreOS via iPXE". coreos.com. Retrieved February 13, 2014.
- ^ Alex Crawford (September 5, 2014). "CoreOS Image Now Available On DigitalOcean". coreos.com. Retrieved September 5, 2014.
- ^ Jack Clark (May 23, 2014). "Google brings futuristic Linux software CoreOS onto its cloud". The Register. Retrieved May 26, 2014.
- ^ Alex Crawford (October 20, 2014). "CoreOS Now Available On Microsoft Azure". coreos.com. Retrieved October 22, 2014.
- ^ Steven J. Vaughan-Nichols (April 6, 2015). "CoreOS is bringing Google's Kubernetes to the enterprise". ZDNet. Retrieved April 29, 2015.
- ^ Ben Kepes (April 6, 2015). "CoreOS And Google Make Their Defensive Plays, Is Docker The Victim?". Forbes. Retrieved April 29, 2015.
- ^ Eugene Yakubovich (August 28, 2014). "Introducing flannel: An etcd-backed overlay network for containers". coreos.com. Retrieved June 22, 2015.
- ^ "Tutorial on using CoreOS Flannel for Docker". slideshare.net. November 2014. Retrieved June 22, 2015.
- ^ Rosoff, Matt (January 30, 2018). "Red Hat pays $250 million for CoreOS, a start-up that sells Google-developed technology". CNBC. Retrieved June 6, 2019.
- ^ "Fedora CoreOS, Red Hat CoreOS, and the future of Container Linux | CoreOS". coreos.com. Retrieved June 6, 2019.
- ^ "Announcing the Flatcar Linux project | Kinvolk". kinvolk.io. March 6, 2018. Retrieved June 6, 2019.
- ^ "Introducing the Flatcar Linux Edge Channel | Kinvolk". kinvolk.io. May 15, 2019. Retrieved June 6, 2019.
- ^ CoreOS: A different kind of Linux distribution [LWN.net]
External links
[edit]- Official website
and GitHub source code repositories: CoreOS , etcd , fleet , rkt and CoreOS-overlay - CoreOS at DistroWatch
- First glimpse at CoreOS, September 3, 2013, by Sébastien Han
- CoreOS: Linux for the cloud and the datacenter, ZDNet, July 2, 2014, by Steven J. Vaughan-Nichols
- What's CoreOS? An existential threat to Linux vendors, InfoWorld, October 9, 2014, by Matt Asay
- Understanding CoreOS distributed architecture, March 4, 2015, a talk to Alex Polvi by Aaron Delp and Brian Gracely
- CoreOS fleet architecture, August 26, 2014, by Brian Waldon et al.
- Running CoreOS on Google Compute Engine, May 23, 2014
- CoreOS moves from Btrfs to Ext4 + OverlayFS, Phoronix, January 18, 2015, by Michael Larabel
- Containers and persistent data, LWN.net, May 28, 2015, by Josh Berkus
- Flatcar Container Linux
Container Linux
View on GrokipediaHistory
Origins and development
CoreOS, Inc. was founded in 2013 by Alex Polvi, Brandon Philips, and Michael Marineau with the goal of enhancing the security and reliability of internet infrastructure through innovative open-source software.[1] The company released the first alpha version of CoreOS Linux in July 2013, marking the debut of a lightweight, container-optimized operating system designed for clustered environments. This initial release emphasized minimalism, stripping away traditional package managers in favor of container-based application deployment to reduce complexity and attack surfaces. From its inception, CoreOS Linux introduced key innovations such as atomic updates, which replace the entire operating system image in a single operation for reliable upgrades and easy rollbacks, and immutable infrastructure principles, treating the root filesystem as read-only post-boot to prevent drift and bolster security.[7] The system integrated natively with Docker for containerization starting in its early versions, enabling seamless application isolation and portability.[8] In parallel, CoreOS developed essential clustering tools, including etcd—a distributed key-value store first announced in June 2013 for consistent data coordination across nodes—and fleet, a service orchestration layer that leveraged etcd and systemd to manage containerized workloads dynamically.[9] Later, in December 2014, CoreOS introduced rkt (initially Rocket), its own secure container runtime, as an alternative to Docker to address evolving standards in container isolation. Key milestones included the first stable release in July 2014 (version 367.1.0), which brought production readiness with refined update mechanisms and broader testing across alpha, beta, and stable channels introduced early in development.[10] By 2015, CoreOS Linux had expanded support for major cloud providers, including Amazon Web Services (AWS), Google Cloud Platform, and Microsoft Azure, facilitating easier deployment in hybrid and public cloud environments.[11] In December 2016, the operating system was renamed Container Linux to underscore its emphasis on container orchestration and to distinguish it from the CoreOS company name amid growing ecosystem adoption.[5]Acquisition and discontinuation
On January 30, 2018, Red Hat announced its acquisition of CoreOS, Inc., for approximately $250 million, with the goal of bolstering its Kubernetes and container technologies, particularly to advance the OpenShift platform.[3][12] The deal, which closed shortly thereafter, integrated CoreOS's expertise into Red Hat's ecosystem, allowing continued maintenance of Container Linux but shifting primary development efforts toward Red Hat's enterprise-focused solutions like Red Hat CoreOS for OpenShift environments.[3][1] Following the acquisition, Container Linux entered a phase of limited support, with new feature development deprioritized in favor of Red Hat's integrated offerings. On February 4, 2020, Red Hat issued an official end-of-life announcement, stating that Container Linux would cease receiving updates after May 26, 2020.[13] The final stable release, version 2512.3.0, was issued on May 26, 2020,[14] after which no further security patches or maintenance would be provided.[15] In response to the discontinuation, Red Hat provided migration guidance, recommending transitions to Fedora CoreOS for general users or Red Hat CoreOS for those running OpenShift, emphasizing the need to reprovision systems rather than in-place upgrades.[1][2] The community impact was notable, as the acquisition in 2018 had already prompted the emergence of independent forks; for instance, Kinvolk GmbH launched Flatcar Container Linux on March 6, 2018, as a compatible, community-driven alternative amid uncertainties surrounding the corporate shift.[16]Design and architecture
Core principles
Container Linux embodied an immutable operating system model, where the root filesystem was designed as read-only to eliminate configuration drift and bolster security by ensuring that the base system remained unaltered during operation. All modifications, including user data and application states, were managed through ephemeral overlays or container layers, promoting reproducibility and reducing the risk of persistent vulnerabilities from manual interventions. This approach aligned with broader immutable infrastructure practices, treating the OS as a stable foundation for dynamic workloads rather than a mutable environment subject to incremental changes.[17] At its core, Container Linux adopted a minimalist base derived from Gentoo Linux, incorporating a stripped-down kernel and only essential packages necessary for booting and hosting containers, thereby minimizing resource usage and the attack surface. Notably, it excluded a traditional package manager for user-level installations, enforcing that all software be delivered and managed exclusively via containers to prevent unauthorized or unverified additions to the host system. This design philosophy prioritized simplicity and consistency, enabling efficient scaling in clustered environments without the overhead of general-purpose desktop or server utilities.[18][17] Security was a foundational principle, integrated through mechanisms such as cryptographically signed automatic updates to verify integrity before application. These features collectively reduced exposure to exploits by confining operations to verified, isolated boundaries and ensuring rapid deployment of patches without human error.[17] The container-centric design positioned Container Linux as an optimized host for OCI-compliant containers, initially leveraging Docker for runtime management before transitioning to rkt and later containerd to support standardized, secure pod-native executions. This focus transformed the OS into a lightweight platform dedicated to orchestrated workloads, where the host served solely as an enabler for distributed applications rather than running traditional services directly. Embracing the "cattle not pets" philosophy, it encouraged treating servers as disposable, interchangeable units in large-scale clusters, contrasting with conventional stateful management and facilitating automated provisioning and replacement for resilience.[19][17][20]Key components and technologies
Container Linux's update mechanism relies on the update_engine daemon, which facilitates atomic system updates through an A/B partitioning scheme. This approach divides the root filesystem into two partitions, allowing updates to install on the inactive partition before a reboot switches to it, ensuring the system remains bootable even if an update fails.[21] Rollback is automatic if the new partition does not boot successfully within a timeout period, reverting to the previous stable version.[21] The engine supports phased rollouts via release channels—alpha for cutting-edge features, beta for testing, and stable for production—enabling administrators to select update streams based on risk tolerance. The clustering stack in Container Linux centers on etcd, a distributed key-value store that provides service discovery, configuration storage, and synchronization across cluster nodes. Etcd versions 2 and 3 were integrated natively, with etcd v3 offering improved performance and consistency models for larger clusters.[22] It operates as a systemd service, bootstrapped via Ignition configurations that define initial member discovery using tokens or static URLs.[22] Fleet, an early orchestration tool, extended systemd to manage unit files cluster-wide by leveraging etcd for state storage and scheduling, supporting patterns like global or machine-of deployments.[23] However, fleet was deprecated in late 2016 and fully unmaintained by 2018, with CoreOS recommending migration to Kubernetes for advanced orchestration needs.[23] Container Linux provided native support for multiple runtimes to host workloads, emphasizing lightweight and secure execution. Rkt, CoreOS's pod-native runtime, was the default, designed for standards compliance (OCI and appc) and secure isolation without a central daemon.[24] It was deprecated in 2019 as the project ended development, reflecting a shift toward OCI-compatible alternatives.[24] Docker was supported initially for broader compatibility but phased out in favor of containerd, a daemonless runtime donated to CNCF, which became the recommended option by the end of Container Linux's lifecycle in 2020.[1] System services in Container Linux are managed by systemd, which handles process supervision, dependency resolution, and resource limits for all components. Custom systemd units enable networking overlays like Flannel, an etcd-backed tool that assigns subnets to nodes and encapsulates traffic via VXLAN for pod-to-pod communication across the cluster.[25] Tectonic, CoreOS's Kubernetes distribution, integrated additional units for advanced networking, such as Calico or Canal plugins, to support enterprise-scale deployments.[26] For storage, systemd units configure loop devices to back overlay filesystems, allowing container images and volumes to use devicemapper-thin or overlayfs drivers on limited block storage without direct disk access.[27] The boot process in Container Linux uses a unified Linux kernel paired with a Dracut-generated initramfs for minimal early-user-space operations. Dracut assembles the initramfs to include essential modules, mounting the read-only root filesystem from the active A/B partition.[28] Ignition, executed within the initramfs on first boot, declaratively applies user configurations—such as systemd units, files, and network settings—from a provided JSON spec, fetched via HTTP or embedded metadata.[29] This ensures reproducible provisioning without manual intervention, transitioning seamlessly to the full systemd user space for ongoing operations.[29]Deployment and management
Installation methods
Container Linux offered several installation methods tailored to cloud, on-premises, bare-metal, and virtualized environments during its lifecycle from its initial release in 2013 until end-of-life in 2020. These approaches emphasized minimal intervention, leveraging pre-built images and declarative configuration via Ignition for initial setup.Cloud Deployments
For cloud environments, Container Linux provided pre-built images optimized for major providers. On Amazon Web Services (AWS), users could launch instances directly from Amazon Machine Images (AMIs) available in the AWS Marketplace, enabling seamless integration with auto-scaling groups for elastic cluster scaling.[30] Similarly, Google Compute Engine (GCE) supported official images for quick provisioning of virtual machines, with compatibility for managed instance groups to automate scaling.[31] In Microsoft Azure, Container Linux images were offered through the Azure Marketplace, allowing deployment via virtual machine scale sets for high availability.[32] These cloud images included embedded Ignition support for customizing instances on first boot, such as setting up SSH access and etcd clustering.On-Premises and Bare-Metal Installations
Bare-metal installations relied on network booting or direct media for hardware provisioning. Network-based setups used Preboot Execution Environment (PXE) with iPXE for stateless or stateful boots over the LAN, where servers fetched kernel and initramfs from a TFTP server and applied Ignition configs to install to disk.[33] For direct hardware deployment, users downloaded ISO images to create bootable USB drives, booting into a live environment to run thecoreos-install command for partitioning and installation to local storage.[34] This method was ideal for standalone servers or small clusters without dedicated PXE infrastructure.
Virtualized Environments
In virtualization platforms, Container Linux supported importable images for rapid setup. VMware environments utilized OVA templates, which could be deployed to vSphere or ESXi hosts via the vSphere Client, preserving network and storage configurations during import.[35] KVM/QEMU users booted from ISO images or converted qcow2 disk images for persistent VMs, often scripted with libvirt for automation. VirtualBox also accepted OVA files for easy appliance import, facilitating local testing of container workloads. These virtual images mirrored bare-metal behaviors, with Ignition handling OS customization upon launch.Provisioning Tools Integration
Container Linux integrated with infrastructure-as-code tools for scalable deployments. Terraform modules supported provisioning across clouds and virtualization, generating Ignition configs and launching instances declaratively— for example, defining AWS EC2 resources or VMware VMs with version-specific images.[36] For bare-metal PXE provisioning, Matchbox served as a gRPC/HTTP service to match hardware identifiers (like MAC addresses) to Ignition profiles, enabling automated cluster bootstrapping without manual intervention.[37]Version Selection and Downloads
Releases were categorized into channels—stable for production, beta for testing, and alpha for previews—with specific versions like stable-1234.0.0 downloadable as ISO, qcow2, or raw images. Users selected channels during installation (e.g., viacoreos-install -c [stable](/page/Stable)) and fetched files from official mirrors such as stable.release.core-os.net/amd64-usr, ensuring reproducible deployments. Post-Red Hat acquisition in 2018, these mirrors continued hosting images until the 2020 discontinuation. Ignition files provided post-install configuration, such as user setup and service enabling, applied atomically on first boot.
Configuration and updates
Container Linux employs a declarative configuration approach through the Ignition tool, which applies a JSON-based specification during the initial system boot to provision essential system elements. Ignition manipulates the disk at the initramfs stage, enabling the creation of users, network configurations, systemd services, and files without requiring SSH access or manual intervention post-installation. This process ensures that machines boot into a fully configured state, supporting automated provisioning in cloud or cluster environments.[38] The operating system's update mechanism is managed via channels that cater to different development and production needs, including alpha for bleeding-edge features, beta for testing stability, and stable for production deployments. Updates are delivered server-side using the Omaha protocol, an open-source framework originally developed by Google for secure over-the-air updates. This system implements A/B partitioning, where new images are applied to an inactive partition before activation on reboot, with strategies such as immediate reboot or etcd-coordinated locking to minimize downtime.[2][39] In the event of a boot failure after an update, Container Linux automatically rolls back to the previous working partition to restore system functionality, preventing prolonged outages. Monitoring of the update process integrates with Prometheus, allowing collection of metrics on update status, health checks, and reboot events through exposed endpoints from services like update_engine. For cluster environments, customization is facilitated by Locksmithd, a daemon that coordinates updates across multiple nodes using etcd for distributed locking, enabling staggered rollouts to maintain high availability. Administrators can configure Locksmithd to limit concurrent reboots, such as allowing only a fraction of the cluster to update at once, via settings in /etc/coreos/update.conf. This ensures that critical services remain operational during maintenance windows.[40] Security is embedded in the update process, with all payloads cryptographically signed using SHA-256 hashes to verify integrity and authenticity before application. The immutable design precludes manual package installations via tools like yum or apt, preserving the system's declarative and atomic nature while delivering only verified security patches through the channel-based updates.[39]Successors and derivatives
Flatcar Container Linux
Flatcar Container Linux emerged as a community-driven fork of Container Linux, initiated by Kinvolk GmbH in March 2018 to serve as a drop-in replacement amid uncertainties following Red Hat's acquisition of CoreOS. Announced on March 6, 2018, the project aimed to ensure continuity for users by providing an independently built and supported distribution compatible with existing Container Linux setups. The first public release occurred on April 30, 2018, marking the beginning of its evolution as a stable, commercially viable alternative. Kinvolk, acquired by Microsoft in April 2021, continues to steward the project, emphasizing open-source principles while offering enterprise-grade enhancements.[16][41][42] Key enhancements in Flatcar Container Linux include ongoing support for containerd as the primary container runtime alongside runc for low-level container execution, aligning with modern container ecosystem standards. It integrates seamlessly with Kubernetes through Cluster API, enabling declarative provisioning and management of clusters across diverse environments. Configuration is streamlined via Butane, a YAML-based tool that transpiles to Ignition-compatible formats, facilitating human-readable authoring while maintaining compatibility with legacy setups. These features build on the immutable, read-only root filesystem inherited from Container Linux, ensuring secure and atomic updates without compromising system integrity.[43][44][45] The release model follows 12-month long-term support (LTS) cycles, with a 6-month grace period for upgrades, providing predictability for production deployments; each LTS stream receives security updates for up to 18 months, overlapping to minimize disruption. By 2020, Flatcar had issued nearly 200 releases across alpha, beta, and stable channels, reflecting rapid iteration and community feedback. As of 2025, development remains active, bolstered by its acceptance into the CNCF Incubator on October 29, 2024, which formalizes its role in the cloud-native landscape. Commercial editions, launched in November 2020, introduce paid support tiers and platform-specific optimizations, such as kernel tuning for edge computing and support for AI workloads on cloud providers like AWS and Azure.[46][47][45] Governed as an open-source project under the Apache 2.0 license, Flatcar benefits from contributions by Microsoft, AWS, and a global community, fostering collaborative improvements in security and scalability. Migration from Container Linux is supported through dedicated tools, including config transpilers that convert legacy YAML files to Butane formats, easing transitions for existing deployments. This governance model ensures sustained innovation, with ongoing releases addressing emerging needs in container orchestration and infrastructure management.[48][49]Other derivatives
Fedora CoreOS serves as the official Red Hat successor to Container Linux, announced in July 2019 and reaching stable release in 2020.[50][1] It integrates Toolbox for containerized development environments, Podman as the primary container engine, and rpm-ostree for atomic, layered system updates that maintain immutability while allowing selective package overlays.[51][52] Red Hat CoreOS (RHCOS), introduced in 2019, functions as a core component of OpenShift Container Platform 4 and later versions, specifically optimized for running Kubernetes operators in enterprise environments.[53] Its immutable design leverages OSTree for image-based deployments with built-in rollback capabilities via rpm-ostree, ensuring reliable updates across cluster nodes without disrupting workloads.[53] Talos Linux, initially developed by Talos Systems (which rebranded to Sidero Labs in 2021) and first released in late 2019, draws inspiration from Container Linux's minimalism to create a Kubernetes-exclusive operating system emphasizing security through elimination of traditional access points.[54] It forgoes SSH access and package managers entirely, relying instead on API-driven management for declarative configuration and automated upgrades, which reduces the attack surface for bare-metal or cloud-based Kubernetes clusters.[54] Among other notable forks, Bottlerocket—released by AWS in 2020—targets serverless container hosting with a stripped-down Linux distribution that prioritizes isolation and quick updates, building on principles of minimal container-optimized systems like Container Linux.[55] Remnants of Project Atomic, an earlier Red Hat initiative for atomic container hosts, influenced the evolution toward Container Linux but saw its direct product, Red Hat Enterprise Linux (RHEL) Atomic Host, deprecated in August 2020.[56][57] These derivatives exhibit key differences in container runtime support and deployment scopes: for instance, Fedora CoreOS natively includes CRI-O alongside Podman for flexible Kubernetes integration, suiting broad cloud and on-premises use, while Talos Linux enforces a Kubernetes-only model with containerd for edge and data center deployments, and Bottlerocket emphasizes containerd for AWS-centric serverless scenarios.[58][59] Red Hat CoreOS, by contrast, standardizes on CRI-O within OpenShift ecosystems for operator-heavy, enterprise-scale operations.[53] All share a heritage in clustering tools like etcd for distributed coordination.[60]Reception and legacy
Adoption and impact
Container Linux achieved significant adoption during its active years, particularly among early adopters of container orchestration technologies. It powered CoreOS's Tectonic, the first commercial distribution of Kubernetes, which enabled large-scale deployments in enterprise environments, including on-premises and hybrid cloud setups.[61] Companies involved in the Cloud Native Computing Foundation (CNCF) contributed to and benefited from the broader container ecosystem, including CoreOS technologies.[62] Early Kubernetes users leveraged Container Linux for its lightweight design suited to clustered, containerized workloads. The operating system made key contributions to industry standards in container orchestration. Developed by the CoreOS team, etcd emerged as the de facto key-value store for Kubernetes state management, providing consistent, highly available storage for cluster data and configuration.[63] Container Linux also influenced the Open Container Initiative (OCI) runtime specifications through CoreOS's involvement in standardizing container formats and runtimes, resolving early disputes and promoting portability across implementations.[64] Its immutable infrastructure model, where the OS root filesystem remains read-only and updates occur via atomic replacements, became a foundational pattern in cloud-native computing, emphasizing security and reliability in distributed systems.[65] Market metrics underscored its impact prior to discontinuation. By 2020, CNCF surveys reported that 92% of respondents used containers in production, a 300% increase from 2016.[66] Container Linux contributed to the growth of containerized deployments and inspired platforms like OpenShift. Its immutable design influenced practices such as declarative infrastructure management for reproducible deployments. Following its end-of-life in 2020, Container Linux's legacy persists through archived releases and community-maintained derivatives, providing ongoing support for existing installations. Flatcar Container Linux, a key derivative, remains actively maintained with releases as of November 2025.[67] Its emphasis on immutable, container-optimized designs continues to shape 2025 trends, such as edge AI container deployments, where lightweight OSes enable efficient, secure inference at the network edge.[68]Criticisms and discontinuation effects
Container Linux faced several criticisms during its lifecycle, primarily related to its heavy reliance on the rkt container runtime, which suffered from security vulnerabilities and limited adoption. In 2019, researchers identified three unpatched CVEs in rkt (CVE-2019-1010007, CVE-2019-1010008, and CVE-2019-1010009) that allowed container escapes to gain root access on the host system when using therkt enter command.[69] These flaws highlighted ongoing security concerns with rkt's implementation, contributing to its eventual deprecation. Additionally, rkt's slow integration with Kubernetes was a significant drawback; initial lack of full support hindered its competitiveness against Docker, leading to low ecosystem adoption and the runtime's abandonment by 2019.[24]
The discontinuation of Container Linux was announced by Red Hat in February 2020, following its 2018 acquisition of CoreOS, with the final update released on May 26, 2020, marking the end of all security patches and maintenance.[1] This decision stemmed from Red Hat's strategic shift toward integrating CoreOS technologies into its enterprise offerings, particularly Red Hat Enterprise Linux CoreOS (RHCOS) for OpenShift and the community-driven Fedora CoreOS as the official successor.[1] Post-acquisition, Red Hat prioritized stability and compatibility within its ecosystem, phasing out Container Linux to avoid fragmented development efforts.[70]
The effects of the discontinuation were substantial for users and the broader container ecosystem. Existing Container Linux instances continued to function but became vulnerable to unpatched security issues, with Red Hat deleting all OS images, downloads, and cloud artifacts by September 1, 2020, to discourage prolonged use.[1] This prompted widespread migrations, often to Fedora CoreOS, though the process introduced breaking changes such as the removal of rkt (replaced by Podman and CRI-O), etcd, and Flannel, along with the deprecation of tools like coreos-cloudinit and systemd-networkd in favor of Ignition/Butane configs and NetworkManager.[2] Users encountered challenges including unsupported platforms (e.g., Azure, DigitalOcean, Google Compute Engine, and Vagrant) and potential regressions in workloads due to Fedora CoreOS's best-effort stability model.[2][71]
The EOL also spurred the emergence of community forks to mitigate disruption. Kinvolk, a CoreOS contributor, launched Flatcar Container Linux in 2019 as a drop-in replacement, maintaining the immutable OS model with ongoing updates and commercial support options to address gaps in Red Hat's successors.[72] Overall, while Container Linux's discontinuation accelerated the standardization of container-optimized OSes around Kubernetes-native runtimes, it disrupted deployments reliant on legacy components, forcing reevaluation of infrastructure for many organizations.[73]References
- https://wiki.gentoo.org/wiki/Distributions_based_on_Gentoo
