Free Online Course · Self-paced · Hands-on

Kubernetes Tutorial for Beginners & Experienced

Free Kubernetes tutorial from first cluster to Helm, RBAC, and upgrades, with hands-on lessons run on Kubernetes 1.36 kubeadm clusters, local and on AWS.

  • 11 chapters
  • 60 lessons
  • ~18h
  • Beginner to Intermediate
  • Tested with Kubernetes (kubeadm, kubelet, kubectl) 1.36.x
  • Updated Sep 2026
Kubernetes Tutorial for Beginners & Experienced
By Last updated

About this course

This is a free, self-paced Kubernetes course that starts with installing your first cluster and ends with Helm packaging, security, and cluster upgrades. It follows the upstream Kubernetes documentation and the objects in a currently supported release, and every lesson has you apply YAML to a real cluster rather than read about it.

Most lessons were run on a multi-node kubeadm cluster, so the output you see includes real node names, real scheduling decisions, and the networking errors a single-node playground hides. A single-node Minikube lab is enough for the first half of the course. The networking, Ingress, and upgrade lessons need at least two workers, because a Service that works on one node can still fail across two.

If Kubernetes is new to you, work through the chapters in order, starting with Setup Kubernetes Cluster. If you already deploy to a cluster, jump to Networking and Services, Security, or Helm Charts. When you are ready to certify, the CKA and CKAD courses reuse many of these lessons and add the exam-specific ones.

What you'll learn

  • Install a cluster with Minikube, kubeadm, or on AWS EC2 and EKS, and point kubectl at it
  • Read any manifest by understanding the control plane, the API, namespaces, labels, and annotations
  • Run workloads with Pods, Deployments, StatefulSets, DaemonSets, CronJobs, and the Horizontal Pod Autoscaler
  • Set resource requests, limits, quotas, PodDisruptionBudgets, and node affinity
  • Mount volumes, PersistentVolumes, ConfigMaps, and Secrets, and update configuration without restarting Pods
  • Expose applications with Services and Ingress, and troubleshoot cluster DNS with CoreDNS
  • Lock workloads down with RBAC, ServiceAccounts, SecurityContext, and Pod Security Standards
  • Package applications with Helm charts and hooks, upgrade the cluster, and debug OOMKilled Pods

Who this course is for

  • Developers moving applications from Docker or Podman onto a Kubernetes cluster for the first time
  • Linux sysadmins who have been handed a cluster and need to understand what runs where
  • DevOps engineers who deploy with Helm and want the objects underneath to make sense
  • Learners who want solid Kubernetes fundamentals before starting the CKA or CKAD course

Prerequisites

  • Comfortable Linux command line and basic networking concepts
  • Docker or Podman basics, such as running a container, building an image, and pushing it to a registry
  • One Linux VM with 2 vCPU and 4 GB RAM for the Minikube lessons; three VMs (one control plane, two workers) for the kubeadm, networking, and upgrade lessons
  • An AWS account only for the EC2 and EKS lessons; everything else runs on local VMs

Versions and testing environment

Every command in this course was run on this stack

ComponentVersionNotes
Kubernetes (kubeadm, kubelet, kubectl) 1.36.x Multi-node kubeadm cluster for most lessons; the EKS lesson runs EKS 1.36
Rocky Linux 10.2 Workstation and cluster nodes; the AWS EC2 lesson uses Ubuntu 24.04 LTS instances
containerd 2.2.x Node container runtime (2.3.x on the EC2 cluster)
Calico 3.32.x Pod network plugin on the kubeadm and EC2 clusters
Helm 3.21.x Chart install, upgrade, rollback, and packaging lessons

Syllabus

