Kubernetes Operators Intermediate
This course serves as an introduction to Kubernetes operators. Operators are a design pattern for building and deploying an application onto a Kubernetes cluster such that it can be used in the same manner as core Kubernetes resources. It covers the internal architecture of operators and how they fit into the larger Kubernetes ecosystem, as well as how to build basic operators using Operator-sdk. Operator-sdk is a command line tool for scaffolding operators, generating the code skeleton and Kubernetes yaml needed to deploy the operator.
This course is of interest to anyone who wants to learn how to deploy and manage applications on Kubernetes using a more Kubernetes-native style, such as Kubernetes application devlopers, architects, or operators. It is also of interest to consumers of Kubernetes applications users interested in learning how some of the applications they use work internalally. It features hands-on labs that have you constructing and deploying real operators on a live Kubernetes cluster.
LEARNING OBJECTIVES
In this course you will learn about:
What a Kubernetes operator is
Why you would want to use an operator
The basic internal architecture of an operator
How to build a basic operator using
Golang
Helm
Ansible
COURSE SYLLABUS
Module 1 – Intro to Operators and Building your first Golang operator
Overview of operators
Overview of basic Kubernetes architecture
Architecture of an operator
Hands-on Lab
Build a Golang operator with Operator-sdk
Module 2 – Building your first Helm operator
Overview of Helm operators
Hands-on Lab
Build a Helm operator with Operator-sdk
Module 3 – Building your first Ansible operator
Overview of Ansible operators
Hands-on Lab
Build an Ansible operator with Operator-sdk
REQUIREMENTS
Basic familiarity with Kubernetes (i.e. creating/updating/deleting Kubernetes resources such as Pods and Services)
The labs in this course cover the creation, deployment, and use of operators on a Kubernetes cluster. It assumes you are already familiar with the basics of Kubernetes, such as using kubectl to create resources on a Kubernetes cluster.
The requirements for the hands-on labs are as follows:
Requirements for all hands-on labs
Operator-sdk v1.5.0+ installed
Kubectl v1.17.0+ installed
Admin access to a Kubernetes cluster. The next section covers how to provision a small cluster for free on IBM Cloud if you do not have a one already.
Docker v3.2.2+ installed
Access to a Docker image repository such as Docker Hub or quay.io