36 lines
2.4 KiB
Markdown
36 lines
2.4 KiB
Markdown
|
# Computing in the Kubernetes Framework
|
||
|
|
||
|
This repository contains some resources for getting started with OpenMPI and high-performance computing on Kubernetes. This accompanies a presentation given by Garrett Mills at the KU CRMDA on Docker, Kubernetes, and high-performance computing.
|
||
|
|
||
|
## Get up and running.
|
||
|
|
||
|
If you want to follow along or try OpenMPI on Kubernetes out for yourself, you can get started by creating a virtual cluster on your machine with Minikube. Here's how to get set up:
|
||
|
|
||
|
1. Install VirtualBox. Our test Kubernetes cluster will run on a collection of VMs, so we'll install VirtualBox to make that possible. [Here's the download.](https://www.virtualbox.org/wiki/Downloads)
|
||
|
2. Install `kubectl`. This is the Kubernetes CLI tool. It's how you interface with Kubernetes. [Grab it here.](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
|
||
|
3. Install Minikube. Minikube is a software tool that creates a Kubernetes cluster with VMs on your local machine. This is an excellent tool for testing deployments. [Get it here.](https://kubernetes.io/docs/tasks/tools/install-minikube/)
|
||
|
4. Install Helm. Helm is a Kubernetes package manager used by the cluster framework. [Here's the link.](https://github.com/helm/helm/releases/tag/v2.13.1)
|
||
|
5. Clone this repository to your computer using Git: `git clone https://git.glmdev.tech/glmdev/k8s-hpc-demo`
|
||
|
|
||
|
That's it! You're ready to start using the Kubernetes cluster on your computer.
|
||
|
|
||
|
## Basic use.
|
||
|
|
||
|
From within the cloned repository's folder, run the `./setup.sh` command. This will clone the `kube-openmpi` repository and generate the SSH key used by OpenMPI.
|
||
|
|
||
|
Now, we can start the cluster by running the `./start_cluster.sh` script. This will create the Kubernetes resources and start the cluster. If you have the `watch` command line tool installed, it will open up the cluster status page so you can see when it's done initializing.
|
||
|
|
||
|
At this point, we have a fully-functional OpenMPI cluster. By default, the definitions provided in this repo will create 5 worker nodes. You can run commands on the cluster using the `./cluster_exec.sh` script. For example:
|
||
|
|
||
|
```bash
|
||
|
$ ./cluster_exec.sh mpiexec --allow-run-as-root --hostfile /kube-openmpi/generated/hostfile -n 5 echo "Hello, world!"
|
||
|
Hello, world!
|
||
|
Hello, world!
|
||
|
Hello, world!
|
||
|
Hello, world!
|
||
|
Hello, world!
|
||
|
```
|
||
|
|
||
|
When you're finished with the cluster, stop it using the `./stop_cluster.sh` command.
|
||
|
|