Self-paced Kubernetes online course

A hands-on course on mastering Kubernetes and the tools you'll need to build real, working applications at scale.

Learn Kubernetes online
You may feel stranded while learning Kubernetes

You tried to learn Kubernetes in a weekend and realised that you need a year worth of weekends to master it.

There's so much to learn that it makes your head spin.

Debugging a fault in Kubernetes can be frustrating when 80% of the issues are network related and you're not already a network engineer, a sysadmin, or an ops person.

When you don't have the time to tackle networking and system administration, learning how the traffic flows in the cluster can be confusing.

In Kubernetes everything feels like it's on fire
Kubernetes is hard

There's plenty of tutorials that look simple, but they are nothing but frustrating. You're spending hours debugging, reading Github issues, and going around in loops.

When the instruction doesn't work, or a component doesn't load, there's always someone recommending upgrading and downgrading. Which one is right? Who should you trust?

  • You'll learn how to package apps into Linux containers
  • Then deploy them into a cluster
  • And upgrade them to a new version with zero downtime using rolling updates, canary and blue-green deployments.
  • You'll get familiar with Kubernetes core components
  • and build your local three-node cluster using kubeadm
  • only to take down one node at the time and test the fault tolerance
  • You'll map the end-to-end journey of network packets from the internet into your apps
  • And learn how to expose your services using load balancers and ingress controllers
  • You'll also learn how to create your Kubernetes network and connect multiple clusters
  • You'll practice deploying databases and stateful applications
  • and how you can manage database clustering using operators
  • And You'll learn to not repeat yourself using an engine to template resources

Kubernetes doesn't know how to deploy Java, Node.js, or .NET applications. The only thing it can deal with is Linux containers. But how do these Linux containers work? Why should you care? Are those necessary to master Kubernetes?

You will learn how to package and run applications in Docker containers. The module covers the following topics:

  • Containers vs VMs
  • Understanding process isolation
  • Is Docker the only one?
  • Docker client-server architecture
  • Running containers
  • Building Docker images
  • Mounting volumes
  • Exposing ports
  • Managing containers lifecycle
  • Injecting environment variables
  • Debugging running containers
Docker
Containers vs VMs

Learn the basics of Kubernetes and deploy your first application to minikube — a Kubernetes cluster for local development. Learn how to declare resources in YAML files, how to send those to the cluster and retrieve them. Understand how Kubernetes reconciles the desired state of the infrastructure.

You will learn the basics of Kubernetes and how to deploy Linux containers. The module covers the following topics:

  • Managing containers at scale
  • The battle of container orchestrators
  • Visualising the data centre as a single VM
  • The best Tetris player
  • Exploring an API over your infrastructure
  • What are Pods, Services, and Igresses?
  • Creating a local cluster with minikube
  • Creating a Deployment
  • Exposing Deployments
  • What is a Pod?
  • Scaling applications
  • Testing resiliency
Kubernetes Open API definition
Playing tetris with Kubernetes

Every time you deploy new features in production you don't want to stop your service, load a new version and remove the holding page. Ideally, you should be able to transition to a new version of your application without anyone noticing any downtime. You can leverage Kubernetes to do that.

You will learn different techniques to deploy your applications with zero downtime. The module covers the following topics:

  • Monitoring for uptime
  • Liveness probe
  • Readiness probe
  • Executing zero downtime deployments
  • Using labels and selectors
  • Releasing features with canary deploymentss
  • Releasing features with blue-green deployments
  • Preparing for rollbacks
Liviness probe
Rolling updates

When you deploy applications to Kubernetes you don't decide in which server a container is scheduled. Kubernetes abstracts your data centre into a single entity, and you don't get to worry about the underlying resources. But how does Kubernetes work its magic?

You will learn the core components in Kubernetes and how they work. The module covers the following topics:

  • Single and multi-node clusters
  • Examining the control plane
  • Persisting changes in etcd
  • Syncing changes with RAFT
  • Event-based architecture
  • Understanding the kubelet
  • Verifying "no single point of failure"
  • Setting up a multi-master cluster
  • Investigating multi-master setup in EKS
  • Exploring multi-master setup in Monzo
  • Creating a 3 node cluster with kubeadm
  • Installing an overlay network
  • Installing an Ingress controller
  • Exploring the API without kubectl
  • Taking down the cluster one node at the time
Multi-node cluster
Monzo multi-master setup

How do you route traffic from the internet to your applications? How can you secure your communication with TLS? How about path routing to different services? In this module, you will explore how the traffic is routed in the cluster.

You will learn how the traffic flows inside the cluster. You will also learn how to expose your apps to the public internet. The module covers the following topics:

  • Network routing in Linux
  • Understanding network requirements
  • Exploring the Endpoints
  • Balancing in-cluster traffic
  • Routing traffic with kube-proxy
  • CRI, CNI, CSI: interfaces for the kubelet
  • Choosing between latency and load balancing
  • Pros and cons of the 4 types of Services
  • Discovering Services
  • Routing traffic with an Ingress controller
  • End-to-end traffic journey
End-to-end traffic flow
kube-proxy

How does Kubernetes store files and state? Can you host databases in it? Should you? Can you extract configurations and share them with different deployments? How do you make sure that your storage layer is replicated and persisted even if a node becomes unavailable?

You will learn how to persist data in Kubernetes. The module covers the following topics:

  • Managing configurations
  • Managing secrets
  • Using Kubernetes Volumes
  • Creating Persistent Volumes
  • Creating Persistent Volume Claims
  • Provisioning volumes dynamically
  • Managing stateful applications
  • Creating volumes on bare metal
  • Deploying a single database with persitence
  • Deploying a clustered database with persitence
  • Designing storage that can span multiple nodes
Deploying a clustered PostgreSQL
Clustered PostgreSQL with OpenEBS

Resources in Kubernetes are described as YAML files. If you wish to have the same resources for different environments such as development, preproduction and production you may be tempted to copy the files three times. Or you could use a templating engine. Learn how to do precisely that with Helm — the Kubernetes package manager.

You will learn how to template resources for different environments. The module covers the following topics:

  • Creating reusable templates
  • Helm's templating engine
  • Understanding the Helm architecture
  • Templating resources with Go and Sprig
  • Managing releases with Helm
  • Writing helper functions
  • Reverting changes with rollbacks
  • Depending on other charts
  • Storing reusable templates in repositories
Helm architecture
Templating resources

We care more about our students' success than taking their money.

If you follow the lectures and practice the material and still DO NOT feel like you are making progress 30 days after you begin doing the work, we will try to work with you to identify what's missing. And if that doesn't work, we'll give you a full refund.

We're honest to the end about the level of effort, skills, and other ingredients required.

This is not a "master Kubernetes in 3 hours" or watch someone else deploying containers in Kubernetes video course. Completing the Learnk8s Academy's modules takes time, and effort… but it does work. The learning curve is steep, then the plateau of usefulness is very long and smooth. It's a great feeling operating Kubernetes after you've mastered it.

Kubernetes is here to stay: companies asuch as Google, IBM and Alibaba are investing on it. The demand for engineers grows exponentially. Learn Kubernetes now and stay ahead of the game.

The systems, techniques, and processes you'll learn in the Learnk8s Academy have been developed over 2+ years during our hands-on, instructor-led workshops.