Book Image

The Kubernetes Operator Framework Book

By : Michael Dame
1 (1)
Book Image

The Kubernetes Operator Framework Book

1 (1)
By: Michael Dame

Overview of this book

From incomplete collections of knowledge and varying design approaches to technical knowledge barriers, Kubernetes users face various challenges when developing their own operators. Knowing how to write, deploy, and pack operators makes cluster management automation much easier – and that's what this book is here to teach you. Beginning with operators and Operator Framework fundamentals, the book delves into how the different components of Operator Framework (such as the Operator SDK, Operator Lifecycle Manager, and OperatorHub.io) are used to build operators. You’ll learn how to write a basic operator, interact with a Kubernetes cluster in code, and distribute that operator to users. As you advance, you’ll be able to develop a sample operator in the Go programming language using Operator SDK tools before running it locally with Operator Lifecycle Manager, and also learn how to package an operator bundle for distribution. The book covers best practices as well as sample applications and case studies based on real-world operators to help you implement the concepts you’ve learned. By the end of this Kubernetes book, you’ll be able to build and add application-specific operational logic to a Kubernetes cluster, making it easier to automate complex applications and augment the platform.
Table of Contents (16 chapters)
1
Part 1: Essentials of Operators and the Operator Framework
4
Part 2: Designing and Developing an Operator
9
Part 3: Deploying and Distributing Operators for Public Use

etcd Operator design

Like most other Operators, the etcd Operator is built with CRDs as its focal interface for user interaction. Understanding the CRDs an Operator provides is a good way to get a basic understanding of how the Operator works, so that is where we will begin our examination of the etcd Operator.

CRDs

The three CRDs used by the etcd Operator are EtcdCluster, EtcdBackup, and EtcdRestore. The first CRD, EtcdCluster, controls the basic settings for the etcd installation, such as the number of Operand replicas to deploy and the version of etcd that should be installed. A sample object based on this CRD looks like the following:

simple-etcd-cr.yaml:

apiVersion: etcd.database.coreos.com/v1beta2
kind: EtcdCluster
metadata:
  name: example
spec:
  size: 3
  version: 3.5.3

In this example, were this object to be created in a cluster (kubectl create -f simple-etcd-cr.yaml), it would instruct the etcd Operator to create...