Learn Devops The Complete Kubernetes

Kubernetes will run and manage your containerized applications. Learn how to build, deploy, use, and maintain Kubernetes

Last updated 2022-01-10 | 4.4

- Install and configure Kubernetes (on your laptop/desktop or production grade cluster on AWS)
- Use Docker Client (with kubernetes)
- kubeadm
- kops
- or minikube to setup your cluster
- Be able to run stateless and stateful applications on Kubernetes

What you'll learn

Install and configure Kubernetes (on your laptop/desktop or production grade cluster on AWS)
Use Docker Client (with kubernetes)
kubeadm
kops
or minikube to setup your cluster
Be able to run stateless and stateful applications on Kubernetes
Use Healthchecks
Secrets
ConfigMaps
placement strategies using Node/Pod affinity / anti-affinity
Use StatefulSets to deploy a Cassandra cluster on Kubernetes
Add users
set quotas/limits
do node maintenance
setup monitoring
Use Volumes to provide persistence to your containers
Be able to scale your apps using metrics
Package applications with Helm and write your own Helm charts for your applications
Automatically build and deploy your own Helm Charts using Jenkins
Install and use kubeless to run functions (Serverless) on Kubernetes
Install and use Istio to deploy a service mesh on Kubernetes
Continuously Develop using Skaffold

* Requirements

* The first lectures in the course will explain how to install the software. You can choose between a local setup (docker client with kubernetes or minikube)
* or a full production grade cluster on AWS
* If you want to install Kubernetes on-prem
* there are lectures available in this course covering kubeadm
* which can install kubernetes on a wide variety of environments
* Knowledge about Linux / Docker / AWS is a plus
* but not mandatory to be able to do the course

Description

  • Install and configure Kubernetes (on your laptop/desktop or production grade cluster on AWS)
  • Use Docker Client (with kubernetes), kubeadm, kops, or minikube to setup your cluster
  • Be able to run stateless and stateful applications on Kubernetes
  • Use Healthchecks, Secrets, ConfigMaps, placement strategies using Node/Pod affinity / anti-affinity
  • Use StatefulSets to deploy a Cassandra cluster on Kubernetes
  • Add users, set quotas/limits, do node maintenance, setup monitoring
  • Use Volumes to provide persistence to your containers
  • Be able to scale your apps using metrics
  • Package applications with Helm and write your own Helm charts for your applications
  • Automatically build and deploy your own Helm Charts using Jenkins
  • Install and use kubeless to run functions (Serverless) on Kubernetes
  • Install and use Istio to deploy a service mesh on Kubernetes
  • Continuously Develop using Skaffold

Course content

14 sections • 149 lectures

Course Introduction Preview 03:14

Support and Course Materials Preview 00:50

Procedure Document Preview 03:37

Kubernetes Introduction Preview 02:51

What is kubernetes, why would you use it, what benefits does it give you

Containers Introduction Preview 05:29

On Kubernetes you run containers. In this lecture you'll learn what containers are all about.

Kubernetes Setup Preview 02:10

Kubernetes can run almost anywhere. You can run it on-premise or in the cloud.

Local Setup with minikube Preview 01:20

This lectures explains what minikube is, a piece of software that can help you run kubernetes locally.

Demo: Minikube Preview 11:49

This demo shows you how to run Kubernetes using Minikube.

Installing Kubernetes using the Docker Client Preview 04:26

As an alternative to Minikube, you can install kubernetes using the official docker client for Mac / Windows

Minikube vs Docker Client vs Kops vs Kubeadm Preview 01:55

The difference between Minikube vs Docker client vs Kops vs Kubeadm: which one to use when

Introduction to Kops Preview 01:43

An introduction to Kops - Kubernetes Operations. Software to provision and manage Kubernetes on AWS.

Demo: Preparing kops install Preview 03:02

Kops only works on Mac / Linux, so you'll need to setup a vagrant box to run kops. If you are running already MacOS or Linux, and you don't want to be working in a VM, you can skip this step.

Demo: Preparing AWS for kops install Preview 08:55

You first need to open an AWS account, add an IAM user for kops and setup DNS using route53

Demo: DNS Troubleshooting (Optional) Preview 05:57

