Course description

In this advanced project, you’ll build a production-ready Kubernetes cluster on AWS using Terraform and kubeadm, then perform a live upgrade of the cluster from version 1.29 to 1.30. Starting with infrastructure as code, you’ll provision a VPC, subnets, security groups, and EC2 instances for control plane and worker nodes. You’ll automate node setup with cloud-init scripts, configure containerd, and initialize the cluster with Flannel CNI.

In the upgrade phase, you’ll follow Kubernetes best practices: upgrade kubeadm, apply cluster upgrades, drain nodes, update kubelet and kubectl, and restore node schedulability—all while maintaining cluster availability. You’ll validate the upgrade at each step and ensure system pods remain healthy.

This project is essential for DevOps engineers, SREs, and Kubernetes administrators responsible for cluster lifecycle management in production environments.

Additionally, all learners receive dedicated online support through our Slack workspace where you can ask questions, get troubleshooting help, and interact with our team throughout the entire project.

Click here to access Slack workspace link

What will i learn?

  • Provision a Kubernetes cluster on AWS using Terraform and kubeadm
  • Configure containerd runtime, disable swap, and set up Kubernetes repositories
  • Initialize a cluster with kubeadm and join worker nodes
  • Safely upgrade the Kubernetes control plane using kubeadm
  • Drain, upgrade, and uncordon worker nodes without service disruption
  • Verify cluster health and component status post-upgrade
  • Automate node setup using cloud-init scripts and S3 for join commands
  • Follow version-specific upgrade paths and best practices for production clusters

Requirements

  • AWS account with IAM and EC2 permissions
  • Terraform installed locally (v1.0+)
  • AWS CLI configured with credentials
  • Basic understanding of Kubernetes architecture and commands
  • SSH key pair for EC2 access
  • Ubuntu 22.04 AMI (used in provisioning)

Frequently asked question

Basic knowledge of Terraform and Kubernetes is recommended. The project provides complete code and step-by-step instructions for both creation and upgrade.

No, Kubernetes supports only sequential minor version upgrades (e.g., 1.29 → 1.30). Skipping versions is not supported and may break the cluster.

Yes, when done correctly using kubectl drain and node cordoning, upgrades can be performed with minimal disruption to running workloads.

Akinola Ojuola

Cloud Solution Architect, DevOps Consultant & Trainer

Akinola Ojuola is a seasoned Cloud Solution Architect, DevOps Consultant and technical trainer with over 20 years of industry expertise. Throughout his career, he has worked with some of the world’s most prominent technology-driven organisations, including IBM, Fujitsu, Walmart, and MasterCard, delivering transformative solutions across various sectors. Akinola has trained and mentored more than 1,000 students across 18 countries on five continents. His commitment to real-world, practical learning has enabled hundreds of learners to launch successful careers in global tech companies. He is passionate about practical, real-world learning. His teaching approach blends deep technical knowledge with hands-on, enterprise-level experience. He holds multiple industry certifications and leads advanced projects in Cloud Architecture, DevOps, DevSecOps, and Artificial Intelligence for both private enterprises and public institutions.Whether you’re just starting or looking to advance your tech career, you’ll gain valuable, job-ready skills under his guidance.

$10

Lectures

1

Skill level

Beginner

Expiry period

1 Months

Certificate

Yes

Related courses