← All work

(05) Course project · Infrastructure III · Mar 2026

Kubernetes Cluster: Automated Provisioning with Ansible

A kubeadm Kubernetes cluster provisioned end to end on KVM with idempotent Ansible playbooks and a DNS/DHCP bastion. Zero configuration drift on repeated runs.

The project

End-to-end provisioning of a Kubernetes 1.32 cluster (control plane and worker) on KVM/QEMU virtual machines running Rocky Linux 9, with Ansible as the only configuration tool and a bastion serving BIND9 DNS and DHCP.

Flannel VXLAN overlay networking, firewalld rules and kube-proxy iptables make cross-node pod traffic work; NodePort exposure and CoreDNS service discovery were validated. A GitHub Actions pipeline lints and syntax-checks every playbook on every commit.

Highlights

  1. 01Idempotent playbooks, zero drift across repeated runs
  2. 02Kubernetes 1.32 with kubeadm, Flannel VXLAN and containerd
  3. 03BIND9 and DHCP bastion for the lab network
  4. 04Ansible lint and syntax validation in CI