Oreilly - The Ultimate Kubernetes Bootcamp by School of Devops®
by Vijayboopathy Elangovan, Gourav Shah | Publisher: Packt Publishing | Release Date: July 2018 | ISBN: 9781789534115
Mastering container orchestration with Kubernetes one step at a time. Prepare for the CKA ExamAbout This VideoThis course brings you a distilled experience from Gourav's knowledge of building and managing infrastructures, his experience of helping companies with their DevOps journey and more than 300 corporate training sessions.This is a well-researched program and he has tried many variants of applications, with different flows, took feedback, and iterated it many times.That's one of the reasons why it took us more than 4 months to even launch the course in its first form.The team have also started incorporating some new and useful techniques including glassboard, mindmaps to explain the concepts better and make things easier.In DetailKubernetes 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 it's now driven by Cloud Native Compute Foundation (CNCF), an open body, which also offers the official certification, Kubernetes Certified Administrator. Kubernetes comes with mindboggling features, is very reliable, and is an extremely sophisticated container orchestration engine. It lets you convert your infrastructure into a container as a service (Platform), bringing in some of the awe-inspiring features such as zero down time deployments, fault tolerance, auto scaling, and cloud and storage integrations, which were previously 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 complexity too. You definitely need a guide while you navigate the complex world of Kubernetes, and this coursedoes just that. It's been created in such a way that you start learning Kubernetes from the ground up, one small step at a time, feature by feature. This course brings you a distilled experience with the author's knowledge of building and managing infrastructures, experience of helping companies with their DevOps journey and more than 300 corporate training sessions. This is a well-researched program in which many variants of applications, with different flows, have been trialled and iterated many times, according to feedback. We have also started incorporating some new and useful techniques including glassboard and mindmaps to explain the concepts better and make things easier.
- Chapter 1 : Introduction to Kubernetes
- The need for a Container Orchestration Engine 00:04:00
- Battles of COEs, which one to choose 00:03:42
- Key Features of a COE 00:03:39
- What makes Kubernetes the de facto COE choice 00:04:16
- Negatives of using Kubernetes 00:02:35
- Chapter 2 : Path to Automation with Kubernetes
- Section Intro - Path to Automation with Kubernetes 00:00:36
- Namespaces 00:04:45
- Pods 00:08:11
- Replication Controller, Replica Sets and Deployments 00:10:37
- Service Discovery and Load Balancing 00:08:13
- Applying kubernetes primitives to your Application Stack 00:03:40
- Configmaps and , Storage, Network, RBAC etc. 00:05:35
- Daemonsets, Statefulsets, Crons and Jobs 00:05:57
- Kubernetes Architecture Run Down 00:06:48
- Building production grade Hight Available Kubernetes Cluster 00:06:10
- Chapter 3 : Setting up Environment
- Section Intro- Setting up Environment 00:02:29
- Provisioning and configuring Digital Ocean Nodes 00:03:53
- Initialise Cluster with Kubeadm 00:06:38
- Setting up Weave CNI 00:04:15
- Launching Kubernetes Dashboard 00:05:10
- Setting up a kubernetes Visualizer 00:05:29
- Resetting cluster created with kubeadm 00:06:15
- Chapter 4 : Building Blocks – Pods
- Section Intro - Pods 00:00:53
- Writing pod Specification 00:04:37
- Launching and Operating Pods 00:04:55
- Troubleshooting Pods Issues 00:05:15
- Attaching a volume to a Pod 00:07:19
- Launching Multi-Container Pods 00:03:39
- Connecting to Individual Containers 00:05:20
- Chapter 5 : Replication Controllers and Replica Sets
- Section Intro - Replication Controllers 00:01:06
- Setting up namespace and switching context 00:04:10
- Writing Replica Set Specification 00:08:19
- Launching Replica Set and Fault Tolerance 00:04:24
- Chapter 6 : Service Discovery and Load Balancing
- Section intro – Services 00:01:15
- Writing Service Specification 00:05:06
- Exposting services outside the Cluster 00:06:02
- Service Discovery 00:04:39
- Chapter 7 : Application Deployments and Updates
- Section Intro – Deployments 00:01:21
- Writing Deployment Specification 00:04:38
- Rolling Out a Deployment 00:04:12
- Update and Rollback 00:04:34
- Rollbacks 00:04:49
- Solution part I - Deploying a worker App 00:04:44
- Solution part II - Deploying DB service 00:03:35
- Solutions part III - Results App 00:04:03
- Chapter 8 : Managing Application Configurations with ConfigMaps and Secrets
- Section intro - Coonfigmaps and Secrets 00:01:40
- Creating Config Map for Vote app Options 00:05:57
- Setting up Environment Specific Configs 00:04:23
- Adding Configs from Files 00:04:13
- Creating Secrets to Encrypt Database Credentials 00:03:35
- Setting Environment vars using Secrets 00:04:04
- Chapter 9 : Persisting data and dynamic volumes provisioning
- Section Intro- Persistent Volumes 00:01:24
- Setting up RBAC for NFS Provisioner 00:04:17
- Setting up NFS provisioner with Statefulset 00:04:17
- Creating storage class for NFS 00:02:01
- Claiming a persistent volume and mounting it 00:05:01
- Dynamically provisioning of persistent volumes 00:07:43
- Chapter 10 : Creating Release Strategies - Blue/Green, Canary
- Section Intro- Release Strategies 00:00:42
- Defining Recreate as a Release Strategy 00:06:13
- Canary Releases 00:03:56
- Blue Green Deployments 00:07:12
- Pausing and fixing rollouts 00:03:03
- Chapter 11 : Dynamically scaling apps with Horizontal Pod Autoscaler
- Section Intro HPA 00:01:22
- Setting up code monitoring with Metrics Server 00:05:19
- Defining Resource Requests and Limits 00:07:30
- Creating a Horizontal Pod Autoscaler 00:07:00
- Writing load test Job definition 00:05:50
- Laying a siege with loadtest jobs 00:07:33
- Autoscaling in action with HPA 00:08:34
- Chapter 12 : Application routing with Ingress Controllers
- Section Intro Ingress 00:01:04
- Ingress Controllers and Ingress 00:06:20
- Choosing Traefik as a ingress controller and DaemonSet as a deployment type 00:07:07
- Creating DaemonSet for Traefik 00:11:28
- Writing Ingress definition for vote app with named based routing 00:07:31
- Testing ingress and accessing the application 00:05:54
- Annotations and setting up basic auth for vote app 00:07:45
- Chapter 13 : Setting up firewall with Network Policies
- Creating default network policy for instavote namespace 00:07:22
- Exposing public facing apps and allowing inter namespace communication 00:07:55
- Chapter 14 : High Available Production Cluster setup with Kubespray
- From dev to production with High Available kubernetes Cluster 00:01:56
- Introduction to Kubespray 00:02:34
- HA Design 00:03:15
- Preparing Nodes to setup Kubernetes 00:05:10
- Ansible control node and inventory setup 00:06:34
- Running ansible kubespray playbooks to configure etcd, master and nodes 00:07:28
- Adding a new node to cluster with kubespray 00:03:14
- Enabling additional kubernetes features with with Kubespray 00:03:46
- Understanding HA setup, mapping services to nodes 00:06:19
- Kubernetes configurations quick dive 00:07:43
- Configuring kubectl locally to conenct with multiple clusters 00:06:32
- Deploying instavote app on prod cluster 00:07:26
- Accessing kubernetes dashboard 00:03:29
- Chapter 15 : Access Control and RBAC Policies - Authentication and Authorization
- Access Control with Kubernetes 00:06:20
- RBAC Concepts 00:10:23
- Defining Users, Groups and Authorizations 00:04:52
- Creating Users and Groups using x509 Certificates 00:07:10
- Setting credentials and contexts 00:06:50
- Creating Roles and RoleBindings for interns 00:12:38
- Binding to existing ClusterRole using ClusterRoleBinding for Ops 00:05:17
- Chapter 16 : Advanced Pod Scheduling
- Using nodeName to bind a pod to a node 00:02:40
- Selecting node based on labels with nodeSelector 00:06:24
- Selecting nodes with nodeAffinity 00:11:05
- Using podAffinity and podAntiAffinity to ensure co locating applications 00:08:57
- Using taints and tolerations to make nodes unschedulable or run only specific app 00:06:18
- Chapter 17 : Using HELM to setup Monitoring with Prometheus and Grafana
- Introduction to HELM 00:04:51
- Setting up helm with tiller and launching Prometheus 00:07:09
- Quick overview of helm Charts 00:08:23
- Launching WordPress with custom values 00:07:22
- Setting up Prometheus with custom storageclass and ingress rules 00:09:48
- Deploying grafana and integrating it with Prometheus 00:08:34