Kubernetes Certified Administrator

Tags:

Mastering container orchestration with Kubernetes one step at a time. Prepare for CKA Exam

Last updated 2022-01-10 | 4.4

- Understand the need for a Container Orchestration System and Key Features of Kubernetes
- Install and configure a Kubernetes Cluster
- Create deployments with replicasets and setup highly available self healing application infrastructure

What you'll learn

Understand the need for a Container Orchestration System and Key Features of Kubernetes
Install and configure a Kubernetes Cluster
Create deployments with replicasets and setup highly available self healing application infrastructure
Setup service discovery and load balancing with Kubernetes Services
understand the service networking
Manage different types of workloads with Daemonsets
Statefulsets
Crons and Jobs
Understand how persistent storage works with PVs
PVCs
Storageclasses and dynamic provisioners
Setup Auto Scaling with Horizontal Pod Autoscaler
Create RBAC Policies
Roles/ClusterRoles and Bindings

* Requirements

* Docker Fundamentals - Running Containers
* Building Images with Dockerfiles etc.
* Basic YAML syntax
* Basic Linux Commands

Description

Just like how real world shipping containers revolutionised the way goods are packaged, handled and transported across the globe  industry, Docker along with open container ecosystem is transforming the software delivery by brining in the standardisation.  Docker offers a way to run isolated processes and also allows one to package an application along with its run time environment using primitives such as dockerfiles.  However, when it comes to running docker in a production like environment, with container work loads  spanning across more than one nodes,  you need a COE ( Container Orchestration Engine). COEs offer clustering and convert your nodes into one super computer, make intelligent  decisions as to where to schedule the containers, connect containers running on different nodes by setting up multi host network and offer many other interesting features such as fault tolerance, zero downtime deployments etc. 

Kubernetes is the gold standard in the world of container orchestration. It was originally created by Google, based on their experience of building and managing containers at scale ( at Google Scale). However its now driven by Cloud Native Compute Foundation ( CNCF), an open body, which also offers the official certification i.e. "Kubernetes Certified Administrator".  Kubernetes comes with mind boggling features, is very reliable, and extremely sophisticated container orchestration engine. It can let you convert your infrastructure into a Container as a Service (Platform),  brining in some of the awe inspiring features such as Zero Down Time Deployments, Fault Tolerance, Auto Scaling, Cloud and Storage integrations, which were extremely difficult to implement.  And it brings it to the masses with its truly open, lock in free eco system.  

With Kubernetes' sophistication however, comes the complexity too. Even though I have been using Kubernetes for more than 2 years now, almost every month, I find something new about kubernetes, something really cool, be it cloud integrations, or the newly introduced RBAC, be it dynamic storage provisioning, or stateful sets, its a fascinating world once you start exploring it. However, you would definitely need a guide once you while you navigate the complex world of Kubernetes, and this course serves just that. its been created in a way that you start learning kubernetes fround grounds up, one small step at a time, feature by feature. 

This course brings to you a distilled experience with my knowledge of building and managing infrastructures, experience of helping companies with their devops journey and more than 300 corporate trainings. This is a well researched program and I have tried many variants of applications, with different flows, took feedback, and iterated many times. Thats one of the reasons why it took us more than 4 months to even launch the course in its first form.  We have also started incorporating some new and useful techniques including glassboard, mindmaps to explain the concepts better and make things easier. I and my team wants to make this program the best in the world, and are constantly working towards it.  

Here is what this course would cover, one step at a time, 

  • Introduction to Kubernetes and the key concepts
  • Setting up learning Environment
  • Pods 
  • Replication Controllers and Replica Sets
  • Deployments 
  • Services
  • ConfigMaps and Secrets
  • Persistent Storage 

Our next version would include many additional topics including, 

  • Release Strategies
  • Horizontal Pod Autoscaler
  • Helm Package Manager 
  • RBAC 
  • Ingress Controllers 
  • CI/CD with Kubernetes  

When you sign up for this course now, you are guaranteed to receive these updates, that our promise to you !  We wish you all the best while learning Kubernetes !!  

Who this course is for:

  • Developers who would like to deploy their applications with containers and like to understand how to leverage Kubernetes features
  • Operations or devops folks who would like to build Container as a Service and/or Operate it
  • Anyone who would like to understand Kubernetes from grounds up
  • Anyone who wants to run containers in Production or Production Like Environments
  • Anyone who wants to appear for Kubernetes Certified Administrator Exam from CNCF

