MLflow 部署
本節說明在 Kubernetes 叢集中部署 MLflow 時必須完成的工作。
您可以在 Kubernetes 以外的平台上部署 MLflow 。在 Kubernetes 以外的平台上部署 MLflow 不屬於本解決方案的範圍。 |
先決條件
在您執行本節所述的部署練習之前、我們假設您已經執行下列工作:
-
您已經擁有有效的Kubernetes叢集。
-
您已在 Kubernetes 叢集中安裝及設定 NetApp Trident 。如需 Trident 的詳細資訊、請參閱"Trident文件"。
安裝Helm
MLflow 是使用知名的 Kubernetes 套件管理程式 Helm 來部署。在部署 MLflow 之前、您必須先在 Kubernetes 控制節點上安裝 Helm 。若要安裝 Helm 、請遵循 "安裝說明" 正式 Helm 文件中的。
設定預設Kubernetes StorageClass
在部署 MLflow 之前、您必須在 Kubernetes 叢集中指定預設 StorageClass 。若要在叢集中指定預設 StorageClass 、請遵循一節中所述的指示 "Kubeflow部署" 進行。如果您已在叢集內指定預設StorageClass、則可以跳過此步驟。
部署 MLflow
一旦符合先決條件、您就可以使用船舵圖表開始進行 MLflow 部署。
設定 MLflow Helm 圖表部署。
在使用 Helm 圖表部署 MLflow 之前、我們可以設定部署以使用 NetApp Trident 儲存類別、並使用 config.yaml 檔案變更其他參數以符合我們的需求。* 組態 .yaml* 檔案的範例可在以下網址找到: https://github.com/bitnami/charts/blob/main/bitnami/mlflow/values.yaml
您可以在 config.yaml 檔案中的 * global.defaultStorageClass* 參數下設定 Trident storageClass (例如 storageClass :「 ontp-FlexVol 」)。 |
安裝 Helm 圖表
使用下列命令、可以使用 MLflow 的自訂 * 組態 .yaml* 檔案來安裝 Helm 圖表:
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 或負載平衡器 IP 位址(例如)來存取它。 http://10.61.181.109:30002