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
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:
/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
Updated 10 months ago