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¶
An AWS account (How to create an AWS account).
Ubuntu 22.04 or later.
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.