Kubeflow wurde erstmals Ende 2017 vorgestellt. Gut zwei Jahre später gibt es die Machine-Learning-Komponente für Kubernetes-Cluster in Version 1.0.
Zu den Machern hinter Kubeflow 1.0 gehören laut einem aktuellen Blogpost mittlerweile rund 30 Organisation und Unternehmen. Hunderte Contributor arbeiten an dem Machine-Learning-Projekt mit. Anlässlich der Version 1.0 definiert die Kubeflow-Community einige zentrale Komponenten, die fester Bestandteil der Lösung werden. Dazu zählen das zentrale Dashboard, der Jupyter Notebook Controller und die Web-App. Aber auch die Tensorflow- und Pytorch-Operatoren, das Tool “kfctl” sowie der Profile Controller und das zugehörige User Interface, um mehrere Nutzer zu verwalten, gehören dazu.
Vier Schritte
Der Blogpost erklärt zudem, wie ein typischer vierteiliger Trainingszyklus in Kubeflow abläuft. Er besteht aus Entwicklung, Build-Prozess, Training und Deployment. Jupyter eignet sich, um die Modelle zu entwickeln (Entwicklung). Über Fairing, Kubeflows Python-SDK, lassen sich Container für Kubernetes bauen. Es folgt das Training selbst, für das Entwickler Custom Resources (CRs) für Kubernetes definieren. Schließlich kommt als vierte Komponente KFServing zum Einsatz. Die Serverless-Lösung hilft, die entwickelten Maschine-Learning-Modelle auf unterschiedlichen Frameworks zu veröffentlichen.

Abbildung 1: Die Architektur von Kubeflow und KFServing (Quelle: https://github.com/kubeflow/kfserving/)
Version 1.0 bietet dabei über das Tool “kfctl” zugleich eine einfache Möglichkeit, Kubeflow auszuliefern. Das läuft, zusammen mit dem eben erwähnten KFServing, auf einer Architektur, die aus mehreren Schichten besteht. Kubernetes bildet die Basis auf der dann Istio läuft (Service Mesh), das wiederum Knative (Serverless-Plattform) anbietet (siehe Abbildung 1).
Arbeitsplatz für Data Scientists
Jupyter ist hingegen häufig das Werkzeug der Wahl für Data Scientists und lässt sich beim Bau der Modelle mit den Kubernetes-Diensten verbinden. Für ihr Arbeitspensum erhalten die Entwickler jeweils eigene Namespaces, denen die Kubernetes-Admins auch die passenden Ressourcen inklusive Quotas zuweisen. Neue Notebooks lassen sich über passende Docker-Images einfach ergänzen. Für das Training selbst dürfen die KI-Experten Tensorflow und Pytorch einspannen (über die Operator). Um das Training zu überwachen, greifen sie zu Tensorboard. Weitere Details für Kubeflow-Nutzer, die den Praxiseinsatz erklären, aber auch geplante Features besprechen, liefert der anfangs erwähnte Blogpost.




