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