We’ve been working on this project for a while, and we’re stoked to now share it with the open source community at large to streamline the setup and ongoing operations of production etcd clusters.
Inspired by kubeadm, etcdadm provides Kubernetes users a simple command-line experience to configure, deploy and operate secure etcd clusters that can run anywhere (on-premises, in the cloud, as well as in air-gapped environments) – with built-in support for recovery and scalability.
- Easy deployment of a secure etcd cluster
- Recovery from quorum loss – by easily deploying a secure cluster from an existing etcd backup
- Scaling operations – with easy addition or removal of nodes in an etcd cluster
etcdadm can run on any Linux distribution such as Ubuntu, CentOS and Container Linux. etcdadm was developed for use within Platform9’s commercial offering, Platform9 Managed Kubernetes. Platform9 is contributing it to the open source community to streamline the setup and ongoing operations of production etcd clusters.
Check out this short demo of the tool:
Why did we create etcdadm?
etcdadm is inspired by the user experience of the popular kubeadm open source project. kubeadm provides an easy command-line interface for instantiating Kubernetes clusters, but currently doesn’t deploy etcd clusters. It only deploys a single etcd instance, which is insufficient for production Kubernetes environments.
etcd is a key component in the Kubernetes stack, storing the state of the Kubernetes cluster, including node and workload information. An etcd cluster is required to provide high availability of a Kubernetes cluster.
For production use, where availability and redundancy are important factors, running etcd as a cluster is critical. Bringing up a secure etcd cluster – particularly on-premises – is difficult. It involves downloading the right binaries, writing the initial cluster configuration on each etcd node, setting and bringing up etcd. This is in addition to configuring the certificate authority and certificates for secure connections. At Platform9, we envisioned a kubeadm-type tool that could easily create a secure etcd cluster using simple init/join semantics and abstracting away complexities from users. This was our motivation for “etcdadm”.
Installing an etcd cluster only solves half of the problem. “Day two” operations and management of the etcd cluster are equally important. We wanted to simplify scaling and disaster recovery, so that the tedious work is done by the tool, rather than by the Kubernetes user. We designed etcdadm to make it easy to add or remove members from a cluster, and made sure that etcdadm helps you recover from quorum loss by easily creating a cluster from backup.
etcdadm allows developers to easily create secure etcd clusters, and Operations teams to operate these in production, safely and effectively. At Platform9, we are committed to an open source technology that’s at the heart of everything we do, and we have a history of contributing to the open source community. We are proud to open-source this project for the industry to use, as our way of giving back to the Kubernetes community that is advancing modern software delivery.
Tech-talk: What is etcd, what is etcdadm, and what it means for your Kubernetes operations?
Check out this short video for a quick intro into what is etcd, what are some of the challenges with it, how etcdadm helps, some of the key use cases, and what we see as the future for etcd.
We are working with the Kubernetes Cluster Lifecycle Special Interest Group (SIG) to understand how other community projects can benefit from etcdadm, and how etcdadm should adapt to meet those projects’ needs.
We welcome your feedback- check out the new etcdadm on GitHub and let us know what you think!