Demo customer portal
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Bright K8s

Kubernetes installation with Bright

SSH into the headnode and run:

root@headnode01:~# cm-kubernetes-setup

Alt text

Choose version

Alt text

Select Containerd container runtime

Alt text

We can skip selecting a Dockerhub mirror

Alt text

Basic values of the Kubernetes cluster

Alt text

Select “yes” to expose the Kubernetes API server to the external network.

Alt text

Select the network over which the Kubernetes nodes will communicate

Alt text

Select Kubernetes master nodes (here it should be headnode01, headnode02, loginnode01)

Alt text

We select the category “k8s-workers“ (created in Bright GUI Grouping → Categories)

This category should contain all the nodes to be used as Kubernetes workers

Alt text

We install the etcd nodes in the headnodes (and loginnode)

Alt text

Leave this unchecked

Alt text

We can leave the default ports and ETCD spool dir

Alt text

The suggested CNI is Calico

Alt text

We don’t install Kyverno Policy Engine

Alt text

We select operator packages to be installed

All the operators are optional, however, NVIDIA GPU Operator is recommended

Alt text

All the addons are optional

Alt text

The typical Ingress port values are 80 and 443.

Alt text

It is recommended to install the Bright NVIDIA packages

If not, you will have to install the appropriate drivers manually

Alt text

We don’t install Permission Manager

Alt text

If we have another Storage Class (eg NFS) we may need to not set “Local Path“ as default

Alt text

In production, we’d want the data on the largest/fastest networked storage.

The directory “/cm/shared/” can be already mounted on the network storage.

Alt text

Save config & deploy

Installation logs can be found in “/var/log/cm-kubernetes-setup.log”

After the installation is complete, we can access the Kubernetes cluster

“kubectl” is installed as an environment module [https://modules.readthedocs.io/en/latest/]. This is how Bright typically handles installing software, as it allows several versions of the same library to exist on a file share and be loaded or unloaded.

First, verify that there is a new kubernetes module

root@headnode01:~# module avail

Load module file for Kubernetes

root@headnode01:~# module load kubernetes

Use kubectl

root@headnode01:~# kubectl get pod -A
NAMESPACE              NAME                                         READY   STATUS      RESTARTS   AGE

output removed