Learn Devops The Complete Kubernetes
Tags: Kubernetes , DevOps
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
* 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.