HomeGuidesRecipesAPI EndpointsRelease NotesCommunity
Log In
Guides

CentOS 7 Helm Chart

In this guide we will go from a basic CentOS 7 operating system to a fully functioning Layar installation. This guide is intended as an example installation only and makes configuration decisions that may not be best suited for your environment.

Prerequisites

Hardware

  • 256 GB RAM
  • 16+ CPUs
  • 1TB SSD available to /data
  • 2x NVIDIA A100 generation GPUs (or later)

Software

  • The system must have an external DNS entry (not relying on /etc/hosts) with the corresponding IP assigned to the host.
  • Internet access from the installation system is a requirement.
  • Swap must be disabled.
  • SELinux must be disabled or set to Permissive.

Installation

Commands should be run as root or prefixed with sudo.

Ensure you have current Docker installed

Both Client and Server output should show version 24.0.5. If not please follow the instructions for installing docker on CentOS here before proceeding.

docker version

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

Configure NetworkManager to ignore Calico interfaces

If using NetworkManager, edit the file /etc/NetworkManager/conf.d/calico.conf and set the following:

[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tunl*;interface-name:vxlan.calico;interface-name:wireguard.cali

Restart NetworkManager

systemctl restart NetworkManager

Install kernel development packages

yum -y install kernel-devel-$(uname -r) kernel-headers-$(uname -r)

Install and enable the EPEL repository

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum-config-manager --enable epel

Install CUDA 12

Install CUDA per the instructions at NVIDIA. Ensure DKMS is also installed.
https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

Install NVIDIA Docker toolkit

yum-config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl --now enable docker

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
   && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | tee /etc/yum.repos.d/nvidia-docker.repo

yum clean expire-cache
yum 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

Edit /etc/yum.repos.d/kubernetes.repo and add:

[kubernetes]

name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

Install Kubernetes

yum install -y kubeadm-1.23.15-0.x86_64 kubelet-1.23.15-0.x86_64 kubectl-1.23.15-0.x86_64
/usr/bin/kubeadm init --kubernetes-version=1.23.15 --token-ttl 0 --pod-network-cidr=10.17.0.0/16 -v 5
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

Install NGINX Ingress controller

kubectl apply -f https://vyasa-static-assets.s3.amazonaws.com/layar/nginx-ingress.yaml

Install Calico CNI

kubectl create -f https://vyasa-static-assets.s3.amazonaws.com/layar/tigera-operator.yaml
kubectl create -f https://vyasa-static-assets.s3.amazonaws.com/layar/custom-resources.yaml

Let head node run pods

/usr/bin/kubectl taint nodes --all node-role.kubernetes.io/master:NoSchedule-

Install local volume provisioner

/usr/bin/kubectl apply -f https://vyasa-static-assets.s3.amazonaws.com/layar/local-storage-provisioner.yml

Set default storage class

kubectl patch storageclass 'local-path' -p '{"metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'

Install Helm

wget -P /usr/local/bin/ https://vyasa-static-assets.s3.amazonaws.com/layar/helm
chmod +x /usr/local/bin/helm

Add the Layar helm repository

helm repo add vyasa https://helm.vyasa.com/charts/ --username vyasahelm --password "sail#away()"
helm repo update

Install Layar

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

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