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. C'est la leçon de concept du module Livrer de la
formation MLOps : elle présente la plateforme sans la déployer.
Public : intermédiaire, ayant déjà manipulé
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.
Prérequis
Section intitulée « Prérequis »Ce guide suppose que vous connaissez les objets de
base de Kubernetes (pods, jobs,
namespaces) et que vous lisez du Python : fonctions et décorateurs. Il ne
demande aucun cluster : la définition et la compilation d'un pipeline se
font sur votre poste, avec Python 3 et pip.
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 |
| Trainer | Entraînement distribué et fine-tuning de LLM. Il prolonge l'ancien Training Operator : une seule ressource Kubernetes, TrainJob, remplace les ressources propres à chaque framework (PyTorchJob, TFJob) |
| Spark Operator | Préparation de données et feature engineering avec Spark |
| Hub | Métadonnées et artefacts de modèles (ancien Model Registry) |
| KServe | Serving de modèles avec scaling et versioning (projet de l'écosystème Kubeflow, présenté à part des sous-projets) |
Comment s'installe Kubeflow ?
Section intitulée « Comment s'installe Kubeflow ? »Kubeflow n'est pas un paquet unique. On déploie soit un composant seul, par
exemple Kubeflow Pipelines, soit la plateforme complète à partir des
manifestes Kustomize du projet (l'outil de configuration intégré à kubectl depuis Kubernetes 1.14, appelé par kubectl apply -k), soit une distribution packagée proposée par
un fournisseur. Dans tous les cas, il faut un cluster Kubernetes, des droits
d'administrateur et du temps d'exploitation. Cette installation sort du
périmètre de ce guide, qui présente le produit avant qu'on l'installe : les
procédures à jour se trouvent dans la
documentation officielle de Kubeflow.
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.17.0Un 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. Le
SDK peut afficher un avertissement sur l'image de base par défaut des
composants, sans effet sur la compilation. Seul le bloc pipelineInfo est
reproduit ici : le fichier réel compte une centaine de lignes.
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 parfois, MLflow pour le tracking à l'intérieur de pipelines Kubeflow.
À 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.
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Ces questions reprennent des situations rencontrées en exploitation : à vous de choisir le geste qui convient, la correction explique pourquoi.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Score par domaine
Un domaine regroupe plusieurs guides et reçoit plusieurs questions : son score est plus fiable qu'un score par thème, qui porte souvent sur une seule question.
Bilan
Points forts
Aucun sujet réussi à 80 % sur au moins deux questions pour l’instant.
Points faibles
Aucun sujet sous le seuil de réussite.
À faire ensuite
Des indices pour retenter votre chance ?
Continuer le cours : Monitoring ML : surveiller les modèles et détecter le drift
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
FAQ : questions fréquentes
Section intitulée « FAQ : questions fréquentes »kfp, on compile un fichier de déploiement, puis on l'exécute sur le cluster avec suivi des runs.