In this guide we will go from a basic Ubuntu 20 install to a fully functioning Kubernetes cluster. This guide is intended as an example installation only and makes configuration decisions that may not be best suited for your environment.

Hardware Requirements

RAM: 128GB

CPU: 8+ cores

GPU: 4x NVIDIA V100 generation or later

Disk: 500GB SSD


Increase operating system vm.max_map_count

echo "vm.max_map_count=262144" > /etc/sysctl.d/99-vyasa.conf 
sysctl -p /etc/sysctl.d/99-vyasa.conf

Install CUDA 11

apt-get install linux-headers-$(uname -r)
distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
mv cuda-$ /etc/apt/preferences.d/cuda-repository-pin-600
apt-key adv --fetch-keys$distribution/x86_64/
echo "deb$distribution/x86_64 /" | sudo tee /etc/apt/sources.list.d/cuda.list
apt-get update
apt install -y cuda-runtime-11-3

Install NVIDIA Docker toolkit

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -s -L | sudo apt-key add - \
&& curl -s -L$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
apt update
apt-get install -y nvidia-docker2

Set docker default runtime

Edit the file /etc/docker/daemon.json and replace its contents with:

"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []

Restart docker

systemctl restart docker

Install Kubernetes

curl | apt-key add -
echo "deb kubernetes-xenial main" >> /etc/apt/sources.list && apt update
apt install -y kubeadm=1.18.16-00 kubelet=1.18.16-00 kubectl=1.18.16-00
/usr/bin/kubeadm init --kubernetes-version=1.18.16 --token-ttl 0 --pod-network-cidr= -v 5
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Install Calico CNI

kubectl create -f
kubectl create -f

Let head node run pods

/usr/bin/kubectl taint nodes --all

Install local volume provisioner

/usr/bin/kubectl apply -f

Set default storage class

kubectl patch storageclass 'local-path' -p '{"metadata":{"annotations":{"":"true"}}}'

Install Helm

wget -P /usr/local/bin/
chmod +x /usr/local/bin/helm

Add the Layar helm repository

helm repo add vyasa --username vyasahelm --password "sail#away()"
helm repo update

Install Layar

Note: Replace MY_URL with the IP address or DNS name of the system.

helm install layar vyasa/layar --set APPURL=MY_URL --set SSL=false

Did this answer your question?