Kubernetes
Intended Audience:
Senior developers, DevOps engineers and Cloud Architects, with good familiarity with Docker and Cloud concepts.
Description:
Everyone talks about Kubernetes lately, and they should. Kubernetes is now the market leader in container orchestration platforms, and has been adopted by all major cloud providers as a fully managed offering (GCP, AWS, Azure, Oracle Cloud), Kubernetes is being adopted in a growing rate for multiple use cases – as micro-services workloads, Big Data, and Machine Learning.
Prerequisites:
- Basic Docker familiarity
- Basic Linux command line familiarity
Objectives:
- The overall goal of the course is to get to know Kubernetes.
- This tool will teach you to synchronize the containers reliably and efficiently, so you will be able to automatically manage and deploy applications on containers that appear on the server
Topics:
What Next?
Module 01 – Introduction
Workshop Objectives
Workshop Agenda
Kubernetes Introduction
Module 02 – Kubernetes Architecture
Core Concepts
High-Level components Architecture
Master Components
Worker Node Components
Putting All Together
Additional Services
Module 03 – YAML and Kubctl
YAML
Kubectl
Lab 01: Setting Up Your Workstation
Module 04 – Kubernetes Basics
Kubernetes Building Blocks
Namespaces
Pods
Replication Sets
Lab 02: Creating Our First Pod
Module 05 – Deployments and Upgrades
Deployments
Rolling Upgrades
Lab 03: Deploy and Upgrade a Single Service
Module 06 – Labels and Annotations
Labels
Annotations
Selectors
Module 07 – Kubernetes Networking
Kubernetes Networking Introduction
Container Network Interface (CNI)
CNI Plugins
Fundamental Networking Rules
Networking patterns
Module 08 – Services
Services Introduction
Service Types – ClusterIP
Service Types – NodePort
Service Types – LoadBalancer
Service Types – ExternalName
Lab 04: Creating a Load Balancer Service
Module 09 – Ingress
Introduction to Ingress
Ingress Controllers
Lab 05: Deploying applications using Ingress
Module 10 – ConfigMaps and Secrets
ConfigMaps
ConfigMaps – As Environment Variables
ConfigMaps – As Volumes
Secrets
Lab 06: Using ConfigMaps and Secrets
Module 11 – Jobs and CronJobs
Jobs
CronJobs
Lab 07: Running Jobs and CronJobs
Module 12 – Deamonsets
DaemonSets
Lab 08: Running Pods as DaemonSets
Module 13 – Helm Package Manager
What is Helm?
Helm Concepts
Helm Architecture
Tiller
Helm CLI
Using Helm Charts
Lab 09: Deploying Applications using Helm
Module 14 – Managed Kubernetes
Local Development Kubernetes
Kubernetes on Google Cloud Platform (GKE)
Kubernetes on Amazon Web Services (EKS)
Kubernetes on Microsoft Azure (AKS)
Kubernetes On-Premise using Kubeadm and Kubespray
Other Kubernetes Distributions
Module 15 – Advanced Scheduling
Requests & Limits
Taints & Tolerations
Affinity & Anti-Affinity
Module 16 – Autoscaling
Scaling pods horizontally
Scaling pods vertically
Scaling cluster horizontally
Lab 10: Configuring Autoscaling
Module 17 – Kubernetes Storage
Introduction
Volumes
PersistentVolumes
PersistentVolumeClaims
StorageClasses
Module 18 – StatefulSets
StatefulSets
Lab 11: Working with StatefulSets
Module 19 – Summary
Course Summary