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.
More information:
- https://charmhub.io/volcano
- https://charmhub.io/volcano-admission
- https://charmhub.io/volcano-controllers
- https://charmhub.io/volcano-scheduler
The suite of Volcano charms can be deployed within any kubernetes cluster so long as one has a valid admin token in a kubeconfig.
If deploying to an existing machine based juju controller, you'll first need to add a kubernetes-cloud with add-k8s
KUBECONFIG=path/to/my/kubeconfig juju add-k8s k8s-cloud
Next, create a kubernetes namespace for volcano with a juju model
juju add-model volcano-system
Then deploy the bundle from charmhub
juju deploy volcano --trust
juju add-model volcano-system
juju deploy volcano-admission --trust
juju deploy volcano-controllers --trust
juju deploy volcano-scheduler --trust
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
-
See the Juju SDK documentation for more information about developing and improving charms.