Tutorial

Kubernetes Learning Journey

A guided Kubernetes track that moves from Docker and cluster architecture through workloads, networking, storage, security, Helm, Kustomize, scaling, and managed clusters.

Sections40 grouped learning phases
Lessons271 connected topics
AudienceDevelopers and DevOps Engineers

Start Here

Orientation and roadmap before moving into the hands-on sections.

2 topics
  • Kubernetes learning roadmapThis track is organized so you can build confidence in the right order: start with container and cluster basics, move through workloads and networking, then learn security, packaging, operations, and managed Kubernetes on AWS and Google Cloud.
  • Docker best practicesOpen lesson

Docker

!Docker Architecture

17 topics

Kubernetes Fundamentals

Build the mental model for Kubernetes by learning what problems it solves, how a cluster is structured, and how the core components work together.

3 topics

Pods and Probes

Learn how pods run workloads and how readiness and liveness probes help keep services healthy.

4 topics

Namespaces

Think of namespaces like virtual clusters inside a physical cluster.

1 topics

Services and Discovery

Understand how Kubernetes exposes workloads internally and externally with service abstractions and DNS-based discovery.

2 topics

Cluster Nodes And Scheduling

When your workloads exceed the cluster’s current capacity, some pods will enter a Pending state. The Cluster Autoscaler or Karpenter watches for this and increases the node count automatically. Similarly, when resources are underused for a certain time (default 10 minutes), the scaler removes unneeded nodes to save cost.

4 topics
  • What Node Autoscaling DoesWhen your workloads exceed the cluster’s current capacity, some pods will enter a Pending state. The Cluster Autoscaler or Karpenter watches for this and increases the node count automatically. Similarly, when resources are underused for a certain time (default 10 minutes), the scaler removes unneeded nodes to save cost.
  • Step 1: Label Your NodesIn Kubernetes, if you have two nodes and want to schedule specific pods onto a particular node based on labels or certain properties, you can achieve that using node labels combined with either nodeSelector or nodeAffinity. Both are native scheduling mechanisms that let you control where your workload runs, but they differ in flexibility.
  • Big IdeaNow we’re getting into the really interesting part of Kubernetes scheduling — this is where microservices architecture becomes intelligent.
  • Example 1: Basic NoSchedule ExampleYou can taint a node so that only certain pods can run on it. For instance, if you want a node to only accept front‑end pods:

Storage and Persistent Volumes

Learn how Kubernetes handles durable storage with persistent volumes, claims, and cloud-backed disk examples.

10 topics

Stateful Workloads

Move from stateless deployments to databases and other workloads that need stable identity and persistent state.

4 topics

Deployments

---

20 topics

Ingress and Gateway Routing

Learn how HTTP and HTTPS traffic enters the cluster using ingress resources, gateway APIs, and application routing examples.

10 topics

Scaling and Rollouts

Learn how Kubernetes scales workloads, performs rolling updates, and supports autoscaling decisions in production.

2 topics

Kubernetes on AWS EKS

Apply the core Kubernetes model on AWS EKS with practical deployment recipes and debugging examples.

4 topics

Network Policies

Network Policies let you control which pods can talk to each other inside the cluster. They become important once your applications stop being a single service and start behaving like a real distributed system with frontends, APIs, databases, and background workers.

3 topics
  • Network Policies OverviewNetwork Policies let you control which pods can talk to each other inside the cluster. They become important once your applications stop being a single service and start behaving like a real distributed system with frontends, APIs, databases, and background workers.
  • Allow Frontend To BackendOpen lesson
  • Default Deny PolicyOpen lesson

Configmaps And Secrets

Create a file called configmap.yml:

6 topics

RBAC

In the above, user "jane" is granted permission to read pods in the "default" namespace. This gives her access limited strictly to reading pods but nothing else in that namespace.

5 topics

Helm Basics

Before deploying a Helm chart, it’s a good practice to debug and dry-run it to identify any potential issues.

7 topics

Helm Charts

This section contains ready-to-study Helm chart examples. The goal is to move from hand-written manifests to reusable application packages that can be installed, upgraded, rolled back, and configured with values.

21 topics

Kustomize

Kustomize is a Kubernetes-native configuration management tool that lets you customize resource YAML files in a reusable, declarative way—without modifying the original (base) files. It was added natively into kubectl (via the -k option) starting in Kubernetes v1.14.

7 topics

Best Practices

Structured topics designed to be completed in sequence.

1 topics

GCP GKE

---

5 topics

AWS EKS

---

4 topics

Configmap Secrets

Create a file called configmap.yml:

6 topics

Deployments

---

20 topics

Docker

!Docker Architecture

17 topics

GCP GKE

---

5 topics

Helm Charts

Structured topics designed to be completed in sequence.

20 topics

Ingress

Ingress is a Kubernetes resource that manages external access to your cluster’s services, typically over HTTP/HTTPS.

10 topics

Intro And Architecture

Kubernetes has a modular architecture consisting of various components that work together to manage containers efficiently. These components are categorized into: 1. Control Plane Components (Manage the cluster) 2. Node Components (Run the workloads)

3 topics

K8S Helm

Before deploying a Helm chart, it’s a good practice to debug and dry-run it to identify any potential issues.

7 topics

Kubernetes Nodes

When your workloads exceed the cluster’s current capacity, some pods will enter a Pending state. The Cluster Autoscaler or Karpenter watches for this and increases the node count automatically. Similarly, when resources are underused for a certain time (default 10 minutes), the scaler removes unneeded nodes to save cost.

4 topics
  • What Node Autoscaling DoesWhen your workloads exceed the cluster’s current capacity, some pods will enter a Pending state. The Cluster Autoscaler or Karpenter watches for this and increases the node count automatically. Similarly, when resources are underused for a certain time (default 10 minutes), the scaler removes unneeded nodes to save cost.
  • Step 1: Label Your NodesIn Kubernetes, if you have two nodes and want to schedule specific pods onto a particular node based on labels or certain properties, you can achieve that using node labels combined with either nodeSelector or nodeAffinity. Both are native scheduling mechanisms that let you control where your workload runs, but they differ in flexibility.
  • Big IdeaNow we’re getting into the really interesting part of Kubernetes scheduling — this is where microservices architecture becomes intelligent.
  • Example 1: Basic NoSchedule ExampleYou can taint a node so that only certain pods can run on it. For instance, if you want a node to only accept front‑end pods:

Kubernetes RBAC

In the above, user "jane" is granted permission to read pods in the "default" namespace. This gives her access limited strictly to reading pods but nothing else in that namespace.

5 topics

Kustomize

Kustomize is a Kubernetes-native configuration management tool that lets you customize resource YAML files in a reusable, declarative way—without modifying the original (base) files. It was added natively into kubectl (via the -k option) starting in Kubernetes v1.14.

7 topics

Namespaces

Think of namespaces like virtual clusters inside a physical cluster.

1 topics

Networking

Structured topics designed to be completed in sequence.

2 topics

Persistent Volumes

---

10 topics

Pod

To access it: bash curl http://10.244.1.12:80

4 topics

Scaling And Rolling Updates

Cluster Autoscaler is a Kubernetes component that automatically adds or removes nodes in a cluster based on pod scheduling needs.

2 topics

Services

Normally, a Kubernetes Service provides a single virtual IP (ClusterIP) and load balances traffic across pods.

2 topics

Stateful Sets

Structured topics designed to be completed in sequence.

4 topics