Blog
Kubeflow-Pipelines in 5 Minuten einsatzbereit

Das Projekt Kubeflow Pipelines hat in den letzten Jahren an Popularität gewonnen. Es wird aufgrund seiner Fähigkeiten immer bekannter - Sie können fast jeden maschinellen Lern-Workflow orchestrieren und ihn auf einem Kubernetes-Cluster ausführen. Obwohl KFP sehr leistungsfähig ist, kann der Installationsprozess mühsam sein, vor allem bei anderen Cloud-Anbietern als Google (die den Hauptbeitrag zum Kubeflow-Projekt leisten). Aufgrund der Komplexität und des hohen Einstiegsniveaus scheinen Data Scientists entmutigt zu sein, es überhaupt auszuprobieren. Wir bei GetInData haben ein plattformunabhängiges Helm Chart für Kubeflow Pipelines entwickelt, mit dem Sie innerhalb weniger Minuten loslegen können, egal ob Sie GCP oder AWS nutzen oder KFP lokal einsetzen möchten.
Wie führt man Kubeflow Pipelines auf einem lokalen Rechner aus?
Bevor Sie beginnen, stellen Sie sicher, dass Sie die folgende Software installiert haben:
- Docker mit ~10GB RAM reserviert, mindestens 20GB freierFestplattenspeicher
- Helm v3.6.3 oder neuer,
- Art.
Sobald Sie die gesamte erforderliche Software haben, ist die Installation ein Kinderspiel!
- Erstellen Sie einen lokalen Art-Cluster:
kind create cluster --name kfp --image kindest/node:v1.21.14
2. Installieren Sie Kubeflow Pipelines aus dem Helm Chart von GetInData:
helm repo add getindata https://getindata.github.io/helm-charts/
dann
helm install my-kubeflow-pipelines getindata/kubeflow-pipelines --version 1.6.2 --set
platform.managedStorage.enabled=false --set platform.cloud=gcp --set
platform.gcp.proxyEnabled=false
Jetzt müssen Sie ein paar Minuten warten (normalerweise bis zu 5, je nach Rechner), bis der lokale KIND-Cluster alle Anwendungen hochgefahren hat. Machen Sie sich keine Sorgen, wenn Sie sehen, dass die Pods ml-pipelineoder metadata-grpc-deployment für einige Zeit den Status CrashLoopBackOff haben - sie werden bereit sein, sobald ihre abhängigen Dienste starten.
Die KFP-Instanz ist bereit, sobald alle Pods diesen Status haben Running:
kubectl get pods

Zugriff auf lokale Kubeflow Pipelines-Instanz
Um sich mit KFP UI zu verbinden, erstellen Sie eine Port-Weiterleitung zum ml-pipeline-ui-Dienst:
kubectl port-forward svc/ml-pipeline-ui 9000:80
und öffnen Sie diesen Browser: http://localhost:9000/#/pipelines

Details zur Implementierung
Unser plattformunabhängiges KFP Helm Chart basierte auf dem ursprünglichen Chart, das vom GCP-Team gepflegt wurde. Zum Zeitpunkt der Abspaltung lief GCP Chart in der Version 1.0.4. Wir haben alle Komponenten aktualisiert, so dass KFP in der aktuellen Version 1.6.0 läuft (zum Zeitpunkt der Erstellung dieses Beitrags). GCP-spezifische Komponenten wie CloudSQLProxy und ProxyAgent wurden so umgestaltet, dass sie abhängig von den in der Tabelle angegebenen Werten bereitgestellt werden.
Wir haben eine Einstellung zum Aktivieren oder Deaktivieren von verwaltetem Speicher eingeführt. Einmal aktiviert, kann er verwendet werden:
- CloudSQL und Google Cloud Storage - bei Ausführung auf der Google Cloud Platform
- Amazon RDS und S3 - bei Ausführung auf AWS. Wenn der verwaltete Speicher deaktiviert ist, werden eine lokale MySQL-Datenbank und MinIO-Speicher-Buckets erstellt (wie in diesem Beitrag). Die Unterstützung für Azure steht noch aus. Sie können gerne eine Pull-Anfrage an unser Repository stellen!
Nächste Schritte zur Ausführung von Kubeflow Pipelines
Jetzt, da Sie über eine voll funktionsfähige lokale Kubeflow Pipelines-Instanz verfügen, können Sie KFP DSL erlernen und mit der Erstellung Ihrer eigenen Workflows für maschinelles Lernen beginnen, ohne dass Sie einen vollständigen Kubernetes-Cluster bereitstellen müssen.

Ich empfehle Ihnen auch das Kedro Kubeflow-Plugin von GetInData, mit dem Sie die Kedro-Pipeline auf Kubeflow Pipelines ausführen können. Es unterstützt die Übersetzung von der Kedro-Pipeline-DSL in KFP (unter Verwendung des Pipelines SDK) und die Bereitstellung zum Betrieb eines Kubeflow-Clusters mit praktischen Befehlen. Sobald Sie Ihre Kedro-Pipeline erstellt haben, konfigurieren Sie das Plug-in für die Verwendung einer lokalen KFP-Instanz, indem Sie den Parameter host in conf/base/kubeflow.yaml:
host: http://localhost:9000# (...) rest of the kubeflow.yaml config
Um über das KFP Helm Chart auf dem Laufenden zu bleiben, folgen Sie der Seite Artifact Hub! Wenn Sie mehr über das Kedro Kubeflow Plug-in erfahren möchten, lesen Sie die Dokumentation hier.
Interessieren Sie sich für ML- und MLOps-Lösungen? Wie können Sie ML-Prozesse verbessern und die Lieferfähigkeit von Projekten steigern? Sehen Sie sich unsere MLOps-Demo an und melden Sie sich für eine kostenlose Beratung an.
Verfasst von
Marcin Zabłocki
Unsere Ideen
Weitere Blogs
Contact



