Kubernetes cluster compute requirements¶
Minimum Requirements¶
A minimal cluster, with no redundancy requires the following:
Any flavour of Kubernetes pre-installed (Vanilla Kubernetes, RedHat OpenShift, Rancher etc) installed on Ubuntu or Redhat on Physical hardware or a VM
48 Cores
64GB RAM
200GB disk space
Either 1TB local storage or 1TB NFS storage via a CSI (or if pre-configured PV’s, see below).
Recommended Setup¶
A production cluster should have 3 master nodes and 2-3 worker nodes.
Any flavour of Kubernetes is supported (Vanilla Kubernetes, RedHat OpenShift, Rancher etc) installed on Ubuntu or Redhat on Physical hardware or a VM.
You can use a pre-existing cluster, MetalSoft doesn’t need a dedicated cluster as long as the requirements are met.
Kubernetes Node requirements¶
Master nodes
4 Cores
8GB RAM
200GB disk space
Worker nodes
16 Cores
32GB RAM
200GB disk space
1TB NFS storage via a CSI (or if pre-configured PV’s, see below)
Storage Requirements¶
Storage is the most important bottleneck for scaling MetalSoft. Both disk space and sufficient performance is required for a successful deployment.
Storage space requirements¶
Support for persistent volumes with a minimum of 1TB of disk space is required either via a CSI or with the following pre-configured PVs:
image builder ISO storage 800GB RWM (read-write-many) both image builder and ms-tunnel server use this volume
controller-pvc 5Gb RWX
mysql-pvc 100Gb RWX
redis-pvc 10Gb RWX
repo-pvc 10Gb RWX
other microservices 10Gb RWX
Storage performance requirements¶
Important
For best performance we recommend that the storage system used by the Kubernetes cluster to be either external to the cluster (another cluster, appliance, single server, etc.) or inside the cluster but isolated on nodes specifically dedicated to storage. This will prevent from high I/O on the workload nodes affecting other MetalSoft components or Kubernetes system workloads.
The storage must also allow for ReadWriteMany access mode and have CSI driver/provisioner available for it (ex. NFS with NFS Subdir External Provisioner). This will allow the image builder volume to be mounted by multiple image-builder pods.
Reference performance numbers:
4k Random Read : 1000 IOPs, 4MB/s
4k Random Write: 500 IOPs, 2MB/s