Kubeflow est une plateforme open source qui orchestre le cycle de vie du machine learning sur Kubernetes : pipelines, entraînement distribué, tuning d'hyperparamètres et déploiement de modèles. Là où MLflow suit les expériences, Kubeflow industrialise les workflows à grande échelle.
Ce guide définit Kubeflow, présente ses composants, montre comment
définir et compiler un pipeline avec le SDK kfp (code testé), et indique
quand le choisir. Il s'inscrit dans une démarche MLOps. Public :
avancé, à l'aise avec Kubernetes.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Définir Kubeflow et son rôle dans le MLOps.
- Distinguer ses composants (Pipelines, Katib, KServe).
- Définir et compiler un pipeline avec le SDK
kfp. - Savoir quand préférer Kubeflow à un outil plus léger.
Qu'est-ce que Kubeflow ?
Section intitulée « Qu'est-ce que Kubeflow ? »Kubeflow rend le machine learning natif à Kubernetes. Il s'appuie sur les primitives de Kubernetes (pods, jobs, namespaces) pour exécuter des workflows ML reproductibles et scalables, de l'expérimentation au déploiement. Développé à l'origine par Google et rattaché à la Cloud Native Computing Foundation, il cible les organisations qui ont déjà Kubernetes et veulent y industrialiser leur ML.
Sa contrepartie : c'est une plateforme lourde à installer et à opérer. Pour un usage individuel ou une petite équipe, un outil comme MLflow suffit souvent.
Les composants de Kubeflow
Section intitulée « Les composants de Kubeflow »Kubeflow est modulaire : on installe seulement ce dont on a besoin.
| Composant | Rôle |
|---|---|
| Central Dashboard | Interface web unifiée pour tous les services |
| Kubeflow Pipelines | Orchestrer les workflows ML (le coeur de Kubeflow) |
| Katib | Optimisation d'hyperparamètres distribuée |
| Notebooks | Environnements Jupyter intégrés au cluster |
| Training Operators | Entraînement distribué (TensorFlow, PyTorch, XGBoost) |
| KServe | Serving de modèles avec scaling et versioning |
Définir un pipeline avec le SDK kfp
Section intitulée « Définir un pipeline avec le SDK kfp »Le coeur de Kubeflow, ce sont les pipelines : des enchaînements d'étapes (composants) exécutés sur le cluster. On les décrit en Python avec le SDK kfp, puis on les compile en un fichier de déploiement. Installez le SDK dans un environnement isolé :
pip install kfp==2.16.1Un pipeline se compose de composants (@dsl.component) reliés dans une
fonction de pipeline (@dsl.pipeline) :
from kfp import dsl, compiler
@dsl.componentdef prepare(n: int) -> int: return n * 2
@dsl.componentdef train(size: int) -> str: return f"modele entraine sur {size} echantillons"
@dsl.pipeline(name="demo-ml-pipeline", description="Pipeline ML minimal")def ml_pipeline(samples: int = 100): p = prepare(n=samples) train(size=p.output)
compiler.Compiler().compile(ml_pipeline, "pipeline.yaml")La compilation produit un fichier pipeline.yaml décrivant le workflow :
pipelineInfo: description: Pipeline ML minimal name: demo-ml-pipelineCe fichier s'importe ensuite dans l'interface Kubeflow Pipelines pour être
exécuté sur le cluster, avec suivi des runs et des artefacts. La sortie d'un
composant (p.output) devient l'entrée du suivant : Kubeflow gère l'ordre
d'exécution et le passage des données.
Katib et KServe en bref
Section intitulée « Katib et KServe en bref »Deux composants complètent les pipelines. Katib automatise la recherche d'hyperparamètres : il lance de nombreux entraînements en parallèle sur le cluster et retient la meilleure combinaison selon une métrique. KServe standardise le serving : il expose un modèle en API, avec mise à l'échelle automatique, versioning et déploiements progressifs (canary).
Kubeflow ou MLflow ?
Section intitulée « Kubeflow ou MLflow ? »Les deux servent le MLOps à des échelles différentes. MLflow se concentre sur le suivi des expériences et la gestion des modèles ; il s'installe en une commande. Kubeflow orchestre des pipelines complets sur Kubernetes : bien plus puissant, mais lourd à opérer. On les combine souvent, MLflow pour le tracking à l'intérieur de pipelines Kubeflow.
Questions fréquentes
Section intitulée « Questions fréquentes »Kubeflow, c'est quoi ?
Section intitulée « Kubeflow, c'est quoi ? »Kubeflow est une plateforme MLOps open source pour Kubernetes : elle orchestre pipelines, entraînement distribué, tuning et déploiement de modèles à l'échelle du cluster.
Qu'est-ce que Kubeflow Pipelines ?
Section intitulée « Qu'est-ce que Kubeflow Pipelines ? »Le composant qui orchestre les workflows ML : on décrit les étapes en Python
avec le SDK kfp, on compile un fichier de déploiement, puis on l'exécute sur le
cluster avec suivi des runs.
Kubeflow ou MLflow ?
Section intitulée « Kubeflow ou MLflow ? »MLflow est léger, centré sur le suivi des expériences ; Kubeflow est une plateforme complète sur Kubernetes, adaptée aux gros besoins d'orchestration. On les utilise souvent ensemble.
À retenir
Section intitulée « À retenir »- Kubeflow rend le ML natif à Kubernetes : pipelines, entraînement, tuning, serving.
- Les pipelines sont son coeur : décrits en Python avec
kfp, compilés puis exécutés sur le cluster. - La compilation se fait en local ; seule l'exécution requiert un cluster.
- Katib tune les hyperparamètres, KServe sert les modèles.
- C'est une plateforme lourde : MLflow suffit pour un usage plus modeste.