Deploy to EKS

This guide shows how to deploy Charmed MLflow on AWS Elastic Kubernetes Service (EKS). In this guide, you will create an AWS EKS cluster, connect Juju to it, and deploy Charmed MLflow.

Requirements

Create an EKS cluster

See the EKS creation guide to learn how to create an EKS cluster where Charmed MLflow will be deployed.

Set up Juju

First, install Juju:

sudo snap install juju --channel=3.6/stable

Connect Juju to Kubernetes (K8s):

juju add-k8s kubeflow

Create a controller:

juju bootstrap --no-gui kubeflow kubeflow-controller

Note

You can use any name for the controller.

Add the kubeflow model to your Juju controller:

juju add-model kubeflow

Note

You must choose kubeflow as the model name to connect MLflow to Kubeflow.

Deploy MLflow

Deploy the MLflow bundle as follows:

juju deploy mlflow --channel=2.22/stable --trust

This deploys the stable version of Charmed MLflow with MinIO as the object storage and MySQL as the metadata store.

Once the deployment is completed, you will see the following message:

Deploy of bundle completed.

You can use the following command to check the status of all model components:

juju status

The deployment is ready when all the applications and units in the bundle are in active status. You can also use the watch option to continuously monitor the statuses:

juju status --watch 5s

During the deployment process, some of the components statuses may momentarily change to blocked or error state. This is an expected behaviour, and these statuses should resolve by themselves as the bundle configures.

Access your deployment

To access your Charmed MLflow deployment, navigate to the following URL:

http://localhost:31380/

This will take you to the MLflow User Interface (UI).

Note

By default, Charmed MLflow creates a NodePort on port 31380, which you can use to access the MLflow UI.