Skip to main content

Kubernetes Training

Container Orchestration and Cloud-Native Deployment​

Course Code: 420-911-MA
Session: Winter 2025
Instructor: Haythem Rehouma
Institution: inskillflow academy


Course Overview​

This comprehensive training will enable you to master Kubernetes, the world's most widely used container orchestration platform. From introduction to advanced concepts, you will learn to deploy, manage, and scale containerized applications in production.

Learning Objectives​

By the end of this course, you will be able to:

  • Understand the architecture and fundamental concepts of Kubernetes
  • Deploy and manage containerized applications
  • Configure services, networks, and storage
  • Implement security and access control (RBAC)
  • Use Helm for package management
  • Monitor and debug Kubernetes clusters
  • Deploy applications in production with best practices

Teaching Approach​

70% Practical - 30% Theory

Each module combines:

  • Detailed theoretical explanations with Mermaid diagrams
  • Hands-on practical labs
  • Concrete examples and real use cases
  • Validation exercises and quizzes

Course Plan - 12 Modules​

MODULE 1 - Introduction to Kubernetes ✅ COMPLETE​

Duration: 2-3 sessions

Content:

  • What is Kubernetes and why use it?
  • History and evolution (Docker → Kubernetes)
  • Fundamental concepts (Pods, Nodes, Clusters)
  • Kubernetes Architecture (Control Plane vs Worker Nodes)
  • Comparison with other orchestration solutions

Objectives:

  • Understand the role of Kubernetes in the cloud-native ecosystem
  • Identify the main components
  • Discover the Kubernetes ecosystem

Labs:

  • Lab 1.1: First Kubernetes Deployment

MODULE 2 - Kubernetes Architecture and Components ✅ COMPLETE​

Duration: 2-3 sessions

Content:

  • Detailed architecture of the Control Plane
    • API Server
    • etcd
    • Controller Manager
    • Scheduler
  • Worker Nodes components
    • kubelet
    • kube-proxy
    • Container Runtime
  • Add-ons and extensions
  • Inter-component communication

Objectives:

  • Understand the internal workings of Kubernetes
  • Identify the role of each component
  • Visualize communication flows

Labs:

  • Lab 2.1: Control Plane Inspection
  • Lab 2.2: Worker Nodes Analysis
  • Lab 2.3: System components monitoring

MODULE 3 - Pods and Deployments ✅ COMPLETE​

Duration: 3-4 sessions

Content:

  • Pods: atomic deployment unit
  • YAML and JSON declarations
  • Labels and Selectors
  • ReplicaSets and replication management
  • Deployments: declarative deployments
  • Deployment strategies (Rolling Update, Blue/Green, Canary)
  • Health Checks (Liveness, Readiness, Startup Probes)

Objectives:

  • Master Pods and their lifecycle
  • Deploy applications with Deployments
  • Manage updates without interruption

Labs:

  • Lab 3.1: Pod creation and management
  • Lab 3.2: Deployment with ReplicaSets
  • Lab 3.3: Deployments and Rolling Updates
  • Lab 3.4: Health Checks configuration

MODULE 4 - Services and Networking ✅ COMPLETE​

Duration: 3-4 sessions

Content:

  • Services: exposing applications
  • Types of Services (ClusterIP, NodePort, LoadBalancer, ExternalName)
  • Service Discovery and internal DNS
  • Endpoints and EndpointSlices
  • Network Policies
  • Ingress (concept, is covered in more depth in Module 8)
  • CNI (Container Network Interface)

Objectives:

  • Expose applications within the cluster
  • Understand Kubernetes networking
  • Secure network communication

Labs:

  • Lab 4.1: ClusterIP and NodePort Services
  • Lab 4.2: Service Discovery with DNS
  • Lab 4.3: Network Policies
  • Lab 4.4: LoadBalancer and cloud integration

MODULE 5 - Configuration and Secrets ✅ COMPLETE​

Duration: 2-3 sessions

Content:

  • ConfigMaps: configuration management
  • Secrets: sensitive data management
  • Environment variables
  • ConfigMap and Secret type volumes
  • Security best practices
  • External Secrets Operator (introduction)

Objectives:

  • Separate configuration from code
  • Manage secrets securely
  • Apply best practices

Labs:

  • Lab 5.1: Creation and use of ConfigMaps
  • Lab 5.2: Secrets management
  • Lab 5.3: Configuration injection into Pods
  • Lab 5.4: Secrets rotation

