Cutter 8
- vCPU
- 4 × dedicated
- RAM
- 8 GB
- Storage
- 160 GB NVMe SSD
- Transfer
- 10 TB
- IPv4 / IPv6
- 1 / /64 routed
Solution
A K3s control plane node needs 2 cores and 4 GB; a full kubeadm control plane wants 4 GB minimum and 8 GB to be comfortable. Worker nodes are sized by your workloads. Three Cutter 8 instances across three jurisdictions give you a genuinely fault-tolerant cluster for under $110 a month, with private networking over WireGuard between regions.
| Resource | What you actually need |
|---|---|
| Control plane | 2 vCPU / 4 GB for K3s, 4 vCPU / 8 GB for kubeadm |
| Workers | Sized to workloads; 4 vCPU / 8 GB is a sensible unit |
| Disk | NVMe for etcd — it is fsync-latency sensitive |
| Network | WireGuard mesh between regions; native IPv6 for dual-stack clusters |
Location is usually the decision that matters most for this workload — either because latency dominates, or because jurisdiction does.
Three is the minimum for etcd quorum.
Give each node a private address and route the cluster CIDR over it.
curl -sfL https://get.k3s.io | sh -s - server --cluster-init on the first node.
Use the node token from /var/lib/rancher/k3s/server/node-token.
Traefik ships with K3s; add cert-manager for automatic certificates.
K3s runs a control plane in 2 vCPU and 4 GB. Full kubeadm wants 4 GB as an absolute floor and behaves much better with 8 GB. Workers are sized entirely by what you schedule on them.
Yes, over a WireGuard mesh. Keep etcd members within about 100 ms of each other or the Raft heartbeat becomes unstable.
Critically. etcd fsyncs on every write; on HDD or heavily contended storage the cluster becomes unstable under load. Always put it on NVMe.