Volcano Scheduler charm

Volcano is a batch system built on Kubernetes.

It provides a suite of mechanisms that are commonly required by many classes of batch & elastic workload including: machine learning/deep learning, bioinformatics/genomics and other “big data” applications. These types of applications typically run on generalized domain frameworks like TensorFlow, Spark, Ray, PyTorch, MPI, etc, which Volcano integrates with.

This work is based on the upstream project volcano.sh.

Deploying the volcano charms

Prerequisites

The Volcano charms must be deployed in a Kubernetes model on your cluster, not a machine model (i.e., it runs on Kubernetes). These instructions assume you have read and followed the instructions for adding your Charmed Kubernetes cluster to your Juju controller. These instructions assume you have a cluster registered with Juju and named ck8s. Please adjust the commands given appropriately if you have used a different name.

Assuming you have a Charmed Kubernetes deployment running and have copied the kube config file from your control-plane:

If necessary, add a new model to deploy the Volcano charm into. Adding a model creates a Kubernetes namespace behind the scenes:

juju add-model volcano-system ck8s

Next, deploy the Volcano charms. Note that it must be deployed using --trust:

juju deploy volcano --trust

The --trust switch means that the Volcano charms will have access to the Juju credentials required to add/remove CRD and webhook.

Integrations

Certificates

The volcano-admission service is exposed as a service on port 443 for internal communication and comes by default with self-signed certificates for this service. Its possible to relate to a certificate provider and have its certs generated by a trusted third-party like Vault or EasyRSA.

CERT_MODEL=<name of certificate model>
juju switch $CERT_MODEL
juju offer <certificate-application>:client certificates
juju switch volcano-system
juju consume admin/${CERT_MODEL}.certificates
juju relate volcano-admission:certificates certificates

We appreciate your feedback on the documentation. You can edit this page or file a bug here.

See the guide to contributing or discuss these docs in our public Mattermost channel.