Kubernetes for Programmers
Class Duration
- 14 hours of live online training
- Delivered over 2 days to accommodate your scheduling needs
Student Prerequisites
- Basic programming and Linux command-line experience
- Prior experience with Docker is strongly suggested but not required
Target Audience
Designed for software engineers, backend developers, DevOps and SRE professionals, platform engineers, cloud architects, and technical leads who need to run containerized workloads reliably at scale. It also benefits engineering managers and L&D leaders standardizing delivery practices across teams or migrating services to managed Kubernetes (AKS/EKS/GKE). Ideal for organizations building microservices, modernizing from VMs, or seeking tighter release velocity, stronger security posture, and actionable observability.
Description
This live, hands-on course equips engineering teams to design, deploy, and operate production-ready applications on Kubernetes. Starting from YAML fundamentals and core objects, participants learn to stand up local clusters, containerize services, and manage the full application lifecycle with kubectl, the Dashboard, and Helm. We go deep on networking (CNI, Services, DNS, Ingress, Gateway API) and state (volumes, PV/PVC, StorageClasses, snapshots) before tackling scheduling strategies that balance performance and cost. You will implement robust configuration management, defense-in-depth security (RBAC, Secrets, security context, pod security), and end-to-end observability with Metrics Server, Prometheus, and Grafana. The course closes by operationalizing Kubernetes in CI/CD pipelines and mapping skills to managed platforms like AKS, EKS, GKE, and DigitalOcean—so teams ship faster with higher reliability and lower risk.
Learning Objectives
- Explain containerization, orchestration, and Kubernetes architecture; stand up local clusters with Docker Desktop K8s, MicroK8s, or Minikube.
- Author clean, reusable Kubernetes-ready YAML (types, structures, multi-line strings) that follows best practices.
- Build and run container images; model workloads with Pods, ReplicaSets, Deployments, and StatefulSets; execute safe rollouts and rollbacks.
- Operate clusters with kubectl and the Kubernetes Dashboard; package and version releases using Helm.
- Design networking with CNI, Services, CoreDNS service discovery, Ingress and the Gateway API; apply NetworkPolicies for zero-trust segmentation.
- Persist and protect data using volume types, Persistent Volumes/Claims, StorageClasses, snapshots, and storage health monitoring.
- Control scheduling and resilience with requests/limits, node and pod affinity/anti-affinity, taints/tolerations, DaemonSets; automate workloads with Jobs and CronJobs.
- Configure, secure, and observe applications using ConfigMaps, Secrets, ServiceAccounts, security contexts and pod security policies/standards; collect metrics and logs with Metrics Server, Prometheus, and Grafana; integrate Kubernetes into CI/CD and target managed services.
Training Materials
All students receive comprehensive courseware covering all topics in the course. Courseware is distributed via GitHub in the form of documentation and extensive code samples. Students practice the topics covered through challenging hands-on lab exercises.
Software Requirements
Students will need a free, personal GitHub account to access the courseware. Student will need permission to install Docker Desktop (or MicroK8s), Kubectl, Visual Studio Code, and Visual Studio Code Extensions on their computers. As an alternative to Docker Desktop, the course can be taught with MicroK8s.
Training Topics
Kubernetes and Container Orchestration
- What is Kubernetes (K8s)?
- What is Containerization?
- What is Orchestration?
- Local K8s Platforms
- Docker Desktop K8s
- MicroK8s
- Minikube
Development Environment
- Docker Desktop (or MicroK8s)
- Visual Studio Code and useful Extensions
- Container Registries
YAML Fundamentals
- What is YAML?
- Basics
- Syntax & Comments
- Data Types & Structures
- Multi-Line Strings, Lists, and Maps
Kubernetes Core Concepts
- Kubernetes Architecture
- Cluster Communication
- Objects
- Object Properties
- Labels & Selectors
- Annotations
- Object Management
- Image Fundamentals
- Container Fundamentals
- Pod Fundamentals
- Working with Pods
Kubernetes Tools
- kubectl
- K8s Dashboard
- Helm
Application Lifecycle Management
- Containers, Pods, and Deployments
- Container Lifecycle
- Pod Lifecycle
- Container Environment and Commands
- ReplicaSet
- StatefulSets
- Deployments
- Deployment Rollouts
Networking
- Container Network Interface (CNI)
- Network Model
- Services
- Service Discovery & Core DNS
- Ingress
- Gateway API
- Network Policies
Storage
- Volume Types
- Persistent Volumes
- Projected Volumes
- Ephermal Volumes
- Storage Classes
- Snapshots
- Health Monitoring
Scheduling
- Controlling and Tracking Resources
- Scheduler Operation
- Daemon Set
- Node Affinity & Anti-affinity
- Pod Affinity & Anti-affinity
- Taints & Tolerations
Jobs and Cron Jobs
- Jobs
- Cron Jobs
Configuration
- Configuration Management
- Config Maps
- Secrets
- Environment Variables
- Configuring Applications
Monitoring and Logging
- Monitoring
- Logging
- Metrics Server
- Prometheus
- Grafana
Security
- Security Overview
- Security Context
- Network Policies
- Secrets
- Service Accounts
- Pod Security Policies
- Role-Based Access Control (RBAC)
- Security Best Practices
Overview of Kubernetes and Public Cloud
- Managed Kubernetes Services (choose one)
- Microsoft AKS
- Amazon EKS
- Google GKE
- Digital Ocean Kubernetes
Kubernetes and CI/CD
- Continuous Integration, Delivery & Deployment
- Kubernetes in CI/CD Pipeline
- GitHub Actions
- GitLab CI/CD
- Azure DevOps
- Jenkins
- Deploy New Containers in a Pipeline