11 chapters · 60 lessons · ~18h of reading

  1. 1 Setup Kubernetes Cluster 7 lessons · ~1h 44m
    1. Part 1 Install single-node cluster with Minikube 7 min read
    2. Part 2 Install multi-node cluster with kubeadm (containerd and Calico) 25 min read
    3. Part 3 Install kubectl and configure kubeconfig on Linux 15 min read
    4. Part 4 Install multi-node cluster on Ubuntu (Calico CNI) 10 min read
    5. Part 5 Install Kubernetes cluster on AWS EC2 20 min read
    6. Part 6 Deploy an EKS cluster with Terraform 16 min read
    7. Part 7 Check the Kubernetes cluster version 11 min read
  2. 2 Core Concepts 6 lessons · ~1h 18m
    1. Part 8 Kubernetes architecture overview 15 min read
    2. Part 9 Kubernetes API resources and kubectl explain 12 min read
    3. Part 10 Kubernetes namespaces 12 min read
    4. Part 11 Labels and selectors 23 min read
    5. Part 12 Kubernetes annotations 9 min read
    6. Part 13 Labels vs annotations 7 min read
  3. 3 Workloads — Pods and Controllers 12 lessons · ~2h 44m
    1. Part 14 Kubernetes pods 17 min read
    2. Part 15 Kubernetes workload types 12 min read
    3. Part 16 ReplicaSet and ReplicationController 12 min read
    4. Part 17 Deployments and rolling updates 15 min read
    5. Part 18 Build and push container images 19 min read
    6. Part 19 Container command, args, env, and Downward API 15 min read
    7. Part 20 Kubernetes StatefulSets 13 min read
    8. Part 21 Kubernetes DaemonSets 16 min read
    9. Part 22 Autoscaling pods (HPA / VPA) 11 min read
    10. Part 23 Init containers 11 min read
    11. Part 24 Sidecar and multi-container pod pattern 12 min read
    12. Part 25 Kubernetes CronJob scheduler 11 min read
  4. 4 Resources and Scheduling 6 lessons · ~1h 36m
    1. Part 26 Pod resource requests and limits 16 min read
    2. Part 27 Monitor pod and container resource usage 12 min read
    3. Part 28 Namespace ResourceQuota 13 min read
    4. Part 29 PodDisruptionBudget 17 min read
    5. Part 30 Node affinity and anti-affinity 18 min read
    6. Part 31 Set ulimit in Kubernetes pods 20 min read
  5. 5 Storage and Volumes 2 lessons · ~25 min
    1. Part 32 Kubernetes volumes overview 10 min read
    2. Part 33 Persistent volumes and PVCs 15 min read
  6. 6 ConfigMaps and Secrets 6 lessons · ~57 min
    1. Part 34 Kubernetes ConfigMaps 13 min read
    2. Part 35 Kubernetes Secrets 12 min read
    3. Part 36 mountPath vs subPath 10 min read
    4. Part 37 Projected volumes (multiple secrets, one dir) 6 min read
    5. Part 38 Mount ConfigMap as file in existing directory 5 min read
    6. Part 39 Update ConfigMaps and Secrets without pod restart 11 min read
  7. 7 Networking and Services 5 lessons · ~1h 14m
    1. Part 40 Kubernetes networking model 12 min read
    2. Part 41 Services — ClusterIP, NodePort, LoadBalancer 17 min read
    3. Part 42 Kubernetes DNS troubleshooting (CoreDNS recovery) 18 min read
    4. Part 43 Expose services with Ingress 16 min read
    5. Part 44 kubectl port-forward 11 min read
  8. 8 Security 7 lessons · ~1h 21m
    1. Part 45 Authentication and authorization 11 min read
    2. Part 46 ServiceAccounts 10 min read
    3. Part 47 Kubernetes RBAC 10 min read
    4. Part 48 SecurityContext explained 12 min read
    5. Part 49 SecurityContext capabilities 10 min read
    6. Part 50 Create a privileged pod (and why not to) 14 min read
    7. Part 51 Pod Security Standards and admission 14 min read
  9. 9 Health Checks and Probes 1 lesson · ~11 min
    1. Part 52 Liveness and readiness probes 11 min read
  10. 10 Helm Charts 5 lessons · ~53 min
    1. Part 53 Helm charts introduction 12 min read
    2. Part 54 Helm named templates 15 min read
    3. Part 55 Helm hooks with examples 14 min read
    4. Part 56 Helm hook weight and ordering 7 min read
    5. Part 57 Fix "rendered manifests already exist" (Helm) 5 min read
  11. 11 Operations and Maintenance 3 lessons · ~1h 5m
    1. Part 58 Upgrade a Kubernetes cluster 27 min read
    2. Part 59 Add, remove, reset, and rejoin cluster nodes 16 min read
    3. Part 60 Debug OOMKilled (exit code 137) 22 min read

