CoreOS produces, maintains and utilizes open source software for Linux containers and distributed systems. Projects are designed to be composable and complement each other in order to run container-ready infrastructure.
These docs are collated from a few different upstream sources (normally the GitHub project). Each page has a "fork me" banner if you'd like to submit improvement or suggestion.
CoreOS is a minimal operating system that supports popular container systems out of the box. The operating system is designed to be operated in clusters. For example, it is engineered to be easy to boot via PXE and on most cloud providers.
Easy to use configuration syntax for automatically starting services on CoreOS
Kubernetes is powerful container management software inspired by Google"s operational experience with containers. Essential features like service discovery, automatic load-balancing, container replication and more are built in. Plus, it"s all powered via an HTTP API.
Kubernetes pairs very well with the operational model of CoreOS and also utilizes many of the CoreOS open-source projects. These guides install the open-source, upstream version of Kubernetes. For commerical support, check out Tectonic, a supported version of Kubernetes + the CoreOS tech stack. For lower-level cluster scheduling, check out fleet.
etcd is a distributed key value store that provides a reliable way to store data across a cluster of machines. It"s open-source and available on GitHub. etcd gracefully handles leader elections during network partitions and will tolerate machine failure, including the leader.
Applications can read, write and listen for changes to etcd values via an HTTP-based API
etcd can be clustered for high availability and runs as static binaries or containers
fleet is a low-level cluster scheduler designed to allow you to treat a cluster of machines as if they shared a single init system. fleet is oriented around systemd units which serve as a foundation for higher order orchestration, such as Kubernetes.
Examples of running a single unit or a set of units with scheduling constraints.