Course content

22 sections • 216 lectures

Know your Instructor - Who is Gourav Shah ? Preview 03:51

Lab Guide Preview 00:21

Following URL points to the Lab Guide used throughout this course. Its an essential supporting document, which contains step by step instructions, just as you see in the demo videos.  Once you go through the demo videos, you could practically perform the tasks using this guide.


https://schoolofdevops.github.io/kubernetes-labguide/


Note:  You may notice discrepancy between instructions shown in the video lessons vs what you see in the Lab Guide. In such cases, always trust the lab guide as its been updated to support the newer versions of kubernetes, and also has many fixes.  You may also find new labs available in the lab guide for which I am planning to create video lessons. Treat the Lab Guide as the ultimate source of truth ! 


Gitter Chat Room for the Course Preview 00:02

Use the following link to get access to the gitter channel


https://gitter.im/schoolofdevops/Kubernetes?utm_source=share-link&utm_medium=link&utm_campaign=share-link



Kubernetes Slides Preview 00:06

The need for a Container Orchestration Engine Preview 03:59

Battles of COEs, which one to choose Preview 03:41

Key Features of a COE Preview 03:38

What makes Kubernetes the de facto COE choice Preview 04:16

Negatives of using Kubernetes Preview 02:35

Basics of Kubernetes

Exercise Preview 00:25

Section Intro - Path to Automation with Kubernetes Preview 00:35

Namespaces Preview 04:44

Pods Preview 08:10

Replication Controller, Replica Sets and Deployments Preview 10:37

Service Discovery and Load Balancing Preview 08:12

Applying kubernetes primitives to your Application Stack Preview 03:40

Configmaps and , Storage, Network, RBAC etc. Preview 05:35

Daemonsets, Statefulsets, Crons and Jobs Preview 05:57

Kubernetes Architecture Run Down Preview 06:48

Building production grade Hight Available Kubernetes Cluster Preview 06:10

Path to Automation with Kubernetes

Exercise Preview 00:20

Who is this section for ? Preview 00:19

Setting up and validating docker environment Preview 05:37

Running your first container Preview 05:07

Making containers persist with -idt options Preview 04:42

Essential Container Operations - list, logs, exec, cp, inspect, stop, rm Preview 05:18

Lab : Operating Containers Preview 00:00

Publishing containers using port mapping Preview 07:09

Using docker instead of VMs to create development environments Preview 04:25

Portainer - Web console to managing Docker Environemnts Preview 05:45

Launching Application Stack with Docker Compose Preview 04:12

Building an image manually with docker commit Preview 05:55

Lab : Building and Publishing a Docker Image Preview 00:00

Automatiing image builds with a Dockerfile Preview 04:26

Dockerfile Primer Preview 03:46

Section Intro- Setting up Environment Preview 02:29

LAB: Option 1: Setting up single node kubernetes with Minikube Preview 00:51

Minikube offers one of the easiest zero to dev experience to setup a single node kubernetes cluster. Its also the ideal way to create a local dev environment to test kubernetes code on.

This document explains how to setup and work with single node kubernetes cluster with minikube.


LAB: Option 2: Provisioning 3 nodes for Kubernetes with Vagrant and VirtualBox Preview 00:17

Provisioning and configuring Digital Ocean Nodes Preview 03:53

Initialise Cluster with Kubeadm Preview 06:38

Setting up Weave CNI Preview 04:15

Launching Kubernetes Dashboard Preview 05:10

LAB: Setup Kubernetes Cluster with Kubeadm Preview 03:41

Setting up a kubernetes Visualizer Preview 05:29

LAB: Setting up Kubernetes Visualiser Preview 00:30

Troubleshooting : Resetting cluster created with kubeadm Preview 06:14

Setting up Environment

Exercise Preview 01:02

Section Intro - Pods Preview 00:53

Writing pod Specification Preview 04:37

Launching and Operating Pods Preview 04:54

LAB: Writing Pod Spec, Launching and Operating a Pod Preview 01:52

Troubleshooting Pods Issues Preview 05:14

LAB: Troubleshooting Pod Issues Preview 00:55

Attaching a volume to a Pod Preview 07:18

LAB: Attaching a volume to the Pod Preview 00:30

Launching Multi-Container Pods Preview 03:39

Connecting to Individual Containers Preview 05:19

