DEV Community

Cover image for [Lab Notes] Kubernetes the Hard Way, For Real This Time (Steps 01-02)
Luger Lex Pit-og
Luger Lex Pit-og

Posted on

[Lab Notes] Kubernetes the Hard Way, For Real This Time (Steps 01-02)

Following Kelsey Hightower's Kubernetes the Hard Way, but on my own Proxmox homelab. These are my notes on what I did and what's different from the original guide.

Why I'm doing this

As a DevOps engineer, I wanted to actually understand Kubernetes instead of just knowing the commands. My real question going in was: why do we even need Kubernetes? If containers already package and run our apps, isn't that enough?

My first attempt was to just spin up a cluster with AI/scripts doing most of the work. I provisioned a 1+2 node k3s cluster on this same Proxmox homelab:

  • k3sup and kubectl installed on a WSL workstation
  • k3s control plane running on k3s-cp
  • Both worker nodes joined and healthy
  • Cilium CNI v1.19.3 installed, all 3 nodes Ready
  • kubeconfig merged and working on the WSL workstation

It worked. But I didn't understand jack of what I built. So I scrapped that and started over with Kubernetes the Hard Way instead, building each piece by hand.

Environment

Host Role OS Memory
UbuntuDesktop-Sandbox1 Jumpbox Ubuntu 22.04 LTS (Jammy) 16GB
k8s-solo Controller Ubuntu Server 22.04.5 LTS 4 GB
k8s-solo-w1 Worker 1 Ubuntu Server 22.04.5 LTS 2 GB
k8s-solo-w2 Worker 2 Ubuntu Server 22.04.5 LTS 2 GB

All VMs run on Proxmox. The jumpbox is an existing Ubuntu sandbox VM I already had, repurposed for this project. Static IPs and hostnames are set for all four VMs, and SSH keys are already set up from the jumpbox to all three nodes.

Topology is 1 controller + 2 workers.

01 - Prerequisites

kubectl is installed on the jumpbox:

root@luger-VirtualBox:~/kubernetes-the-hard-way/downloads# kubectl version --client
Client Version: v1.32.3
Kustomize Version: v5.5.0
Enter fullscreen mode Exit fullscreen mode

02 - Jumpbox

Repo cloned to:

root@luger-VirtualBox:~/kubernetes-the-hard-way# pwd
/root/kubernetes-the-hard-way
Enter fullscreen mode Exit fullscreen mode

Binaries downloaded into downloads/:

root@luger-VirtualBox:~/kubernetes-the-hard-way/downloads# ls -ltr
total 16
drwxr-xr-x 2 root root 4096 Jan  7  2025 cni-plugins
drwxr-xr-x 2 root root 4096 Sep  7 03:59 controller
drwxr-xr-x 2 root root 4096 Sep  7 03:59 client
drwxr-xr-x 2 root root 4096 Sep  7 03:59 worker
Enter fullscreen mode Exit fullscreen mode

SSH from the jumpbox to k8s-solo, k8s-solo-w1, and k8s-solo-w2 is already working with key-based auth, no passwords.

Top comments (0)