The Kubernetes Machine
Kubernetes is one of the most popular open source software projects in the world and is an excellent example of a distributed software system. This course is about the Kubernetes machine, its design principles and components. In this course you will learn how Kubernetes works and what makes it so effective as a container orchestration system.
Introduction to the Kubernetes Machine
Before we get started, let’s quickly review what you’ll learn and what you need to know in order to get the most out of this course.
Kubernetes Design
This lesson covers the important design principles of Kubernetes. You will learn about level-triggered vs edge-triggered logic, about the API-driven nature of Kubernetes, about the watch mechanisms that are used to connect the components of the system and about what a "controller" is in the Kubernetes context.
Etcd
Etcd is the persistent data store for Kubernetes. It is a distributed key-value store that records the state of all resources in a Kubernetes cluster. This lesson will teach you the fundamentals of etcd.
Kubernetes API
The Kubernetes API is at the heart of the Kubernetes control plane. In this lesson you'll learn how Kubernetes objects are organized in the API and how clients are notified of changes to them.
API Server
This lesson extends what we covered in the last lesson and covers what happens in the API Server when a request is received to alter the state of the cluster.
Scheduler
The kube-scheduler is the Kubernetes controller responsible for assigning pods to nodes in the cluster. It's scope is narrow but complex. In this lesson you'll learn about the crucial role it plays in the control plane.
Controller Manager
In this lesson you'll learn about the kube-controller-manager which encompasses various control loops that are critical to the proper function of a Kubernetes cluster.
Cloud Controller Manager
This lesson covers the cloud-controller-manager. This component includes control loops that help manage a Kubernetes cluster's underlying infrastructure.
Kubelet
The kubelet is another Kubernetes controller. In general terms, it provides an interface between the Kubernetes control plane and the container runtime on each server in the cluster. This lesson will teach you how it does this.
Kube-proxy
The kube-proxy implements the Service resource in Kubernetes. In this lesson you'll learn the critical role it plays in Kubernetes networking.
Kubernetes Machine Recap
In this lesson we are going to tie everything together. We'll walk through how each of the components we've covered in this course coordinate to fulfill the desired state declared in a sample Deployment and Service manifest.