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.