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).

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