Skip to main content
NetApp artificial intelligence solutions
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

MLflow部署

本节介绍在 Kubernetes 集群中部署 MLflow 必须完成的任务。

备注 可以在 Kubernetes 以外的平台上部署 MLflow。在 Kubernetes 以外的平台上部署 MLflow 超出了本解决方案的范围。

前提条件

在执行本节概述的部署练习之前,我们假设您已经执行了以下任务:

  1. 您已经有一个可以运行的 Kubernetes 集群。

  2. 您已经在 Kubernetes 集群中安装并配置了NetApp Trident 。有关Trident的更多详细信息,请参阅"Trident文档"

安装 Helm

MLflow 使用 Helm(Kubernetes 的流行包管理器)进行部署。在部署 MLflow 之前,必须在 Kubernetes 控制节点上安装 Helm。要安装 Helm,请按照 "安装说明"在 Helm 官方文档中。

设置默认 Kubernetes StorageClass

在部署 MLflow 之前,您必须在 Kubernetes 集群中指定一个默认 StorageClass。要在集群中指定默认 StorageClass,请按照"Kubeflow部署"部分。如果您已经在集群中指定了默认 StorageClass,则可以跳过此步骤。

部署 MLflow

满足先决条件后,您就可以使用 Helm Chart 开始 MLflow 部署。

配置 MLflow Helm Chart 部署。

在使用 Helm 图表部署 MLflow 之前,我们可以使用 config.yaml 文件将部署配置为使用NetApp Trident存储类并更改其他参数以满足我们的需求。您可以在以下位置找到 config.yaml 文件的示例: https://github.com/bitnami/charts/blob/main/bitnami/mlflow/values.yaml

备注 您可以在 config.yaml 文件中的 global.defaultStorageClass 参数下设置Trident storageClass(例如 storageClass:“ontap-flexvol”)。

安装 Helm Chart

可以使用以下命令将 Helm 图表与 MLflow 的自定义 config.yaml 文件一起安装:

helm install oci://registry-1.docker.io/bitnamicharts/mlflow -f config.yaml --generate-name --namespace jupyterhub
备注 该命令通过提供的*config.yaml*文件在自定义配置中的 Kubernetes 集群上部署 MLflow。 MLflow 部署在给定的命名空间中,并通过 kubernetes 为该版本提供一个随机发布名称。

检查部署

Helm 图表部署完成后,您可以使用以下命令检查服务是否可访问:

kubectl get service -n jupyterhub
备注 jupyterhub 替换为您在部署期间使用的命名空间。

您应该会看到以下服务:

NAME                              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)           AGE
mlflow-1719843029-minio           ClusterIP   10.233.22.4     <none>        80/TCP,9001/TCP   25d
mlflow-1719843029-postgresql      ClusterIP   10.233.5.141    <none>        5432/TCP          25d
mlflow-1719843029-postgresql-hl   ClusterIP   None            <none>        5432/TCP          25d
mlflow-1719843029-tracking        NodePort    10.233.2.158    <none>        30002:30002/TCP   25d
备注 我们编辑了 config.yaml 文件以使用 NodePort 服务访问端口 30002 上的 MLflow。

访问 MLflow

一旦与 MLflow 相关的所有服务都启动并运行,您就可以使用给定的 NodePort 或 LoadBalancer IP 地址访问它(例如 http://10.61.181.109:30002)