- 9. Sep
etcd-operator simplifies etcd cluster configuration and management. This chart bootstraps an etcd-operator and allows the deployment of etcd-cluster(s). Major planned features have been completed, and while no breaking API changes are currently planned, we reserve the right to address bugs and API changes in a backward incompatible way before the project is declared stable. See upgrade guide for a safe upgrade process.
Currently user-facing etcd cluster objects are created as Kubernetes Custom Resources, however, taking advantage of User Aggregated API Servers to improve reliability, validation and versioning is planned. The use of Aggregated API should be minimally disruptive to existing users but may change what Kubernetes objects are created or how users deploy the etcd operator.
An Operator is a method of packaging, deploying and managing a Kubernetes application. A Kubernetes application is an application that is both deployed on Kubernetes and managed using the Kubernetes APIs and kubectl tooling.
To be able to make the most of Kubernetes, you need a set of cohesive APIs to extend in order to service and manage your applications that run on Kubernetes. You can think of Operators as the runtime that manages this type of application on Kubernetes.
The Operator Framework
The Operator Framework is an open source project that provides developer and runtime Kubernetes tools, enabling you to accelerate the development of an Operator. The Operator Framework includes:
Enables developers to build Operators based on their expertise without requiring knowledge of Kubernetes API complexities.
Operator Lifecycle Manager
Oversees installation, updates, and management of the lifecycle of all of the Operators (and their associated services) running across a Kubernetes cluster.
Operator Metering (joining in the coming months): Enables usage reporting for Operators that provide specialized services.
Lifecycle of an Operator
Once built, Operators need to be deployed on a Kubernetes cluster. The Operator Lifecycle Manager is the backplane that facilitates management of Operators on a Kubernetes cluster. With it, administrators can control what Operators are available in what namespaces and who can interact with running Operators. They can also manage the overall lifecycle of Operators and their resources, such as triggering updates to both an Operator and its resources.
What are the benefits of using the Operator Framework?
If you are a community member, builder, consumer of applications, or a user of Kubernetes overall, the Operator Framework offers a number of benefits. Operators are built on top of a common set of Kubernetes APIs. They act like cloud services, make it more simple to install and update Kubernetes applications, without having to worry about the underlying platform.
Operators help your teams to build a great automation experience. They allow teams to build in the expertise of automated operations, instead of building manually each time.
Introducing the etcd Operator: Simplify etcd cluster configuration and management
etcd is a distributed key-value store. In fact, etcd is the primary datastore of Kubernetes; storing and replicating all Kubernetes cluster state. As a critical component of a Kubernetes cluster having a reliable automated approach to its configuration and management is imperative.
As a distributed consensus-based system, the cluster configuration of etcd can be complicated. Bootstrapping, maintaining a quorum, reconfiguring cluster membership, creating backups, handling disaster recovery, and monitoring critical events are tedious work, and require etcd-specific expertise.
Today we are introducing the etcd Operator and the Prometheus Operator showing how to make applications like these easier to run on Kubernetes. In this post, we'll outline the importance of an Operator for etcd. Let's dive in.
The etcd Operator: The best way to manage etcd clusters
The etcd Operator is simple to install with a single command line, and enables users to configure and manage the complexities of etcd using the simple declarative configuration that will create, configure, and manage etcd clusters.
The etcd Operator provides the following features:
- Create/Destroy: Instead of specifying tedious configuration settings for each etcd member, users only need to specify the size of the cluster minimally.
- Resize: Users need only to modify the size in spec, and the etcd Operator will take care of deploying, destroying, and/or re-configuring cluster members, e.g. from 3 to 5, or from 5 to 3.
- Backup: The etcd Operator performs backups automatically and transparently. Users need only to specify the backup policy, for example, to back up every 30 minutes and keep the last 3 backups.
- Upgrade: Upgrading etcd without downtime is a critical but difficult task. Doing it with the etcd Operator not only simplifies operations but also avoids common upgrade pitfalls and errors.
How it works
The etcd Operator simulates human operator behaviors in three steps: Observe, Analyze, and Act.
First, it observes the current cluster state by using the Kubernetes API. Second, it finds the differences between the desired state and current state. Last, it fixes the difference through one or both of the etcd cluster management API or the Kubernetes API.