| layout | default |
|---|---|
| title | Course Overview |
| nav_order | 0 |
| nav_exclude | true |
A comprehensive, hands-on and free course for building production-ready Kubernetes operators using Kubebuilder.
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
The course is divided into 8 modules, each building on the previous:
- Go 1.24+
- kubectl
- Docker or Podman
- kind v0.29+
- Kubebuilder 4.7+
-
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
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
- 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.
We welcome contributions and feedback! Here's how you can help improve this course:
If you find bugs, typos, or errors in the course materials, please open an issue in this repository.
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] -
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!
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.
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. Please consider ⭐ing the project if you found it useful.
For questions and discussions, please open an issue in this repository.