Protoyping Kubernetes Controllers in Python

Vibhav Bobade (~waveywaves)


Description:

Understanding the concept of a Kubernetes Controller sits at the core of understanding the internal workings of the operational tasks performed automated in a Kubernetes cluster. Kubernetes Controllers match the current state of resources with the desired state, whatever the resource be, Pod, Service etc. Replication Controller, TTL Controller are some examples of Controllers in Kubernetes. These controllers a Upon understanding and prototyping a controller we can gain a basic idea of the internal kubernetes API and how we can use it to automate everyday kubernetes operations.

We would be creating a Pod Autoscaling Controller from scratch using the kubernetes-client and understand how to couple them with CRDs.

As we go through the agenda, we would be programming the controller in Python and running it on minikube, evolving it based on our needs as we progress through the agenda.

Agenda

  • Understanding the Kubernetes API
  • Enter.. kubernetes-client !
  • The Controller Pattern : What does the controller control ?
  • Implementing Informers via Watch
  • Custom Resources. Creating and controlling them.
  • What next ?

After the talk we should have a clear idea about the role of controllers in Kubrenetes and things to keep in mind while prototyping them.

If a Kubernetes Cluster was a living breathing being, then controllers would naturally be the organs. Enabling the cluster, processing the data, adapting to changes.

Prerequisites:

Basic Understanding of Kubernetes / Containerization Concepts.

Speaker Info:

I work as a Software Engineer at Red Hat in the Openshift Team, working on Build strategies and maintaining Jenkins for Openshift. For other things, I love to read, play music and celebrate life :) and if you love talking about Tech in History or Histroy in general, I'm your guy.

Speaker Links:

https://github.com/waveywaves

https://www.linkedin.com/in/vibhavbobade

Section: Developer tools and automation
Type: Talks
Target Audience: Beginner
Last Updated: