Requirements and arrangement
Gearing up for your K3s cluster
With your Proxmox VE standalone node ready, you can start building your private cloud of services. The idea is to setup first a Kubernetes K3s cluster running on KVM virtual machines. Then, you would deploy the apps and services you want in that Kubernetes cluster.
Requirements for the K3s cluster and the services to deploy in it
Start by reviewing the list of services this guide aims to run in the K3s cluster, and check their requirements. This is necessary to plan in advance how to distribute the hardware resources available in the Proxmox VE server among the virtual machines that will act as nodes of the K3s cluster.
Rancher K3s Kubernetes cluster
Kubernetes, also known as K8s, is an open-source platform for automating deployment, scaling, and management of containerized applications. It can be run as one single node, but to have a more realistic K8s experience it is better to run a cluster of, at least, three VMs.
Since the hardware used in this guide is rather limited, instead of using the official K8s binaries, better use a less demanding version like the Rancher K3s Kubernetes distribution. It is a Kubernetes distribution originally designed for resource-constrained environments. It is compact, lightweight and already comes with the minimum necessary addons to start running right away. Its minimum hardware requirements are these:
| Node | CPU | RAM |
|---|---|---|
| Server | 2 cores | 2 GB |
| Agent | 1 core | 512 MB |
Ghost
The Ghost publishing platform has a different set of prerequisites specified in its official documentation depending on how it is installed. Next are listed the particular minimum requirements (extracted from the mentioned prerequisites) relevant to this guide:
- RAM: 1GB.
- CPU: 1 core.
- OS: Ubuntu 22.04 or 24.04.
- Database: MySQL 8.
Forgejo
Forgejo is a lightweight self-hosted git service that requires the following:
- Database: MariaDB (>= 10.6), MySQL (>= 8.0), PostgreSQL (>= 13), or SQLite3 (builtin)
- A Git installation.
- A functioning SSH server to make connections through SSH rather than HTTPS.
- In the official Forgejo docs there are no minimum or recommended hardware requirements specified.
Kubernetes cluster monitoring stack
For monitoring the K3s Kubernetes cluster, this guide proposes a stack which includes Prometheus and Grafana together with other monitoring services.
Prometheus
Prometheus is a popular open-source systems monitoring and alerting toolkit. There are no minimal or recommended requirements for Prometheus, since it completely depends on how many systems Prometheus will monitor. Still, it needs storage for saving metrics.
Grafana
Grafana is an open source visualization and analytics platform commonly used to visualize Prometheus data. Grafana provides out-of-the-box support for Prometheus, making a natural choice using these two tools together. The minimum hardware requirements for Grafana are:
- Database: SQLite 3, MySQL 8.0+, PostgreSQL 12+.
- RAM: 512 MiB.
- CPU: 1 core.
Arrangement of VMs and services
Now that you have a rough idea about what each software requires, it is time to stablish a proper arrangement for them. This guide proposes deploying three virtual machines with the hardware configuration listed next:
One VM with 2 vCPU and 1.50 GiB of RAM
This will become the K3s server (master) node of the Kubernetes cluster.Two VMs with 3 vCPU and 2 GiB of RAM
These will be K3s agent (worker) nodes where most of the Kubernetes pods will run.
Remember that this guide’s reference hardware only has a four-single-threaded cores CPU and 8 GiB of RAM. If your hardware setup has more RAM and cores than the one used in this guide, you can consider either putting more VMs in your system or just assigning them more RAM and vCPUs. Also, since all your VMs will run on the same host, Proxmox VE is able to use KSM and Auto-Ballooning for a more efficient and dynamic shared use of RAM among them.