System Requirements
k3s runs on modest hardware and supports both x86_64 and ARM processors.
k3s is deliberately light. Even so, it helps to know the minimums.
Hardware
| Role | Minimum RAM | Recommended |
|---|---|---|
| Server | 512 MB | 1 GB+ |
| Agent | 512 MB | 1 GB+ |
Two CPU cores are recommended for a server. A single core works for tiny setups.
Operating system and CPU
- Most modern Linux distributions (Ubuntu, Debian, Raspberry Pi OS, SUSE, RHEL).
- Architectures:
x86_64,ARM64, andARMv7. - A supported kernel with cgroups enabled.
On a Raspberry Pi you often need to enable memory cgroups in the boot command line before k3s will start.
Example
# Check architecture and memory before installing
uname -m # e.g. x86_64 or aarch64
free -h # available memory
nproc # CPU cores
# Confirm cgroups are available
cat /proc/cgroups | headWhen to use it
- A team verifies a 1-vCPU 512 MB RAM VM meets the minimum k3s requirements before provisioning a cluster for a small internal app.
- An SRE checks that port 6443 is open in the firewall rules before attempting to join agent nodes to an existing k3s server.
- A developer confirms the host kernel supports required cgroups before deploying k3s on a custom embedded Linux distribution.
More examples
Check cgroup support
Runs k3s's built-in config checker to verify the kernel has the cgroup features k3s needs.
k3s check-config
# Or manually:
grep -E 'cgroup|memory' /proc/cgroupsVerify required ports are free
Checks that the ports k3s needs are not already in use before starting the server.
ss -tlnp | grep -E '6443|8472|10250'
# 6443: API server, 8472: Flannel VXLAN, 10250: kubelet metricsInspect CPU and RAM
Shows the CPU count, available RAM, and architecture to confirm the node meets k3s minimum requirements.
nproc
free -mh
uname -m # x86_64 or aarch64 (ARM64)
Discussion