Skip to content

VM Installation Requirements

Machine Requirements

The installation script will install all the required packages. So the VM must not have other conflicting packages (including but not limited to) like docker, application servers etc. This is to avoid package conflicts and port conflicts while installing the Kubernetes cluster and the traceable platform.

Operating System

Ubuntu

  • 18.04, 20.04, 22.04, 24.04

RHEL

  • 7.9, 8.0-8.9, 9

Reference: Supported OS

Local Disks

The Kubernetes components use the local disk for installations and for holding the runtime state and logs. It uses /var and /tmp directories for this purpose.

Disk Requirements

  • 100GB at /var
  • 10GB+ at /tmp

Alternative Mounting (if /var cannot be expanded)

If 100GB cannot be allocated to /var, then mount a 100G disk at another location eg /data and then mount the following dirs to that directory:

dir label cluster
/var/lib/kubelet kubelet *
/var/lib/containerd containerd kurl
/var/lib/kurl kurl kurl
/var/openebs data kurl
/var/lib/rancher rancher rke2
/var/traceable-data data rke2
/var/log/pods logs *
/var/lib/cni cni *

Make sure that all the above directories are local disk (non-NFS):

Bug Reference: containerd issue #6273

Mount the Directories using TI

To mount all the /var/** directories to a different data directory using --mount-to option.

This is required in cases where the /var directory size is fixed and cannot be expanded.
eg. [ --mount-to=/data ]. The paths will be mounted as [mount --bind /var/lib/kubelet /data/var/lib/kubelet]

Mount the Directories manually

Use the below commands:

#!/usr/bin/env bash

DIRS=(
/var/lib/kubelet
/var/lib/containerd
/var/lib/kurl
/var/lib/cni
/var/openebs
/var/lib/rancher
/var/traceable-data
/var/log/pods
)

for dir in "${DIRS[@]}"; do
  data_dir="/data${dir}"

  echo "Mounting $data_dir -> $dir"

  mkdir -p "$data_dir"
  mkdir -p "$dir"

  /usr/bin/mount --bind "$data_dir" "$dir"

  if ! grep -q "$data_dir $dir" /etc/fstab; then
    echo "$data_dir $dir none defaults,bind 0 0" >> /etc/fstab
  fi
done

NFS Storage

The databases in the traceable platform use NFS to store the data. For any production installs, an enterprise-grade NFS solution must be available.

Storage Requirements

  • The underlying disks would be SSDs supporting 15-20K IOPS
  • The network must support 10Gbps throughput

Permissions

5.1 Sudo Permissions

The user must have sudo permissions to perform the K8s installation.

5.2 Exec permissions for /var/lib/

The /var/lib filesystem must NOT be mounted with the noexec option in /etc/fstab.

We have observed installation failures when /var/lib is mounted with noexec, even when files have executable permissions (777) set correctly.