The DNS settings need to be correct for your kubernetes cluster to work. Follow this lecture if you have issues with your DNS settings.

Demo: Cluster setup on AWS using kops Preview 10:37

Once the AWS setup is complete, you can use kops to setup the Kubernetes cluster on AWS

Building docker images Preview 06:20

Kubernetes only runs containers. In this lecture you learn how to build your application in a container.

Demo: Building docker images Preview 05:02

In this demo I show you how to build a NodeJS example app in a container.

Docker Image Registry Preview 03:03

Once you have built a container, you need to put it on a registry, so Kubernetes can download it. You have public and private registries. Putting a container on a public registry is free.

Demo: Pushing Docker Image Preview 03:09

In this demo I show you how to push the container with our app to Docker Hub

Running first app on Kubernetes Preview 04:17

THis lecture explains how to run a first application on Kubernetes

Demo: Running first app on Kubernetes Preview 05:10

Once the first app is available on Docker Hub, I show you how to run this app on our Kubernetes cluster

Demo: Useful commands Preview 03:28

In this demo I show you some useful commands you can use to manage your containers on Kubernetes

Service with LoadBalancer Preview 02:22

If you're running your cluster on AWS, you can create a LoadBalancer (AWS ELB) for your application

Demo: Service with AWS ELB LoadBalancer Preview 04:56

In this demo I show you how to add an ELB (Elastic Load Balancer) to the example app

Recap: introduction to Kubernetes Preview 06:14

In this lecture I recap the most important concepts from the first section

Practice test

Now that we have covered quite some ground, let's do a practice test

Node Architecture Preview 04:37

In this lecture I explain the Kubernetes node architecture

Replication Controller Preview 05:09

You can use the replication controller to spin up multiple instances of your application

Demo: Replication Controller Preview 05:08

This demo shows you how to spin up multiple instances of your application

Deployments Preview 06:15

Deployment objects allow a better abstraction of an application running on Kubernetes. You can update your application version easily and roll-back if something goes wrong.

Demo: Deployments Preview 08:33

In this demo I show you how our example application can be a deployment.

Services Preview 04:02

Exposing our application for external traffic can be done using services

Demo: Services Preview 04:33

In this demo I show you how to expose our example app

Labels Preview 03:15

Labels can be used to tag objects

Demo: NodeSelector using Labels Preview 03:12

Labels together with NodeSelectors can be used to run pods on a specific node

Healthchecks Preview 02:17

Healthchecks can be used to periodically check whether our app in the pod is still working

Demo: Healthchecks Preview 03:01

In this demo I show you how to use healthchecks

Readiness Probe Preview 00:55

Demo: Liveness and Readiness probe Preview 03:09

Pod State Preview 03:29

Pod Lifecycle Preview 03:21

Demo: Pod Lifecycle Preview 05:27

Secrets Preview 06:59

Application credentials (for instance to access a database) can be stored in secrets.

Demo: Credentials using Volumes Preview 03:48

Credentials can be mounted as a volume in a pod. This demo shows you how to do that.

Demo: Running Wordpress on Kubernetes Preview 09:30

First attempt to run a wordpress on Kubernetes. In a later version I'll show you a better way of running Wordpress on Kubernetes

WebUI Preview 01:23

Kubernetes also has a Web UI, a dashboard that makes it easy to use kubernetes

Demo: Web UI in Kops Preview 03:36

Demo explaining how to add the web UI in kops

Demo: WebUI Preview 02:43

In this brief demo I give an overview how to use the dashboard

Practice test II

Service Discovery Preview 05:59

You can do service discovery using DNS.

Demo: Service Discovery Preview 08:41

This is a demo showing you how service discovery works

ConfigMap Preview 04:00

Containers are immutable. You can still use ConfigMaps for dynamic configuration data that needs to be present on the container.

Demo: ConfigMap Preview 05:12

In this demo I show you how to use ConfigMap to create a custom configuration file for a standard nginx container

Ingress Controller Preview 03:18

Ingress controller allows you to have a reverse proxy / load balancer within your Kubernetes cluster and without using an external load balancer.

Demo: Ingress Controller Preview 05:42

In this demo I show you how to use the built-in kubernetes ingress controller

