Aller au contenu
English
Compte : non connecté, synchronisation possible Mon apprentissage
Selectionner le thème
English

Kubeflow : orchestrer des pipelines ML sur Kubernetes

Par mis à jour le

Améliorer cette page

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.

  • 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.

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.

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.

Kubeflow est modulaire : on installe seulement ce dont on a besoin.

ComposantRôle
Central DashboardInterface web unifiée pour tous les services
Kubeflow PipelinesOrchestrer les workflows ML (le coeur de Kubeflow)
KatibOptimisation d'hyperparamètres distribuée
NotebooksEnvironnements Jupyter intégrés au cluster
TrainerEntraî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 OperatorPréparation de données et feature engineering avec Spark
HubMétadonnées et artefacts de modèles (ancien Model Registry)
KServeServing de modèles avec scaling et versioning (projet de l'écosystème Kubeflow, présenté à part des sous-projets)

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.

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é :

Fenêtre de terminal
pip install kfp==2.17.0

Un pipeline se compose de composants (@dsl.component) reliés dans une fonction de pipeline (@dsl.pipeline) :

from kfp import dsl, compiler
@dsl.component
def prepare(n: int) -> int:
return n * 2
@dsl.component
def 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-pipeline

Ce 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.

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).

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.

  1. Kubeflow rend le ML natif à Kubernetes : pipelines, entraînement, tuning, serving.
  2. Les pipelines sont son coeur : décrits en Python avec kfp, compilés puis exécutés sur le cluster.
  3. La compilation se fait en local ; seule l'exécution requiert un cluster.
  4. Katib tune les hyperparamètres, KServe sert les modèles.
  5. C'est une plateforme lourde : MLflow suffit pour un usage plus modeste.

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

6 questions
6 min.
70% requis

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

Ce projet vous est utile ?

Les guides, formations, quiz et labs restent gratuits. Si vous les utilisez régulièrement, vous pouvez contribuer à leur maintenance et à leur développement.

Devenir membre de soutien (nouvel onglet) Soutenir une fois (nouvel onglet) En savoir plus

Suivez aussi le projet sur LinkedIn