Kubernetes cluster compute requirements

Minimum Requirements

No redundancy (1 node)

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 500GB local storage or 500GB NFS storage via a CSI (or if pre-configured PV’s, see below)

Storage Best Practice

Support for persistent volumes with a minimum of 500GB of disk space is required either via a CSI or with the following pre-configured PVs:

  • controller-pvc 5Gb RWX

  • mysql-pvc 100Gb RWX

  • redis-pvc 10Gb RWX

  • repo-pvc 10Gb RWX

  • image builder ISO storage 150GB RWM (read-write-many) both image builder and ms-tunnel server use this volume

  • other microservices 10Gb RWX

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.

You can also use a pre-existing cluster with the desired redundancy as long as there are sufficient resources available on it as per the requirements listed in the respective sections above.