Building a Cheap, Low-Power Kubernetes Node with Raspberry Pi 4
A Raspberry Pi 4 can serve as an ARM64 Kubernetes worker in a home lab, edge deployment or small development cluster. It handles lightweight monitoring agents, internal APIs, automation jobs and low-traffic sites with modest electricity use. The advantage is economical, replaceable capacity rather than raw performance.
Keep the cluster brain away from the board. A Pi 4 is a convincing worker, but the API server and etcd need more headroom than one constrained system provides. Run the control plane on an x86 or ARM64 mini PC, larger server or hosted service that supports custom workers, then join the Pi as a schedulable node.
The design favours a dependable worker: 64-bit Linux, USB SSD storage, active cooling, pinned Kubernetes packages and metrics that expose saturation. Used Pi 4 hardware is readily available in Australia, making it practical to begin with one board and expand as workloads justify it.
Why a Pi 4 Fits the Worker Role
The strongest use case puts software close to the network or hardware. A Pi in a home office can run internal DNS; one in a workshop can collect sensor data; another in a regional office can host a small service. Kubernetes supplies scheduling, health checks and restarts while the board contributes a bounded slice of capacity.
Resources, not compute, set the limits. Four gigabytes suits ordinary add-ons, while eight gigabytes gives overlapping rollouts more room. CPU requests and limits prevent one pod from starving the kubelet. Memory-heavy databases, latency-sensitive packet processing and safety-critical services belong on stronger hardware.
Choose friendly workloads such as batch jobs, webhook receivers, cache replicas, lightweight web servers and observability components. A narrow role also gives you an obvious fallback when the board is drained, rebooted or replaced.
Parts, Power and Australian Sourcing
Budget beyond the board. A Pi 4 Model B with 4 GB or 8 GB of RAM, a reputable 5.1 V/3 A USB supply, an active cooler and a USB 3 SSD form the core. Prefer Gigabit Ethernet for cluster traffic; Wi-Fi works but adds latency and consumes more power. Keep a microSD card for recovery, not routine writes.
- Pi 4 Model B with 4 GB or 8 GB of memory
- Quality 5.1 V, 3 A USB-C power supply and cable
- Active cooler or temperature-controlled case
- USB 3 SSD, Ethernet cable and spare microSD card
Australian buyers can compare AUD prices through local marketplace sellers in Sydney, Melbourne and Brisbane. Domestic stock normally includes 10% GST, while overseas kits may attract customs duty, GST and carrier handling fees. Compare the landed cost, not the tempting international checkout price.
Choose a supply suitable for Australian 230 V mains, and do not treat the Pi’s USB-C port as a mains connector. Hot summers in Brisbane and Perth make airflow essential; a fan-equipped case helps prevent throttling and keeps performance measurements consistent.
Technical books can fill the gaps without another course. Australian readers can search second-hand technical books for used Linux, networking or systems-administration titles.
Host Preparation Before Cluster Join
Install a supported 64-bit Linux release and make it boot from the SSD after every restart. Ubuntu Server 24.04 LTS is a practical base, provided its kernel, container runtime and Kubernetes versions remain within upstream support. Pin package versions rather than relying on an unreviewed convenience script.
Prepare cgroup v2, bridge and overlay filesystem support, time synchronisation and a stable identity. Give the Pi a descriptive hostname and reserve its address through the local DHCP server. Disable swap on the workload path, set persistent kernel parameters and test disk speed before joining.
One board can be configured by hand. A fleet is better handled as code: Karl Katzke’s account of Ansible across 50 servers shows how repeatable preparation, role assignments and verification replace scattered manual changes.
containerdstarts cleanly and pulls ARM64 imageskubeadm,kubeletandkubectlmatch the cluster’s supported version- The SSD mounts by a stable identifier before services start
- A lightweight test pod runs with CPU and memory limits
- Temperature, disk and kubelet metrics are visible
Joining the Kubernetes Cluster
Create or select the control plane first, initialise it and add a worker join command. Confirm the endpoint is reachable and certificates match before running it on the Pi. A DHCP reservation keeps the endpoint stable after a lease change.
Do not expose an unauthenticated API server or kubelet endpoint to the internet. Use a private network or encrypted overlay such as WireGuard or Tailscale, and restrict access to management paths. Check source quality as well: a Dutch casino page offers no Kubernetes guidance, while upstream project documentation is the proper reference.
After joining, confirm that kubectl get nodes reports Ready, then schedule a tiny test workload. Test pod eviction, node drain and reboot recovery before adding important traffic. Keep authoritative data elsewhere and replicate services that need availability.
Measure, Operate and Expand
Measure consumption instead of trusting nominal wattage. A USB power meter shows the difference between idle and loaded operation; kernel readings help with trends but cannot measure the whole board. Eight to twelve watts is a realistic working range for a Pi 4 with SSD, Ethernet and active cooling.
Australian electricity tariffs differ by state and retailer, but the calculation is simple. At 10 W average, the Pi uses about 87.6 kWh per year; multiply that by the customer’s AUD-per-kWh rate. Include the router, switch and any always-on mini PC hosting the control plane, since they may outweigh the worker’s saving.
Run node-exporter or an equivalent agent. Watch CPU temperature, memory pressure, container restarts, disk latency and kubelet health, with alerts for patterns that precede failure. Keep an easy recovery path for the SSD and document labels, taints and workloads so another person can support the node.
Start with one Pi, one SSD and one constrained workload. Record idle and loaded power for seven days, connect the monitoring dashboards, and add another board only when the measurements reveal genuine spare capacity.
Karl Katzke