Building Kubernetes Operators Course
A comprehensive, hands-on course for building production-ready Kubernetes operators using Kubebuilder.
Course Overview
This 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 - Licensed under MIT License
Course Structure
The course is divided into 8 module…
Building Kubernetes Operators Course
A comprehensive, hands-on course for building production-ready Kubernetes operators using Kubebuilder.
Course Overview
This 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 - Licensed under MIT License
Course Structure
The course is divided into 8 modules, each building on the previous:
Module 1: Kubernetes Architecture Deep Dive
Module 2: Introduction to Operators
Module 3: Building Custom Controllers
Module 4: Advanced Reconciliation Patterns
Module 5: Webhooks and Admission Control
Module 6: Testing and Debugging
Module 7: Production Considerations
Module 8: Advanced Topics and Real-World Patterns
- Multi-tenancy and namespace isolation
- Operator composition
- Stateful application management
- Real-world patterns and best practices
Getting Started
Prerequisites
- Go 1.24+
- kubectl
- Docker or Podman
- kind v0.29+
- Kubebuilder 4.7+
Setup
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:
cd module-01
cat README.md
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
Resources
- Kubebuilder Documentation
- Kubernetes API Documentation
- Operator Pattern
- Complete Hello World Operator Code built following this course, you can refer.
- Complete Postgres Operator Code built following this course, you can refer.
Contributing
We welcome contributions and feedback! Here’s how you can help improve this course:
Reporting Issues
If you find bugs, typos, or errors in the course materials, please open an issue in this repository.
Requesting New Concepts
Have an idea for a new concept, topic, or module you’d like to see added to the course? We’d love to hear from you!
To request a new concept:
Open a new issue in this repository with the label enhancement (if available) or use the title prefix [Feature Request]
1.
Include the following information:
- Concept/Topic Name: What concept would you like to see covered?
- Description: A brief description of the concept and why it would be valuable
- Suggested Module: Which module do you think this fits best in? (or suggest a new module)
- Use Case: How would this help learners build better operators?
- Priority: Is this a nice-to-have or a critical gap in the course?
Example format:
[Feature Request] Operator SDK Comparison
Description: Add a lesson comparing Kubebuilder with Operator SDK
Suggested Module: Module 2 or new comparison module
Use Case: Help learners understand when to choose which framework
Priority: Nice-to-have
We review all requests and prioritize based on:
- Community interest and upvotes
- Alignment with course learning objectives
- Complexity and time required to develop
- Gaps in current course coverage
Note: While we can’t guarantee every request will be implemented, we value your input and will consider all suggestions!
License
This course is free and open-source, licensed under the MIT License. You are free to:
- Use, share, and modify the course materials
- Use for personal or commercial purposes
- Distribute and sublicense the materials
The only requirement is that you include the original copyright notice and license text. See the LICENSE file for full details.
Share Your Project
If you’ve completed the course and built an operator, we’d love to see it! Share your project on LinkedIn and tag Piyush Jajoo. I’ll make my best effort in my free time to review your code and provide feedback.
Support
For questions and discussions, please open an issue in this repository.