Tutorial Series

Getting Started with CoreOS

CoreOS is a powerful Linux distribution built to make large, scalable deployments on varied infrastructure simple to manage. Based on a build of Chrome OS, CoreOS maintains a lightweight host system and uses Docker containers for all applications. In this series, we will introduce you to the basics of CoreOS, teach you how to set up a CoreOS cluster, and get you started with using docker containers with CoreOS.
  • CoreOS is an exciting Linux distribution focused on getting clustered environments up and running quickly. By leveraging technologies like Docker containers and service discovery, CoreOS clusters can be easily managed as a single unit. In this guide, we will discuss some of the background technologies that make CoreOS possible.
  • If you are planning on using CoreOS in your infrastructure, the first thing you will want to set up is a CoreOS cluster. In order for CoreOS machines to form a cluster, their etcd2 instances must be connected. In this tutorial, we will give step-by-step instructions to quickly create a 3-node CoreOS cluster on DigitalOcean.
  • The fleet daemon and the fleetctl utility program are essential for managing your CoreOS cluster. A cluster-wide interface to individual systemd instances, this system allows you to manage services throughout your clustered environment. In this guide, we'll get familiar with these components.
  • Etcd is a globally distributed key-value store that forms the basis of the clustering technology in CoreOS. In this guide, we'll look at etcd and the etcdctl utility and discuss how they can be used to store and retrieve application and cluster data.
  • CoreOS enables cluster-wide service definitions that can easily start applications on any member machine. In this guide, we will demonstrate the basic workflow required to create and run a service of your own. We will build a Docker container with our application installed, create systemd-style service unit files, and then use fleet to schedule and start our services.
  • Fleet is the cluster-wide service management component of CoreOS. In this guide, we will take an in-depth look at the unit files that define services for CoreOS. We will learn how to create flexible services that take advantage of the power of the CoreOS platform.
  • Etcd is a globally distributed key-value store that is available in CoreOS installations. By registering services in this store, related applications can adjust their configuration based on the values available. In this guide, we will demonstrate how to configure `confd` to monitor `etcd` in order to dynamically generate an Nginx configuration. Continuous polling of `etcd` allows us to configure Nginx as a load balancer that adjusts its list of backend servers as they are started or stopped.
  • CoreOS is an extremely powerful operating system focused on cluster management, security, and containerized service deployments. However, the unconventional way that the system is set up can make troubleshooting somewhat difficult. In this guide, we'll cover the basics of how to track down issues in your deployment as well as your services.
  • If you are planning to run a CoreOS cluster in a network environment outside of your control, you may be concerned that etcd communicates over plain HTTP. This guide describes enabling TLS/SSL security and a basic firewall on CoreOS machines.