Learn DevOps: The Complete Kubernetes Course
4.3 (6,551 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
39,447 students enrolled

Learn DevOps: The Complete Kubernetes Course

Kubernetes will run and manage your containerized applications. Learn how to build, deploy, use, and maintain Kubernetes
Bestseller
4.3 (6,551 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
39,447 students enrolled
Created by Edward Viaene
Last updated 2/2019
English
English, French [Auto-generated], 5 more
  • German [Auto-generated]
  • Indonesian [Auto-generated]
  • Italian [Auto-generated]
  • Portuguese [Auto-generated]
  • Spanish [Auto-generated]
Current price: $11.99 Original price: $39.99 Discount: 70% off
3 days left at this price!
30-Day Money-Back Guarantee
This course includes
  • 11.5 hours on-demand video
  • 1 article
  • 2 Practice Tests
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to Udemy's top 3,000+ courses anytime, anywhere.

Try Udemy for Business
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
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

This course will help you to gain understanding how to deploy, use, and maintain your applications on Kubernetes. If you are into DevOps, this is a technology you need to master. Kubernetes has gained a lot of popularity lately and it is a well sought skill by companies.

This course is updated frequently to include the features of latest releases!

When Google started running containers a decade ago, nobody could reach this kind of infrastructure agility and efficiency. Using this knowledge, Google released Kubernetes as an free and open source project. Nowadays Kubernetes is used by small companies and big enterprises who want to gain the efficiency and velocity Google has.

You can containerize applications using Docker. You can then run those containers on your servers, but there's no way you can manage those efficiently without extra management software. Kubernetes is an orchestrator for your containers that will create, schedule and manage your containers on a cluster of servers. Kubernetes can run on-premise or in the cloud, on a single machine or on thousands of machines.

I will show you how to build apps in containers using docker and how to deploy those on a Kubernetes cluster. I will explain you how to setup your cluster on your desktop, or on the cloud using AWS. I use a real world example app (Wordpress with MySQL - blogging software) to show you the real power of Kubernetes: scheduling stateless and stateful applications.

The introduction lectures that show you the Kubernetes desktop installation are free to preview, so you can already have a go at it before buying the course!

This course also has Closed Captions (English subtitles)

Who this course is for:
  • There is no prior knowledge needed, but a dev/ops/cloud/linux/networks background will definitely help
  • The course optionally uses Kubernetes on AWS. If you want to learn more about AWS itself, you will need to read some AWS documentation or take another AWS course. The course only explains how to use Kubernetes on AWS, it doesn't explain how to use AWS itself. Still, all steps that you need to follow are explained in this course.
Course content
Expand all 128 lectures 11:23:55
+ Introduction to Kubernetes
22 lectures 01:38:38

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

Preview 02:51

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

Preview 05:29

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

Preview 02:10

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

Preview 01:20

This demo shows you how to run Kubernetes using Minikube.

Preview 06:50

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

Preview 04:26

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

Preview 01:55

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

Introduction to Kops
01:43

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 kops install
03:02

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

Demo: Preparing AWS for kops install
08:27

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: DNS Troubleshooting (Optional)
05:57

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

Demo: Cluster setup on AWS using kops
10:37

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

Preview 06:20

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

Demo: Building docker images
05:02

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.

Docker Image Registry
03:03

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

Demo: Pushing Docker Image
03:09

THis lecture explains how to run a first application on Kubernetes

Running first app on Kubernetes
04:17

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

Demo: Running first app on Kubernetes
05:10

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

Demo: Useful commands
03:28

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

Service with LoadBalancer
02:22

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

Demo: Service with AWS ELB LoadBalancer
04:46

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

Recap: introduction to Kubernetes
06:14

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

Practice test
4 questions
+ Kubernetes Basics
22 lectures 01:34:22

In this lecture I explain the Kubernetes node architecture

Node Architecture
04:37

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

Replication Controller
05:09

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

Demo: Replication Controller
05:08

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.

Deployments
06:15

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

Demo: Deployments
08:33

Exposing our application for external traffic can be done using services

Services
04:02

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

Demo: Services
04:33

Labels can be used to tag objects

Labels
03:15

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

Demo: NodeSelector using Labels
03:12

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

Healthchecks
02:17

In this demo I show you how to use healthchecks

Demo: Healthchecks
03:01
Readiness Probe
00:55
Demo: Liveness and Readiness probe
03:09
Pod State
03:29
Pod Lifecycle
03:21
Demo: Pod Lifecycle
05:27

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

Secrets
06:59

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

Demo: Credentials using Volumes
03:48

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

Demo: Running Wordpress on Kubernetes
09:30

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

WebUI
01:23

Demo explaining how to add the web UI in kops

Demo: Web UI in Kops
03:36

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

Demo: WebUI
02:43
Practice test II
6 questions
+ Advanced Topics
32 lectures 02:54:20

You can do service discovery using DNS.

Service Discovery
05:59

This is a demo showing you how service discovery works

Demo: Service Discovery
08:41

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

ConfigMap
04:00

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

Demo: ConfigMap
05:12

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

Ingress Controller
03:18

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

Demo: Ingress Controller
05:37
External DNS
03:37
Demo: External DNS
05:33

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

Volumes
05:36

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

Demo: Volumes
06:12

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

Volumes Autoprovisioning
03:15

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

Demo: Wordpress With Volumes
15:24
Pod Presets
02:45
Demo: Pod Presets
05:27

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

StatefulSets
03:25

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

Demo: StatefulSets
08:20

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

Daemon Sets
01:57

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

Resource Usage Monitoring
03:04

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 Monitoring using Metrics Server
04:17

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

Demo: Resource Usage Monitoring
05:14

Autoscaling can scale pods horizontally based on predefined targets

Autoscaling
04:13

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

Demo: Autoscaling
04:24

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

Affinity / Anti-Affinity
06:40

This is a demo showing how Node Affinity works

Demo: Affinity / Anti-Affinity
05:44
Interpod Affinity and Anti-affinity
06:47
Demo: Interpod Affinity
03:32
Demo: Interpod Anti-Affinity
04:44

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

Taints and Tolerations
08:20
Demo: Taints and Tolerations
05:17

This explains what Custom Resource Definitions are

Custom Resource Definitions (CRDs)
02:11
Operators
03:12
Demo: postgresql-operator
12:23
Quiz
7 questions
+ Kubernetes Administration
15 lectures 01:04:28

This lectures gives an architecture overview of the master services

The Kubernetes Master Services
03:00

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

Resource Quotas
05:17

Namespaces can logically separate a Kubernetes cluster

Namespaces
03:28

In this demo I explain how to implement namespace quotas

Demo: Namespace quotas
05:55

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

User Management
03:43

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

Demo: Adding Users
03:16

This lecture explains authorization in Kubernetes using RBAC

RBAC
04:18
Demo: RBAC
06:54

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

Networking
05:33

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

Node Maintenance
01:59

This demo shows how to drain a Kubernetes node

Demo: Node Maintenance
01:23

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.

High Availability
02:35

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

Demo: High Availability
02:36
TLS on ELB using Annotations
05:35
Demo: TLS on ELB
08:56
+ Packaging and Deploying on Kubernetes
7 lectures 53:57
Introduction to Helm
03:58
Demo: Helm
08:23
Creating your own Helm Charts
02:03
Demo: Creating your own Helm Charts
07:04
Demo: nodejs app Helm Chart
13:15
Demo: Setting up a Helm Repository on S3
05:55
Demo: Building and Deploying Helm Charts with Jenkins
13:19
+ Serverless on Kubernetes
4 lectures 29:18
Introduction to Serverless
05:44
Introduction to Kubeless
02:22
Demo: Creating Functions with Kubeless
13:05
Demo: Triggering Kubeless Functions with Kafka
08:07
+ Microservices
15 lectures 01:50:42
Introduction to Istio
07:30
Demo: Istio Installation
06:08
Demo: An Istio enabled app
10:36
Demo: Advanced routing with Istio
06:46
Demo: Canary Deployments
03:36
Demo: Retries
08:05
Mutual TLS
03:58
Demo: Mutual TLS
11:11
RBAC with Istio
05:17
Demo: RBAC with Istio
09:21
End-user authentication with istio (JWT)
10:26
Demo: End-user authentication with istio (JWT)
11:29
Demo: Istio Egress traffic
04:02
Demo: Distributed Tracing with Jaeger
07:43
Istio's Grafana Metrics
04:34
+ Installing Kubernetes using kubeadm
3 lectures 19:57

Installing Kubernetes using kubeadm on DigitalOcean

Introduction to kubeadm
04:31

Demo of installing kubernetes using kubeadm on DigitalOcean

Demo: kubeadm (part I)
05:14

Demo of installing kubernetes using kubeadm on DigitalOcean

Demo: kubeadm (part II)
10:12
+ On-Prem or Cloud Agnostic Kubernetes
3 lectures 27:18
Managing TLS Certs with Cert-Manager
06:24

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 I)
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)
15:25