External DNS Preview 03:37

Demo: External DNS Preview 05:33

Volumes Preview 05:36

If you want to run stateful applications on Kubernetes, you need volumes.

Demo: Volumes Preview 06:12

In this demo I show you how to use volumes in Kubernetes

Volumes Autoprovisioning Preview 03:15

Kubernetes can auto-provision volumes for you, no need to manually create an EBS volume on AWS

Demo: Wordpress With Volumes Preview 15:24

Now we know enough to use volumes to launch a fully working wordpress

Pod Presets Preview 02:45

Demo: Pod Presets Preview 05:27

StatefulSets Preview 03:25

Pet Sets enables you to run distributed applications and databases on Kubernetes, like ElasticSearch, MySQL Cluster, or Cassandra

Demo: StatefulSets Preview 08:20

In this demo I show you how to use StatefulSets with Cassandra

Daemon Sets Preview 01:57

Daemon Sets will make sure a pod is running on every node

Resource Usage Monitoring Preview 03:04

Resource Usage Monitoring using influxdb and grafana will give you application metrics

Demo: Resource Monitoring using Metrics Server Preview 04:17

Starting from 1.11 Heapster will be deprecated. The replacement is the Metrics Server. This lecture explains the difference with heapster and how to install the Metrics Service.

Demo: Resource Usage Monitoring Preview 05:14

This demo explains how to setup Resource Usage Monitoring using heapster + influxdb + grafana

Autoscaling Preview 04:13

Autoscaling can scale pods horizontally based on predefined targets

Demo: Autoscaling Preview 04:24

In this demo I show you how horizontal pod autoscaling (hpa) works

Affinity / Anti-Affinity Preview 06:40

This lectures explains what Node and Interpod Affinity / Anti-affinity is and what the difference is between node affinity and the NodeSelector

Demo: Affinity / Anti-Affinity Preview 05:44

This is a demo showing how Node Affinity works

Interpod Affinity and Anti-affinity Preview 06:47

Demo: Interpod Affinity Preview 03:32

Demo: Interpod Anti-Affinity Preview 04:44

Taints and Tolerations Preview 08:20

This lecture explains taints and tolerations, which is the opposite of node affinity

Demo: Taints and Tolerations Preview 05:17

Custom Resource Definitions (CRDs) Preview 02:11

This explains what Custom Resource Definitions are

Operators Preview 03:12

Demo: postgresql-operator Preview 12:23

Quiz

The Kubernetes Master Services Preview 03:00

This lectures gives an architecture overview of the master services

Resource Quotas Preview 05:17

As an administrator, you can implement resource quotas to make sure one team or one person doesn't take up all resources

Namespaces Preview 03:28

Namespaces can logically separate a Kubernetes cluster

Demo: Namespace quotas Preview 05:55

In this demo I explain how to implement namespace quotas

User Management Preview 03:43

Users can be added to your Kubernetes cluster. This lecture explains authentication and authorization

Demo: Adding Users Preview 03:16

In this demo I show you how to add users using certificates

RBAC Preview 04:18

This lecture explains authorization in Kubernetes using RBAC

Demo: RBAC Preview 06:54

Networking Preview 05:33

Every pod needs a unique IP. Not all infrastructure can easily handle this. CNI and overlay networks can help.

Node Maintenance Preview 01:59

Sometimes you want to add / remove nodes. This is how it is done

Demo: Node Maintenance Preview 01:23

This demo shows how to drain a Kubernetes node

High Availability Preview 02:35

Once you put a Kubernetes cluster in production, you are going to want to have full high availability. This lecture explains you how to achieve that.

Demo: High Availability Preview 02:36

This demo shows how to enable HA on your AWS Kubernetes cluster using kops

TLS on ELB using Annotations Preview 05:35

Demo: TLS on ELB Preview 08:56

Admission Controllers Preview 07:15

This lecture describes what admission controllers are in Kubernetes. It also explains what the admission controllers that are enabled by default do.

MutatingWebhook and ValidatingWebhook Preview 05:21

Introduction to the MutatingWebhook and ValidatingWebhook

Demo: Mutatingwebhook (part I) Preview 07:53

This demo shows you how the MutatingWebhook works. For the webhook itself, we're using Golang.

