System requirements#
This page describes the system requirements for k0s.
Minimum memory and CPU requirements#
The minimum requirements for k0s detailed below are approximations, and thus your results may vary.
Role | Memory (RAM) | Virtual CPU (vCPU) |
---|---|---|
Controller node | 1 GB (2 recommended) | 1 vCPU (2 recommended) |
Worker node | 0.5 GB (1 recommended) | 1 vCPU (2 recommended) |
Controller + worker | 1 GB (2 recommended) | 1 vCPU (2 recommended) |
Controller node recommendations for large clusters#
# of Worker nodes | # of Pods (besides default) | Recommended RAM | Recommended vCPU |
---|---|---|---|
up to 10 | up to 1000 | 1-2 GB | 1-2 vCPU |
up to 50 | up to 5000 | 2-4 GB | 2-4 vCPU |
up to 100 | up to 10000 | 4-8 GB | 2-4 vCPU |
up to 500 | up to 50000 | 8-16 GB | 4-8 vCPU |
up to 1000 | up to 100000 | 16-32 GB | 8-16 vCPU |
up to 5000 | up to 150000 | 32-64 GB | 16-32 vCPU |
k0s has the standard Kubernetes limits for the maximum number of nodes, pods, etc. For more details, see the Kubernetes considerations for large clusters.
k0s controller node measured memory consumption can be found below on this page.
Storage#
It's recommended to use an SSD for optimal storage performance (cluster latency and throughput are sensitive to storage).
The specific storage consumption for k0s is as follows:
Role | Storage (k0s part) |
---|---|
Controller node | ~0.5 GB |
Worker node | ~1.3 GB |
Controller + worker | ~1.7 GB |
Note: The operating system and application requirements must be considered in addition to the k0s part.
Host operating system#
- Linux (kernel v3.10 or later)
- Windows Server 2019
Architecture#
- x86-64
- ARM64
- ARMv7
Networking#
For information on the required ports and protocols, refer to networking.
OS dependencies#
In most cases, k0s does not have any OS level dependencies. The needed kernel configurations are documented here.
Controller node measured memory consumption#
The following table shows the measured memory consumption in the cluster of one controller node.
# of Worker nodes | # of Pods (besides default) | Memory consumption |
---|---|---|
1 | 0 | 510 MB |
1 | 100 | 600 MB |
20 | 0 | 660 MB |
20 | 2000 | 1000 MB |
50 | 0 | 790 MB |
50 | 5000 | 1400 MB |
100 | 0 | 1000 MB |
100 | 10000 | 2300 MB |
200 | 0 | 1500 MB |
200 | 20000 | 3300 MB |
Measurement details:
- k0s v1.22.4+k0s.2 (default configuration with etcd)
- Ubuntu 20.04.3 LTS, OS part of used memory was around 180 MB
- Hardware: AWS t3.xlarge (4 vCPUs, 16 GB RAM)
- Pod image: nginx:1.21.4