Building Kubernetes Operators
A comprehensive, hands-on and free course for building production-ready Kubernetes operators using Kubebuilder.
Course Overview
This free course teaches you how to build Kubernetes operators from the ground up. You’ll learn the fundamentals of Kubernetes architecture, the controller pattern, and how to use Kubebuilder to create custom operators that manage complex applications.
| Duration | 8 weeks (40-50 hours total) |
| Level | Intermediate to Advanced |
| Prerequisites | Basic Kubernetes knowledge, Go programming fundamentals, understanding of containerization |
| License | Free and open-source - MIT License |
What You’ll Learn
| Module | Description |
|---|---|
| Module 1: Kubernetes Architecture Deep Dive | Learn how the control plane works, API machinery operates, and understand the controller pattern. |
| Module 2: Introduction to Operators | Understand the operator pattern and build your first operator with Kubebuilder. |
| Module 3: Building Custom Controllers | Master controller-runtime, API design, and reconciliation logic. |
| Module 4: Advanced Reconciliation Patterns | Handle conditions, finalizers, watching, and advanced patterns. |
| Module 5: Webhooks and Admission Control | Implement validating and mutating webhooks. |
| Module 6: Testing and Debugging | Unit testing, integration testing, and observability. |
| Module 7: Production Considerations | Packaging, RBAC, high availability, and performance. |
| Module 8: Advanced Topics | Multi-tenancy, operator composition, and real-world patterns. |
Learning Approach
This course emphasizes:
- Practical Learning — Every concept is demonstrated through hands-on exercises
- Visual Learning — Extensive use of Mermaid diagrams for architecture and flows
- Progressive Complexity — Start simple, build to production-ready operators
- Real-world Examples — Build actual operators you can use
Prerequisites
Before starting, ensure you have:
# Required tools
Go 1.24+
kubectl
Docker or Podman
kind v0.29+
Kubebuilder 4.7+
Quick Start
- Clone this repository:
git clone https://github.com/piyushjajoo/k8s-operators-course.git cd k8s-operators-course - Set up your development environment:
./scripts/setup-dev-environment.sh - Create a kind cluster:
./scripts/setup-kind-cluster.sh - Start with Module 1: Navigate to the Modules page to begin!
Resources
- Kubebuilder Documentation
- Kubernetes API Documentation
- Operator Pattern
- Hello World Operator Code — Built following this course
- Postgres Operator Code — Built following this course
Share Your Project
If you’ve completed the course and built an operator, share your project on LinkedIn and tag Piyush Jajoo for feedback! Please consider ⭐ing the project if you found it useful.
Contributing
We welcome contributions! Open an issue for bugs, typos, or feature requests.
This course is free and open-source under the MIT License.