MODULE 6 - Storage and Volumes ✅ COMPLETE​

Duration: 3-4 sessions

Content:

  • Volumes: types and usage
  • PersistentVolumes (PV) and PersistentVolumeClaims (PVC)
  • StorageClasses and dynamic provisioning
  • Storage types (local, NFS, cloud providers)
  • Volume Snapshots
  • StatefulSets: stateful applications

Objectives:

  • Manage persistent storage
  • Understand different types of volumes
  • Deploy stateful applications

Labs:

  • Lab 6.1: Ephemeral volumes and emptyDir
  • Lab 6.2: PersistentVolumes and PVCs
  • Lab 6.3: StorageClasses and dynamic provisioning
  • Lab 6.4: StatefulSet with persistent storage

MODULE 7 - Advanced Workloads ✅ COMPLETE​

Duration: 3-4 sessions

Content:

  • StatefulSets: stateful applications
  • DaemonSets: deployment on all nodes
  • Jobs: one-time tasks
  • CronJobs: scheduled tasks
  • Init Containers
  • Sidecar Pattern

Objectives:

  • Use different types of workloads
  • Understand specific use cases
  • Implement advanced patterns

Labs:

  • Lab 7.1: StatefulSet for database
  • Lab 7.2: DaemonSet for monitoring
  • Lab 7.3: Jobs and CronJobs
  • Lab 7.4: Init Containers and Sidecars

MODULE 8 - Ingress and Load Balancing ✅ COMPLETE​

Duration: 2-3 sessions

Content:

  • Ingress: HTTP/HTTPS exposure
  • Ingress Controllers (NGINX, Traefik, etc.)
  • Ingress Rules and Path-based routing
  • TLS/SSL and certificates
  • Advanced Load Balancing
  • Service Mesh (introduction Istio/Linkerd)

Objectives:

  • Expose web applications via Ingress
  • Configure routing and load balancing
  • Secure HTTPS communications

Labs:

  • Lab 8.1: NGINX Ingress Configuration
  • Lab 8.2: Path-based routing
  • Lab 8.3: TLS/SSL with cert-manager
  • Lab 8.4: Multi-domains and virtual hosts

MODULE 9 - Security and RBAC ✅ COMPLETE​

Duration: 3-4 sessions

Content:

  • Authentication and authorization
  • RBAC (Role-Based Access Control)
  • Roles and RoleBindings
  • ClusterRoles and ClusterRoleBindings
  • Service Accounts
  • Pod Security Policies / Pod Security Standards
  • Network Policies (in more depth)
  • Advanced secrets management

Objectives:

  • Implement security in Kubernetes
  • Manage permissions with RBAC
  • Secure applications and the cluster

Labs:

  • Lab 9.1: Creation of Roles and RoleBindings
  • Lab 9.2: Service Accounts and permissions
  • Lab 9.3: Pod Security Standards
  • Lab 9.4: Security audit

MODULE 10 - Helm and Package Management ✅ COMPLETE​

Duration: 2-3 sessions

Content:

  • Helm: Kubernetes package manager
  • Charts and Releases
  • Templates and values
  • Hooks and dependencies
  • Creation of custom Charts
  • Helmfile for multi-environment management
  • Artifact Hub and public Charts

Objectives:

  • Use Helm to deploy applications
  • Create and maintain Charts
  • Manage complex deployments

Labs:

  • Lab 10.1: Installation and use of Helm Charts
  • Lab 10.2: Customization with values.yaml
  • Lab 10.3: Creation of a custom Chart
  • Lab 10.4: Helmfile and multi-environments

MODULE 11 - Monitoring and Observability ✅ COMPLETE​

Duration: 3-4 sessions

Content:

  • Kubernetes metrics (cAdvisor, kube-state-metrics)
  • Prometheus: metrics collection and storage
  • Grafana: visualization and dashboards
  • Logging with Fluentd/Fluent Bit and ELK
  • Distributed Tracing (Jaeger, Zipkin)
  • Alerting with Alertmanager
  • Health Checks and auto-healing

Objectives:

  • Monitor clusters and applications
  • Visualize metrics and logs
  • Implement complete observability

Labs:

  • Lab 11.1: Installation of Prometheus and Grafana
  • Lab 11.2: Creation of custom dashboards
  • Lab 11.3: Logging configuration
  • Lab 11.4: Alerting and notifications