LAB : Multi Container Pods Preview 00:31

Building Blocks - Pods

Exercise Preview 01:47

Section Intro - Replication Controllers Preview 01:05

Setting up namespace and switching context Preview 04:10

LAB: Creating a Namespace and switching to it Preview 00:34

Writing Replica Set Specification Preview 08:19

LAB: Writing Replica Set Specs Preview 00:36

Launching Replica Set and Fault Tolerance Preview 04:24

LAB: ReplicaSet in Action Preview 00:49

Replication Controllers and Replica Sets

Exercises Preview 01:42

Section intro - Services Preview 01:15

Writing Service Specification Preview 05:06

Exposing services outside the Cluster Preview 06:01

LAB: Creating a Service and exposing it with NodePort Preview 00:51

LAB: Exposing Sevice with ExternalIPs Preview 00:25

Service Discovery Preview 04:38

LAB: Intetnal Service Discovery with ClusterIP Preview 01:22

Service Discovery and Load Balancing

Exercise Preview 00:45

Section Intro - Deployments Preview 01:21

Writing Deployment Specification Preview 04:38

Rolling Out a Deployment Preview 04:12

LAB: Create and rollout a Deployment Preview 00:55

Update and Rollback Preview 04:34

Rollbacks Preview 04:49

Lab : Scale, Rollout and Rollback Preview 00:41

MINI PROJECT : Deploy instavote app stack with Kubernetes Preview 00:46

In this project , you would write definitions for deploying the vote application stack with all components/tiers.


Solution part I - Deploying a worker App Preview 04:44

Solution part II - Deploying DB service Preview 03:35

Solutions part III - Results App Preview 04:03

Application Deployments and Updates

Exercise Preview 00:35

Section intro - Coonfigmaps and Secrets Preview 01:39

Creating Config Map for Vote app Options Preview 05:56

LAB: Injecting env variables with configmaps Preview 00:40

Setting up Environment Specific Configs Preview 04:23

LAB: Providing environment Specific Configs Preview 00:47

Adding Configs from Files Preview 04:13

LAB: Configuration file as ConfigMap Preview 00:37

Creating Secrets to Encrypt Database Credentials Preview 03:34

Setting Environment vars using Secrets Preview 04:03

LAB: Using Secrets to encrypt sensitive data Preview 01:18

Managing Application Configurations

Exercise Preview 00:32

Section Intro- Persistent Volumes Preview 01:24

Setting up RBAC for NFS Provisioner Preview 04:16

Setting up NFS provisioner with Statefulset Preview 07:07

LAB: Setting up NFS using StatefuleSets Preview 00:18

Creating storage class for NFS Preview 02:01

Claiming a persistent volume and mounting it Preview 05:01

Dynamically provisioning of persistent volumes Preview 07:43

LAB: Creating and mounting PersistentVolumeClaim Preview 00:36

Persistent Volumes

Exercise Preview 00:24

Section Intro- Release Strategies Preview 00:42

Defining Recreate as a Release Strategy Preview 06:12

LAB: Releases with downtime using Recreate Strategy Preview 00:41

Canary Releases Preview 03:56

LAB: Rolling out a Canary Release Preview 00:47

Blue Green Deployments Preview 07:12

LAB: Deploying a Blue-Green Release Preview 03:45

Pausing and fixing rollouts Preview 03:02

LAB: Pause and Resume a Release Preview 00:42

Exercise Preview 00:17

Section Intro HPA Preview 01:22

Setting up code monitoring with Metrics Server Preview 05:18

LAB: Deploy Metrics Server for feeding in core metrics to HPA Preview 01:16

Defining Resource Requests and Limits Preview 07:29

LAB: Defining Resource Requests and Limits Preview 00:16

Creating a Horizontal Pod Autoscaler Preview 07:00

LAB: Create a HorizontalPodAutoscaler Preview 00:13

Writing load test Job definition Preview 05:50

Laying a siege with loadtest jobs Preview 07:32

Autoscaling in action with HPA Preview 08:33

LAB: Running load test as a kubernetes Job Preview 00:45

Exercise Preview 01:04

Section Intro Ingress Preview 01:03

Ingress Controllers and Ingress Preview 06:20

Choosing Traefik as a ingress controller and DaemonSet as a deployment type Preview 07:07

Creating DaemonSet for Traefik Preview 11:28

