Skip to main content
NetApp Solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

MLflow-Bereitstellung

Beitragende

In diesem Abschnitt werden die Aufgaben beschrieben, die Sie ausführen müssen, um MLflow in Ihrem Kubernetes-Cluster bereitzustellen.

Hinweis MLFlow kann auf anderen Plattformen als Kubernetes implementiert werden. Die Implementierung von MLFlow auf anderen Plattformen als Kubernetes ist nicht im Umfang dieser Lösung enthalten.

Voraussetzungen

Bevor Sie die in diesem Abschnitt beschriebenen Bereitstellungsaufgaben ausführen, gehen wir davon aus, dass Sie bereits die folgenden Aufgaben ausgeführt haben:

  1. Sie verfügen bereits über einen funktionierenden Kubernetes-Cluster.

  2. Sie haben NetApp Trident bereits in Ihrem Kubernetes-Cluster installiert und konfiguriert. Weitere Informationen zu Trident finden Sie im "Trident Dokumentation".

Installieren Sie Helm

MLflow wird mit Helm implementiert, einem beliebten Paketmanager für Kubernetes. Bevor Sie MLflow implementieren, müssen Sie Helm auf Ihrem Kubernetes-Kontroll-Node installieren. Um Helm zu installieren, folgen Sie den "Installationsanweisungen" Anweisungen in der offiziellen Helm-Dokumentation.

Standard-Kubernetes StorageClass festlegen

Bevor Sie MLflow implementieren, müssen Sie eine Standard-StorageClass innerhalb Ihres Kubernetes-Clusters festlegen. Befolgen Sie die Anweisungen im Abschnitt, um eine Standard-StorageClass innerhalb Ihres Clusters festzulegen "Kubeflow Deployment" . Wenn Sie bereits eine Standard-StorageClass innerhalb Ihres Clusters festgelegt haben, können Sie diesen Schritt überspringen.

Bereitstellen von MLflow

Sobald die Voraussetzungen erfüllt sind, können Sie mit der MLflow-Bereitstellung mit dem Helm-Diagramm beginnen.

Konfigurieren Sie die MLflow Helm Chart Deployment.

Bevor wir MLflow mit dem Helm-Diagramm bereitstellen, können wir die Bereitstellung so konfigurieren, dass sie NetApp Trident-Speicherklasse verwendet und andere Parameter entsprechend unseren Anforderungen mithilfe einer config.yaml-Datei ändern. Ein Beispiel für die Datei config.yaml finden Sie unter: https://github.com/bitnami/charts/blob/main/bitnami/mlflow/values.yaml

Hinweis Sie können die Trident storageClass unter dem Parameter global.defaultStorageClass in der Datei config.yaml einstellen (z.B. storageClass: "ontap-flexvol").

Installieren des Helm-Diagramms

Das Helm-Diagramm kann mit der benutzerdefinierten config.yaml-Datei für MLflow mit folgendem Befehl installiert werden:

helm install oci://registry-1.docker.io/bitnamicharts/mlflow -f config.yaml --generate-name --namespace jupyterhub
Hinweis Der Befehl implementiert MLflow auf dem Kubernetes-Cluster in der benutzerdefinierten Konfiguration über die bereitgestellte config.yaml-Datei. MLflow wird im angegebenen Namespace implementiert und ein zufälliger Release-Name wird über kubernetes für die Version gegeben.

Implementierung Prüfen

Nach der Bereitstellung des Helm-Diagramms können Sie überprüfen, ob der Dienst über folgende Funktionen zugänglich ist:

kubectl get service -n jupyterhub
Hinweis Ersetzen Sie jupyterhub durch den Namespace, den Sie während der Bereitstellung verwendet haben.

Folgende Dienste sollten angezeigt werden:

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
Hinweis Wir haben die config.yaml-Datei bearbeitet, um den NodePort-Dienst für den Zugriff auf MLflow auf Port 30002 zu verwenden.

Zugriff auf MLflow

Sobald alle mit MLflow verbundenen Dienste laufen, können Sie über die angegebene NodePort- oder loadbalancer-IP-Adresse darauf zugreifen (z.B. http://10.61.181.109:30002)