Demo: Mutatingwebhook (part II) Preview 12:19

This demo shows you how the MutatingWebhook works. For the webhook itself, we're using Golang.

Demo: MutatingWebhook (part III) Preview 09:21

This demo shows you how the MutatingWebhook works. For the webhook itself, we're using Golang.

Pod Security Policies Preview 02:26

Pod Security Policies allow you to fine-grain control pod security.

Demo: Pod Security Policies Preview 13:01

etcd Preview 03:02

etcd is the backend of Kubernetes. This lecture explains what etcd is.

The Raft Consensus Algorithm Preview 09:12

Etcd uses the raft consensus algorithm. This lecture explains how raft works.

Demo: etcd Backup & Restore Preview 19:41

This demo shows how to backup and restore an etcd cluster when using kops

Introduction to Helm Preview 03:58

Demo: Helm Preview 08:23

Creating your own Helm Charts Preview 02:03

Demo: Creating your own Helm Charts Preview 07:04

Demo: nodejs app Helm Chart Preview 13:15

Demo: Setting up a Helm Repository on S3 Preview 05:55

Demo: Building and Deploying Helm Charts with Jenkins Preview 13:19

Introduction to Skaffold Preview 03:55

Continuous deployment with skaffold, an open source tool by Google

Demo: Skaffold Preview 08:45

A demo showing how you can develop a golang application in vscode and have every change deployed almost instantly to your  Kubernetes cluster

Introduction to Flux Preview 04:12

Lecture to give an introduction to Flux and GitOps

Demo: setting up flux Preview 10:27

Demo to show how to setup flux, link it to a git repository, and deploy manifests from git to a Kubernetes cluster

Introduction to Serverless Preview 05:44

Introduction to Kubeless Preview 02:22

Demo: Creating Functions with Kubeless Preview 13:05

Demo: Triggering Kubeless Functions with Kafka Preview 08:07

Introduction to Istio Preview 07:30

Demo: Istio Installation Preview 06:08

Demo: An Istio enabled app Preview 10:36

Demo: Advanced routing with Istio Preview 06:46

Demo: Canary Deployments Preview 03:36

Demo: Retries Preview 08:05

Mutual TLS Preview 03:58

Demo: Mutual TLS Preview 11:11

RBAC with Istio Preview 05:17

Demo: RBAC with Istio Preview 09:21

End-user authentication with istio (JWT) Preview 10:26

Demo: End-user authentication with istio (JWT) Preview 11:29

Demo: Istio Egress traffic Preview 04:02

Demo: Distributed Tracing with Jaeger Preview 07:43

Istio's Grafana Metrics Preview 04:34

Introduction to kubeadm Preview 04:31

Installing Kubernetes using kubeadm on DigitalOcean

Demo: kubeadm (part I) Preview 05:14

Demo of installing kubernetes using kubeadm on DigitalOcean

Demo: kubeadm (part II) Preview 10:12

Demo of installing kubernetes using kubeadm on DigitalOcean

Introduction to EKS Preview 03:18

A managed kubernetes cluster can be setup using AWS EKS. This lecture gives an introduction to EKS

Demo: EKS setup using eksctl Preview 11:46

In this demo I show you how to setup a managed kubernetes cluster using the eksctl tool

IAM Roles for ServiceAccounts Preview 03:59

IAM Roles for ServiceAccounts enable you to attach roles to pods using ServiceAccounts.

Demo: IAM Roles for ServiceAccounts Preview 09:49

A demo showing you how to setup an EKS cluster with IAM Roles for ServiceAccounts

Managing TLS Certs with Cert-Manager Preview 06:24

Demo: Cert-Manager (Part I) Preview 05:29

In this lecture I show you how to use the cert-manager with let's encrypt to retrieve and auto-renew your own TLS certificates

Demo: Cert-Manager (Part II) Preview 15:25

In this lecture I show you how to use the cert-manager with let's encrypt to retrieve and auto-renew your own TLS certificates

Congratulations Preview 00:39

Bonus Lecture: Advanced Kubernetes Usage Course Preview 03:35

Once you finished this course, it's time for the next one! The Advanced Kubernetes Usage course covers a lot more Kubernetes topics.