LAB: Create a Ingress Controller Preview 01:17

Writing Ingress definition for vote app with named based routing Preview 07:30

Testing ingress and accessing the application Preview 05:53

LAB: Adding Named Based Routing Preview 01:34

Annotations and setting up basic auth for vote app Preview 07:44

LAB: Using Annotations to enable HTTP Auth Preview 00:52

Exercise Preview 00:24

Creating default network policy for instavote namespace Preview 07:22

Exposing public facing apps and allowing inter namespace communication Preview 07:54

LAB: Creating firewall with Network Policies Preview 01:41

From dev to production with High Available kubernetes Cluster Preview 01:56

Introduction to Kubespray Preview 02:34

HA Design Preview 03:15

Preparing Nodes to setup Kubernetes Preview 05:10

Ansible control node and inventory setup Preview 06:33

Running ansible kubespray playbooks to configure etcd, master and nodes Preview 07:27

Adding a new node to cluster with kubespray Preview 03:13

Enabling additional kubernetes features with with Kubespray Preview 03:45

Understanding HA setup, mapping services to nodes Preview 06:19

Kubernetes configurations quick dive Preview 07:42

Configuring kubectl locally to conenct with multiple clusters Preview 06:32

Deploying instavote app on prod cluster Preview 07:25

Accessing kubernetes dashboard Preview 03:29

Access Control with Kubernetes Preview 06:20

RBAC Concepts Preview 10:23

Defining Users, Groups and Authorizations Preview 04:52

Creating Users and Groups using x509 Certificates Preview 07:10

LAB: Creating users and groups using x509 certificates Preview 03:01

Setting credentials and contexts Preview 06:49

Creating Roles and RoleBindings for interns Preview 12:37

Binding to existing ClusterRole using ClusterRoleBinding for Ops Preview 05:16

LAB: Defining authorisation rules with Roles and ClusterRoles Preview 00:41

Exercise Preview 00:24

Using nodeName to bind a pod to a node Preview 02:40

Selecting node based on labels with nodeSelector Preview 06:23

LAB: Using NodeSelector Preview 01:41

Selecting nodes with nodeAffinity Preview 11:04

LAB: Defining Node Affinity Preview 00:48

Using podAffinity and podAntiAffinity to ensure co locating applications Preview 08:57

LAB: Defining affinity between applications with PodAffinity Preview 01:31

Using taints and tolerations to make nodes unschdulable or run only specific app Preview 06:18

LAB: Using Taints and Tolerations Preview 01:26

Exercise Preview 00:39

Introduction to HELM Preview 04:51

Setting up helm with tiller and launching prometheus Preview 07:09

Quick overview of helm Charts Preview 08:22

Launching wordpress with custom values Preview 07:22

Setting up prometheus with custom storageclass and ingress rules Preview 09:47

Deploying grafana and integrating it with prometheus Preview 08:34

LAB 1: Helm Package Manager Preview 00:37

LAB 2: Install Wordpress with Helm Preview 00:16

LAB 3: Install Prometheus with Helm Preview 00:31

Exercise Preview 00:11

Session 1 - Introduction to Kubernetes Preview 42:21

Session 2 - Setting up Kubernetes Cluster with Kubeadm Preview 32:45

Session 3 - Pods Preview 02:18:48

Session 4 - Namespaces and Replicasets ( High Availability and Scalability) Preview 01:13:13

Session 5 - Service Networking Preview 01:29:17

Session 6 - Pod Networking and Container Network Interface (CNI) Preview 29:52

Session 7 - Deployment and Rolling Updates Preview 01:01:56

Session 8 - Persistent Storage and Dynamic Provisioning Preview 50:16

Session 9 - Role Based Access Control (RBAC) Preview 22:22

Session 10 - HELM Preview 01:07:09

Session 11 - Ingress Controllers Preview 17:16

Deploying Istio Cluster with Google Kubernetes Engine Preview 07:43

Setting up Google Cloud SDK Preview 05:35

Examine Preview 05:35

Validating Istio Telemetry Plugin Preview 04:16

Overview of Bookinfo app Preview 04:54

Deploying canary releases with intelligent routing Preview 07:33

Testing application resiliency by injecting a fault Preview 09:37

Zero downtime deployments with weight based routing Preview 05:53

Traffic Routing and Deployment - Kubernetes vs Istio Preview 15:29

Cleaning Up Preview 02:18