O'Reilly logo
live online training icon Live Online training

Kubernetes Operators with the Operator Framework and SDK

Building software to run your software

Joshua Wood

Kubernetes scales and manages stateless applications quite easily. Stateful applications can require more work. Databases, caching systems, and file stores are harder to dynamically manage with data intact, and sometimes come with their own notion of clustering. Operators are custom Kubernetes controllers that know how to deploy, scale, manage, backup, and even upgrade complex, stateful applications.

With an Operator, you can extend the Kubernetes API to encode domain-specific knowledge about running, scaling, recovering, and monitoring your applications. This workshop will guide you through the steps of creating and deploying an Operator using the Operator Framework and SDK, open-source tools from Red Hat that simplify the process of making an Operator to deliver and manage your applications on Kubernetes.

What you'll learn-and how you can apply it

  • Learn what an Operator is and how Operators extend Kubernetes
  • See how to deploy an Operator and have it manage an application on your cluster
  • Learn about toolkits for Operator construction and distribution
  • Use the Operator SDK to build an Operator

This training course is for you because...

  • Software developers deploying on Kubernetes will learn how to use Operators to ease the management of foundation services like databases and file systems
  • Software vendors will learn how to create Operators that make their software ready to deploy and manage on Kubernetes clusters
  • Operations engineers will learn how Operators provide a place to implement Site Reliability Engineering (SRE) automation principles

Prerequisites

  • Intermediate experience with Kubernetes and/or OpenShift, Linux containers, software deployment and orchestration techniques
  • Basic familiarity with the Go programming language in order to understand Operator internals, or
  • Go programming experience in order to build additional features or your own Operators

Course Set-up

Recommended Preparation

Recommended Follow-up

About your instructor

  • Joshua Wood is a Developer Advocate at Red Hat. Wood has worked throughout his career to build utility computing with open source software. He likes fast cars, slow boats, and writing short autobiographies.

Schedule

The timeframes are only estimates and may vary according to how the class is progressing

Segment 1: Automating Stateful Applications with Kubernetes Operators Length (40)

  • Kubernetes automation primitives and orchestration of stateless applications
  • The Problem: Most apps have state. It would be nice to automate their scaling, recovery, with common methods
  • Operators manage the lifecycle of complex, stateful applications by extending the Kubernetes API to store, and the Kubernetes control plane to manage, internal, application-specific state
  • Demo: Etcd Operator managing an etcd cluster on Kubernetes
  • Q&A

Break: Length (5)

Segment 2: The Operator Framework and SDK Length (30)

  • SDK: Tools for Go, Ansible, Helm, ...
  • Operator Lifecycle Manager & distributing Operators
  • Exercise: Deploying from Operator Hub

Break: Length (5)

Segment 3: Crafting Kubernetes Operators with Go Length (60)

  • Operator-sdk tool
  • Operand: the example application
  • Generating Operator scaffolding
  • Exercise: Create, build, test, and deploy an Operator

Break: Length (10)

Segment 4: Operators are software SREs Length (30)

  • SRE principles
  • Table stakes automation: Deploy, replication, lifecycle
  • Operator Maturity Model
  • The Pager Loop: Identifying advanced automation targets

Course wrap-up and next steps