Jump to content

Container Linux

From Alfawiki
Container Linux
Company typeOpen-source software
IndustryOperating systems, Containerization
PredecessorCoreOS Linux
FounderAlex Polvi, Brandon Philips, Michael Marineau
DefunctMay 26, 2020 (2020-05-26)
FateEnd-of-life; users guided to Fedora CoreOS or RHEL CoreOS
Area served
Clustered environments, enterprise servers
Key people
Alex Polvi, Brandon Philips, Michael Marineau
ProductsContainer Linux OS, Tectonic (commercial edition), Flannel (networking)
OwnerCoreOS, Inc. (acquired by Red Hat)
ParentRed Hat (after acquisition)

Container Linux—previously known as CoreOS Linux—was a discontinued open-source, lightweight operating system built on the Linux kernel. It was engineered to facilitate infrastructure for clustered environments, emphasizing scalability. The OS delivered a minimal base for running applications within software containers and incorporated native features for service discovery and configuration sharing.

Sharing core components with Gentoo Linux, ChromeOS, and ChromiumOS through a unified software development kit (SDK), Container Linux introduced enhancements tailored for server hardware and enterprise requirements. The platform was chiefly developed by Alex Polvi, Brandon Philips, and Michael Marineau, with its key capabilities released in stable versions.

On May 26, 2020, the CoreOS team declared the end-of-life status for Container Linux, guiding users toward adopting Fedora CoreOS or RHEL CoreOS as successors.

Technical Overview

Container Linux did not include a traditional package manager, instead mandating that all software operate within containers. It utilized Linux kernel's capabilities in operating-system-level virtualization to establish multiple isolated containers, partitioning resources by means of userspace instances rather than full-fledged virtual machines. This method employed Linux kernel features such as cgroups and namespaces to enforce resource constraints—including CPU, memory, and disk I/O—across grouped processes.

Originally, Container Linux depended solely on Docker to provide a standardized container abstraction. However, in December 2014, CoreOS launched rkt (initially named Rocket), offering an alternative container runtime with a standardized application-container image format and protocols for image discovery and retrieval. rkt was developed to implement the app container (appc) specification, which defines the structure of the application container image (ACI). These appc and ACI standards were created by CoreOS as independent, committee-driven specifications intended to merge into the vendor- and OS-neutral Open Container Initiative (OCI), formerly known as the Open Container Project (OCP). This initiative, introduced in June 2015 by leading technology firms, aims to establish uniform container runtimes and image formats.

The operating system leveraged Gentoo Linux's ebuild scripts for automating system component compilation and utilized systemd as its main init system, deeply integrated with Container Linux’s internal architecture.

Update Management

To improve the security and dependability of updates, Container Linux implemented FastPatch, a dual-partition strategy featuring a read-only installation. Updates are applied to an inactive secondary boot partition, which becomes active after reboot or via kexec. This design supports comprehensive OS upgrades, straightforward rollbacks to prior stable releases, and signed boot partitions enhancing security. Upon reboot, the root partition automatically resizes to provide read-write storage, while the operating system mounts its root filesystem as read-only under .

To reduce downtime during cluster updates, CoreOS provided locksmith, a reboot coordinator managing how many nodes restart concurrently. Running as a daemon on each cluster node—with handling configuration—locksmith is written in Go under the Apache 2.0 license and allows customizable update strategies to maintain service availability.

The update delivery system is based on Google's open-source Omaha project, which facilitates rolling updates through an XML-based request–response protocol. Additionally, CoreOS offered CoreUpdate, a web interface for managing updates across clusters. CoreUpdate enables grouping nodes by update policies, tracking OS version distributions, controlling update workflows, reviewing logs, and provides an HTTP API for integration with external tools and deployment systems.

Cluster Infrastructure

Container Linux incorporates etcd, a daemon operating on cluster nodes that serves as a dynamic configuration registry, enabling reliable data sharing among cluster participants. This distributed key–value store employs the Raft consensus protocol for replication, guaranteeing data consistency and resilience against node failures. Beyond managing configurations, it facilitates service discovery by allowing applications to advertise their available services. Access to etcd is provided through a RESTful JSON API over HTTP, which can be utilized directly or via the dedicated command-line utility etcdctl. Additionally, etcd is an integral component within Kubernetes.

The platform also includes the fleet cluster manager, designed to orchestrate systemd instances across multiple nodes. Since 2017, fleet has been deprecated in favor of Kubernetes. The fleetd daemon forms a distributed init framework by connecting local systemd services with cluster-wide deployments managed by fleet. It interfaces with systemd through D-Bus and communicates with the fleet API for coordination. This architecture supports container deployment across the entire cluster, offering capabilities such as redundancy, failover mechanisms, targeted scheduling, dependency handling, and grouped service launches. Management is performed using the fleetctl command-line tool, which interacts with a JSON-based HTTP API either locally via Unix sockets or remotely through SSH tunnels secured by public key authentication.

All these tools (etcd, etcdctl, fleetd, and fleetctl) are implemented in Go and distributed under the Apache License 2.0.

Deployment

Container Linux can be installed on physical machines using internal storage devices like hard disk drive (HDD) or solid-state drive (SSD), or it can boot over networks employing Preboot Execution Environment (PXE) and solutions such as iPXE. It supports deployment across various virtualization environments including Amazon EC2, DigitalOcean, Google Compute Engine, Microsoft Azure, OpenStack, QEMU/KVM, Vagrant, and VMware. Additionally, deployment is possible on Citrix XenServer using preconfigured templates.

The commercial edition of Container Linux, known as Tectonic, integrates Google's Kubernetes for cluster orchestration and was slated for beta availability to select users as of 2015. CoreOS also provides Flannel, an overlay networking solution critical for Kubernetes functionality.

As of early 2015, Container Linux supports exclusively the x86-64 architecture.

Derivatives

After acquiring CoreOS, Inc. in January 2018, Red Hat announced plans to combine CoreOS Container Linux with its Project Atomic initiative to develop Red Hat CoreOS. This effort unified the Fedora Project's open source community around Fedora CoreOS, merging technologies from both origins.

On March 6, 2018, Kinvolk GmbH introduced Flatcar Container Linux—a derivative built upon CoreOS Container Linux. Flatcar maintains alignment with upstream CoreOS alpha, beta, and stable versions while adding an experimental Edge release channel launched in May 2019.

Reception

In 2014, LWN.net provided an evaluation of CoreOS:


See also

External links