MODULE 12 - Production Deployment ✅ COMPLETE​

Duration: 3-4 sessions

Content:

  • Preparation for production
  • Multi-clusters and High Availability
  • Backup and Disaster Recovery
  • CI/CD with Kubernetes (GitOps with ArgoCD/Flux)
  • Resource Management (Requests, Limits, QoS)
  • Autoscaling (HPA, VPA, Cluster Autoscaler)
  • Troubleshooting and debugging
  • Production best practices

Objectives:

  • Deploy applications in production
  • Implement high availability
  • Optimize resources and costs

Labs:

  • Lab 12.1: Resource Management configuration
  • Lab 12.2: Horizontal and vertical autoscaling
  • Lab 12.3: GitOps with ArgoCD
  • Lab 12.4: Complete final project

Tools and Technologies​

Development Environment​

  • kubectl: Kubernetes CLI
  • minikube / kind: Local clusters
  • Docker / containerd: Container Runtime
  • Helm: Package Manager
  • k9s / Lens: Visualization tools

Cloud Technologies​

  • Kubernetes: 1.28+ (latest stable version)
  • Container Runtime: containerd, CRI-O
  • CNI: Calico, Flannel, Weave Net
  • CSI: Storage drivers

Complementary Tools​

  • Prometheus & Grafana: Monitoring
  • Helm: Package management
  • ArgoCD / Flux: GitOps
  • cert-manager: Certificate management
  • Istio / Linkerd: Service Mesh (optional)

Skills developed​

Technical Skills​

Container Orchestration:

  • Deployment and management of containerized applications
  • Automatic and manual scaling
  • Application lifecycle management
  • Configuration and secrets management

Cloud-Native Architecture:

  • Microservices and distributed architecture
  • Service discovery and load balancing
  • Persistent storage and stateful applications
  • Networking and network security

DevOps and Production:

  • CI/CD with Kubernetes
  • Monitoring and observability
  • Troubleshooting and debugging
  • Production best practices

Professional Skills​

  • Understanding of the cloud-native ecosystem
  • Deployment of applications in production
  • Solving complex problems
  • Collaboration with DevOps/SRE teams

Assessments​

Practical Work (50%)​

  • TP1: Multi-tier application deployment (15%)
  • TP2: Complete configuration with monitoring (20%)
  • TP3: GitOps and production project (15%)

Laboratories (30%)​

  • Weekly labs (25%)
  • Participation and engagement (5%)

Final Project (20%)​

  • Complete application deployed on Kubernetes (15%)
  • Documentation and presentation (5%)

Total: 100%


Prerequisites​

Prior Knowledge​

  • Containerization concepts (Docker)
  • Linux and command line
  • Basic network concepts
  • YAML/JSON (basic syntax)

Required Equipment​

  • Computer with minimum 8 GB RAM (16 GB recommended)
  • 50 GB of free disk space
  • Stable Internet connection
  • 64-bit processor with virtualization enabled

Software to Install​

  • Docker Desktop or Docker Engine
  • kubectl (Kubernetes CLI)
  • minikube or kind (local cluster)
  • Helm (package manager)
  • An IDE or text editor (VS Code recommended)

Course Resources​

Official Documentation​

  • "Kubernetes: Up and Running" - Kelsey Hightower
  • "The Kubernetes Book" - Nigel Poulton
  • "Kubernetes in Action" - Marko Lukša

Community​


Course Progression​

[✅ COMPLETE] MODULE 1 - Introduction to Kubernetes
[✅ COMPLETE] MODULE 2 - Architecture and Components
[✅ COMPLETE] MODULE 3 - Pods and Deployments
[✅ COMPLETE] MODULE 4 - Services and Networking
[✅ COMPLETE] MODULE 5 - Configuration and Secrets
[✅ COMPLETE] MODULE 6 - Storage and Volumes
[✅ COMPLETE] MODULE 7 - Advanced Workloads
[✅ COMPLETE] MODULE 8 - Ingress and Load Balancing
[✅ COMPLETE] MODULE 9 - Security and RBAC
[✅ COMPLETE] MODULE 10 - Helm and Package Management
[✅ COMPLETE] MODULE 11 - Monitoring and Observability
[✅ COMPLETE] MODULE 12 - Production Deployment

Start Now!​

Explore the modules in the sidebar and begin your Kubernetes learning journey!

Enjoy the course and happy learning!


Last updated: December 2024