I am excited to announce my latest course on Kubernetes called Start Kubernetes.
I have started working with Kubernetes years ago, and I remember the confusion when I heard about Pods and Services and how things work in Kubernetes. I've been using Marathon/Mesos at that point, so the concepts were a bit familiar, but still foreign. I noticed I was able to grasp the concepts quicker through practical exercises and examples.
Talking about complexity, even today, if you want to deploy and run an application inside Kubernetes, you have to:
- Create a Deployment representing your application
- Design the Pods, set the resource limits, requests, and security settings
- Create a Service, so that you can access the application
- Define any Configuration and Secrets your application will use
- Configure or reconfigure Ingress
That's on top of being familiar with how Pods, Deployments, Services, Ingress, and other Kubernetes resources work. Of course, there are other knobs and buttons you can turn and push to fine-tune each one of these resources. No one can deny there is a lot of complexity and new terminology.
I have created this course to try, and flatten the learning curve of Kubernetes , explaining the individual concepts and resources, show how everything fits together, and then bring it together with practical examples.
There are three parts to the course: the e-book, the video course, and the practical exercises/labs.
This whole course started as a long Kubernetes article and it ended up as a 230+ page book where I cover the following topics:
- Kubernetes Resources
An overview of Pods, ReplicaSets, Deployments, Services, Ingress, Namespaces, Jobs, CronJobs, and things like labels, selectors, and annotations
How to configure your Kubernetes applications with ConfigMaps and how to store and use Secrets
- Stateful Workloads
Introduction to Volumes, Persistent Volumes, and Persistent Volume Claims, and how to run stateful workloads in Kubernetes using StatefulSets
- Organizing Containers
Init, sidecar, ambassador, and adapter container patterns with practical examples
- Application Health
Explanation of liveness, startup, and readiness probes
- Security in Kubernetes
Services accounts, using RBAC, security contexts, and Pod security policies
- Scaling and Resources
Autoscaling Pods using HorizontalPodAutoscaler, defining resource requests and limits; using affinity, taints, and tolerations
- Extending Kubernetes
Using custom resource definitions (CRDs), implementing controllers/operators
I enjoy writing, but I also enjoy making videos, so I decided to turn the book into the video course. If you're a visual learner as I am, you will enjoy this. I have recorded 23 videos that walk you through different Kubernetes topics, starting with basic resources, such as Pods and Deployments, and role-based access control and creating your own custom resources and controllers.
The full list of videos is below. You can also check out the first four videos on my YouTube channel:
- About Pods (3:37)
- Creating Pods (5:16)
- About ReplicaSets (2:38)
- Creating ReplicaSets (12:20)
- Deployments (10:32)
- Deployment Strategies (11:03)
- Services (17:35)
- Service Types (9:20)
- About Ingress (3:13)
- Creating Ingress (18:30)
- Jobs (9:38)
- CronJob (6:11)
- About Configuration (2:10)
- ConfigMaps (17:23)
- Secrets (10:15)
- Volumes (6:24)
- About PV and PVC (2:30)
- Creating PV and PVC (6:40)
- Running MongoDB with StatefulSet (9:26)
- Service Accounts (10:07)
- Role-Based Access Control (RBAC) (9:56)
- Resource Requests, Limits, and Quotas (13:42)
- CRDs and Controllers (18:21)
Reading and watching can become tedious, so I have created 41 practical exercises. You will install the Start Kubernetes Labs on your Kubernetes cluster, and go through the exercises from your browser.
I have grouped tasks/exercises into seven categories, and each category has from 3 to 10 tasks. Tasks have a detailed description of what needs to be solved, and you can use the built-in terminal on the webpage to solve the exercises. From the terminal, you have access to the Kubernetes cluster via the CLI.
You can solve the exercises in order, or jump from one to another - however you feel most comfortable learning. There's no timers, scores, or leaderboards. If you're still stuck, you can hop on the Slack channel, explain the issue you're running into, and we will solve it together. The point of these exercises is to learn and get better at Kubernetes.