Kubernetes Workloads
Course Description
This course is designed to take you beyond the basics of Kubernetes and into the world of effectively managing application workloads. Through a series of hands-on labs, you will master the creation and management of Pods, the foundational unit of Kubernetes. You'll then learn to ensure high availability with ReplicaSets and orchestrate seamless application rollouts and rollbacks using Deployments. A key focus of the course is on building resilient, scalable systems, covering everything from self-healing mechanisms to configuring the Horizontal Pod Autoscaler (HPA). By the end, you'll be equipped with advanced skills, including multi-container pod patterns, and the confidence to manage complex, production-grade applications on Kubernetes.
Who is this course for
This is an intermediate-level course for individuals who understand the fundamental architecture of Kubernetes and are ready to learn how to deploy and manage applications on the platform. It is ideal for:
DevOps Engineers & SREs: Who are responsible for building and maintaining CI/CD pipelines and production Kubernetes clusters.
Cloud Engineers & System Administrators: Who manage infrastructure and deploy applications on Kubernetes.
Software Developers: Who need to understand how to package and run their applications effectively in a Kubernetes environment.
Course Objectives
Upon successful completion of this course, you will be able to:
Manage Pods: Create, manage, and debug Kubernetes Pods using YAML manifests.
Organize Resources: Use labels, selectors, and annotations to effectively manage and organize Kubernetes resources.
Implement Deployments: Create and manage Deployments to ensure application availability and orchestrate rolling updates.
Perform Seamless Rollbacks: Confidently roll back a Deployment to a previous stable version to minimize downtime.
Auto-scale Applications: Configure a Horizontal Pod Autoscaler (HPA) to automatically scale your applications based on resource utilization.
Design Advanced Pods: Implement multi-container pod patterns, such as the init container pattern, for more complex application needs.
Prerequisites
To succeed in this course, you must have:
A Solid Foundation in Kubernetes: You should understand the core architecture of Kubernetes (control plane, nodes) and be proficient with basic
kubectl
commands.Command-Line Proficiency: You must be comfortable working in a terminal or command prompt.
A Working Kubernetes Cluster: You need access to a Kubernetes environment (like Minikube, kind, or a cloud-based cluster) to perform the hands-on labs.
Course outline
Section 1: Pods Creation and Management
Introduction to Pods
The Pod Specification YAML File
Hands-on Lab: Creating an Nginx Pod in Kubernetes
Debugging Pods: Common Errors and Their Causes
Hands-on Lab: Debugging Kubernetes Scenarios
Section 2: Managing Kubernetes Resource Configurations
Kubernetes Labels and Selectors
Code Example: Using Kubernetes Annotations
Section 3: ReplicaSets
Role of the ReplicaSet
Section 4: Deployments in Kubernetes
Introduction to Kubernetes Deployments
Code Example: YAML Configuration for Deployments
Hands-on Lab: Creating an Nginx Deployment in Kubernetes
Desired State vs. Current State in Kubernetes
Self-healing vs. Auto-scaling in Kubernetes
Section 5: Deployments Rollback in Kubernetes
Understanding Rollbacks in Deployments
Different Aspects of Rollbacks
Hands-on Lab: Performing Rollbacks in Deployments
Section 6: Autoscaling in Kubernetes Using Deployments
Scaling Deployments in Kubernetes
Maintaining High Availability using
maxUnavailable
andmaxSurge
Hands-on Lab: Horizontal Pod Autoscaler (HPA) in Kubernetes using Minikube
The Impact of Autoscaling on Performance
Section 7: Advanced Pod and Deployment Concepts
Multi-container Pods
Multi-container Pod Design Patterns
Hands-on Lab: Multi-Container Pod with an Init Container
Understanding Static Pods