The clearml-server is the backend service infrastructure for ClearML. It allows multiple users to collaborate and manage their experiments. By default, *ClearML is set up to work with the ClearML Demo Server, which is open to anyone and resets periodically. In order to host your own server, you will need to install clearml-server and point ClearML to it.
clearml-server contains the following components:
Use this repository to add clearml-server to your Helm and then deploy clearml-server on Kubernetes clusters using Helm.
ClearML Server requires that you have elasticsearch, redis and mongodb services.
This chart default templates contains bitnami charts for redis and mongodb, and the official chart for elasticsearch (which is currently still beta).
You can either use the default ones, or use your own deployments and set their name and ports in the appropriate sections of this chart.
In order to use your own deployment, make sure to disable the existing one in the values.yaml (for example, in order to disable elastic set elasticsearch.enabled = false)
pvc-apiserver.yaml, pvc-fileserver.yaml, and pvc-agentservices.yaml.values.yaml set elasticsearch.persistence.enabled=true and set elasticsearch.volumeClaimTemplate.storageClassName to the storageClassName used in your elasticsearch PV.values.yaml set mongodb.persistence.enabled=true and set mongodb.persistence.storageClass to the storageClassName used in your mongodb PV.
Read here for more details.values.yaml set redis.master.persistence.enabled=true and set redis.master.persistence.storageClass to the storageClassName used in your redis PV.
Read here for more details.kubectl is installed and configured (see Install and Set Up kubectl in the Kubernetes documentation)helm installed (see Installing Helm in the Helm documentation)Add the clearml-server repository to your Helm:
helm repo add unit8-mlops https://unit8co.github.io/mlops-clearml-helm-repo/
Confirm the clearml-server repository is now in Helm:
helm search repo unit8-mlops
The helm search results must include unit8-mlops/mlops-clearml-server.
Install unit8-mlops/mlops-clearml-server on your cluster:
helm install clearml-server unit8-mlops/mlops-clearml-server --namespace=default --values=values.yaml
clearml-server is deployed in the default namespace.
If you are upgrading from the single node version of ClearML Server helm charts, follow these steps first:
app=trainsUpdate using new or updated values.yaml
helm upgrade clearml-server unit8-mlops/mlops-clearml-server -f values.yaml
If there are no breaking changes, you can update your deployment to match repository version:
helm upgrade clearml-server unit8-mlops/mlops-clearml-server
Important:
If you previously deployed a clearml-server, you may encounter errors. If so, you must first delete old deployment using the following command:
helm delete --purge clearml-server
After running the helm delete command, you can run the helm install command.
After clearml-server is deployed, the services expose the following node ports:
300083008030081Access clearml-server by creating a load balancer and domain name with records pointing to the load balancer.
Once you have a load balancer and domain name set up, follow these steps to configure access to clearml-server on your k8s cluster:
Create domain records
app.<your domain name>files.<your domain name>api.<your domain name>(for example, app.clearml.mydomainname.com, files.clearml.mydomainname.com and api.clearml.mydomainname.com)
app.<your domain name> should be redirected to k8s cluster nodes on port 30080files.<your domain name> should be redirected to k8s cluster nodes on port 30081api.<your domain name> should be redirected to k8s cluster nodes on port 30008You can also configure the clearml-server for:
For detailed instructions, see the Optional Configuration section in the clearml-server repository README file.