Hands-on labs

6 guided builds you run yourself

  1. Build a multi-node cluster with kubeadm

    Prepare each node, initialize the control plane, install Calico, and join workers until the cluster reports Ready.

  2. Run Kubernetes on AWS EC2

    Build a two-node kubeadm cluster on Ubuntu instances, open the right security group ports, and schedule a test Deployment.

  3. Update configuration in running Pods

    See which ConfigMap and Secret changes reach a running Pod on their own and which ones need a rollout.

  4. Expose applications through Ingress

    Route host and path rules to backend Services and add TLS from a Secret.

  5. Build, package, and roll back a Helm chart

    Install and customize a chart, roll a release back, then create, render, and package a chart of your own.

  6. Upgrade a cluster with kubeadm

    Back up etcd, switch the package repository, and upgrade the control plane and each worker one minor version.

Where to go after this course

  • Kubernetes documentationThe upstream reference for every object in this course, and the main site you may open during the CKA and CKAD exams.
  • CKA courseAdds etcd backups, highly available control planes, Gateway API, and deeper troubleshooting on the same kubeadm lab.
  • CKAD courseAdds deployment strategies, Kustomize, API deprecations, and 25 practice tasks for application developers.
  • Kubernetes Operator courseFor when plain YAML and Helm stop being enough and you need a controller that manages your application.

Frequently Asked Questions

Should I learn on Minikube, kind, or kubeadm?

Start on whichever gets you a working cluster fastest. Minikube and kind are built for learning and run on a single machine. kubeadm is the officially supported tool for clusters you manage yourself, and it is what the CKA exam expects you to use, so move to it once Pods and Services make sense. This course starts on Minikube and switches to a multi-node kubeadm cluster, and the Operator course uses kind.

Do I need Docker to learn Kubernetes?

Not on the cluster. Kubernetes nodes run containers through a container runtime such as containerd, which is what the kubeadm lessons install. You still need a tool on your workstation to build and push images. Docker and Podman both work, and the image build lessons on this site use Podman.

Which Kubernetes version should I install?

Install a release the project still supports. Kubernetes maintains the three most recent minor releases, currently 1.37, 1.36, and 1.35, and each gets about a year of patches. These lessons use 1.36, which is supported until June 2027. Keep kubectl within one minor version of your cluster, as the version skew policy requires. The releases page lists current versions and end-of-life dates.

Is this course enough to pass the CKA or CKAD?

It covers much of the shared ground, but not the exam-specific topics. etcd backup and restore, highly available control planes, Gateway API, and Kustomize are in the CKA course, and deployment strategies, API deprecations, and timed practice tasks are in the CKAD course. Use this course for the fundamentals, then switch to the course for your exam.

Can I run Kubernetes on Windows or macOS?

You can learn from either. The Kubernetes control plane is designed to run on Linux, so local tools such as Minikube start a Linux VM or container for you. The Minikube lesson in this course runs an Ubuntu node in VirtualBox on a Windows host. For the kubeadm lessons, run Linux VMs under whatever hypervisor your machine has.

Deepak Prasad

R&D Engineer

Founder of GoLinuxCloud with 15+ years of expertise in Linux, Python, Go, Laravel, DevOps, Kubernetes, Git, Shell scripting, OpenShift, AWS, Networking, and Security. With extensive experience, he excels across development, DevOps, networking, and security, delivering robust and efficient solutions for diverse projects.

  • Go (programming language)
  • Python (programming language)
  • DevOps
  • Computer Security
  • Cloud Computing
  • Kubernetes
  • Linux
  • Ansible (software)