Make your Python applications Kubernetes native!
Nabarun Pal (~palnabarun) |
With Cloud Native ideology coming into the forefront, it has become important for Python developers to understand how to interact with infrastructure components. A popular application runtime in recent times is Kubernetes.
In this workshop, we will explore how to leverage the Kubernetes Python Client from Python to talk with the Kubernetes API Server. We will take examples of some real-life use cases that need to talk to the Kubernetes API.
- Custom Workload Scheduler
- Dynamic Service Catalogue
- Kubernetes Access Control Management
The workshop will be roughly divided between these sections in the interest of time:
- [15min] Introduction to Kubernetes from a user point of view Note: This will provide a brief only. The attendees are requested to go through the prerequisites.
- [25min] A bread first dive into the Kubernetes API Server
- API Versions, Resource Groups, Resource Kind
- Reconciliation Loops
- Raw CRUD on the API
- [15min] Break to recollect thoughts and ask Questions The sections here on are very much demo-heavy. The attendees are expected to perform the same tasks and ask questions.
- [15min] Authenticating and talking to the Kubernetes API Server
- In cluster
- Out of cluster
- [15min] Writing a simple script to create a Deployment
- [15min] Watching and acting for changes to the resources
- [5min] Break
- [30min] Writing your own Kubernetes Scheduler using the concepts learned
- [15min] Open House and Questions
- Basic/Intermediate knowledge of Python
- Knowledge of Kubernetes resources that you want to manipulate like Pods, Deployments, StatefulSets, CronJobs.
To learn about the basics of Kubernetes, you can go through https://kubernetes.io/docs/home/ and then practice the concepts you learned using interactive labs from https://www.katacoda.com/courses/kubernetes.
For trying things out locally, you can install Minikube which lets you run Kubernetes clusters in your local machine.
Nabarun Pal works as an Open Source Engineer at VMware working primarily on upstream Kubernetes. He contributes to a variety of subprojects in the Kubernetes ecosystem notable of which being the Release Lead for Kubernetes 1.21. In addition to that, he is a subproject owner of the Release Team subproject, a Release Manager Associate, contributes to the Kubernetes Python client and New Membership Coordinators. Nabarun helps CNCF as a Google Summer of Code Administrator as well.
Nabarun has had worn several hats ranging from software to data pipelines to infrastructure in the industry after graduating from IIT Roorkee. Nabarun actively contributes to diverse open source communities like Kubernetes, Python, etc. Nabarun speaks about technology and his experiences at conferences and meetups in India and abroad. Nabarun also holds a Certified Kubernetes Administrator (CKA) certification.
- Landing Page: https://nabarun.dev
- GitHub: https://github.com/palnabarun
- LinkedIn: https://linkedin.com/in/palnabarun
- Previous Talks: https://nabarun.dev/speaking
- Twitter: https://twitter.com/theonlynabarun