Deploying with Helm
Deploying ZenML on cloud using Docker or Helm
If you wish to deploy ZenML on clouds other than AWS, Azure and GCP or on any other resource like a serverless platform or an on-prem Kubernetes cluster, you have two options:
- Using a Docker container.
- Using the Helm chart.
Using Helm
The ZenML repository hosts a Helm chart that can be used to deploy to Kubernetes. This chart is not hosted on an online repository yet and so you can follow the steps below:
-
Clone the
zenml-io/zenml
repository. -
Go into the directory that hosts the chart.
-
Take a look at the
values.yaml
file to configure settings for your ZenML deployment. Make sure you have a MySQL database to use with the server and fill thezenml.database
map with its values. -
Once everything is configured, you can now run the following command to create a release.
You will need to have an existing Kubernetes cluster and kubectl
installed
and configured, in addition to having helm
itself.
Connecting to deployed ZenML
Once ZenML is deployed, one or multiple users can connect to with the zenml connect
command. If no arguments are supplied, ZenML will attempt to connect to the last ZenML server deployed from the local host using the zenml deploy
command:
ZenML Connect: Various options
To connect to a ZenML server, you can either pass the configuration as command line arguments or as a YAML file:
or
The YAML file should have the following structure when connecting to a ZenML server:
Example of a ZenML server YAML configuration file:
Both options can be combined, in which case the command line arguments will override the values in the YAML file. For example, it is possible and recommended that you supply the password only as a command line argument:
To disconnect from the current ZenML server and revert to using the local default database, use the following command: