Glossaire

Kubernetes

Découvre comment Kubernetes rationalise les flux de travail de l'IA, en permettant une mise à l'échelle transparente, un auto-réparation et un déploiement efficace des modèles pour l'informatique cloud-native.

Entraîne les modèles YOLO simplement
avec Ultralytics HUB

En savoir plus

Kubernetes est une plateforme d'orchestration de conteneurs open-source conçue pour automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. Développée à l'origine par Google, Kubernetes est aujourd'hui maintenue par la Cloud Native Computing Foundation (CNCF) et est devenue la norme de l'industrie pour la gestion des charges de travail modernes et cloud-natives.

Caractéristiques principales de Kubernetes

Kubernetes offre un large éventail de fonctionnalités qui simplifient la gestion d'applications complexes dans des environnements distribués :

  • Orchestration de conteneurs : Kubernetes planifie et gère automatiquement les conteneurs sur un cluster de machines, ce qui garantit une utilisation optimale des ressources.
  • Mise à l'échelle : Kubernetes prend en charge la mise à l'échelle manuelle et automatique des applications en fonction de CPU, de la mémoire ou de mesures personnalisées.
  • Auto-réparation : Il surveille la santé des applications et redémarre ou remplace automatiquement les conteneurs défaillants pour maintenir la stabilité du système.
  • Équilibrage de la charge : Kubernetes répartit le trafic réseau entre plusieurs conteneurs pour garantir une haute disponibilité et des performances fiables.
  • Gestion du stockage : Il prend en charge différents backends de stockage, tels que le stockage local, le stockage basé sur le cloud et les systèmes de fichiers réseau, pour répondre aux besoins des applications.

Pour une introduction à la conteneurisation, consulte la page du glossaire de Docker.

Kubernetes dans l'IA et l'apprentissage automatique

Kubernetes joue un rôle essentiel dans les flux de travail d'IA et d'apprentissage automatique, où la gestion des tâches distribuées et gourmandes en ressources est essentielle. Il simplifie le déploiement de systèmes complexes tels que les pipelines d'apprentissage automatique, en garantissant l'évolutivité et la fiabilité.

Exemple 1 : Formation d'un modèle d'apprentissage automatique

Kubernetes peut être utilisé pour gérer la formation distribuée de modèles d'apprentissage automatique sur plusieurs nœuds compatibles avec GPU. Par exemple, une équipe qui forme un modèle d'apprentissage profond à l'aide de PyTorch peut déployer ses tâches de formation sous forme de pods Kubernetes. Cela garantit une allocation efficace des ressources et permet de mettre à l'échelle les processus de formation de manière dynamique en fonction des exigences de la charge de travail. En savoir plus sur la formation distribuée et sur la façon dont Kubernetes la facilite.

Exemple 2 : Déploiement du modèle

Kubernetes est largement utilisé pour déployer des modèles d'apprentissage automatique en production. Par exemple, un modèle de détection d'objets entraîné avec Ultralytics YOLO peut être conteneurisé et déployé sur Kubernetes. Cette configuration garantit une haute disponibilité grâce à des fonctionnalités telles que les mises à jour glissantes et la réplication, qui minimisent les temps d'arrêt et maintiennent la fiabilité du service.

Kubernetes par rapport aux technologies connexes

Alors que Kubernetes excelle dans l'orchestration des conteneurs, les technologies comme Docker se concentrent sur la conteneurisation elle-même. Docker fournit la base pour créer et exécuter des conteneurs, tandis que Kubernetes orchestre et gère ces conteneurs à l'échelle. Pour une compréhension plus approfondie, explore la différence entre la conteneurisation et l'orchestration.

Un autre concept connexe est l'informatique sans serveur, qui fait entièrement abstraction de la gestion de l'infrastructure. Contrairement à Kubernetes, les plateformes sans serveur mettent automatiquement à l'échelle les ressources en fonction de déclencheurs événementiels, sans intervention de l'utilisateur. En savoir plus sur l'informatique sans serveur.

Applications dans le monde réel

Kubernetes est utilisé dans divers secteurs d'activité pour améliorer l'efficacité des flux de travail d'IA et d'apprentissage automatique :

  • Santé : Kubernetes permet de déployer des modèles d'analyse d'images médicales, tels que ceux décrits dans l'analyse d'images médicales, en assurant l'évolutivité et la fiabilité du traitement de grands ensembles de données.
  • Véhicules autonomes : Kubernetes prend en charge le déploiement évolutif des applications dans les pipelines des véhicules autonomes, tels que ceux décrits dans AI for self-driving cars.
  • Commerce de détail : Dans le commerce de détail, Kubernetes alimente des modèles de détection d'objets en temps réel, comme par ex. Ultralytics YOLO pour optimiser la gestion des stocks et améliorer les expériences des clients.

Démarrer avec Kubernetes

Pour ceux qui souhaitent tirer parti de Kubernetes pour des projets d'IA, des outils comme Ultralytics HUB s'intègrent bien à Kubernetes pour une formation et un déploiement transparents des modèles. De plus, des plateformes telles que Google Kubernetes Engine (GKE) et Amazon Elastic Kubernetes Service (EKS) simplifient la gestion des clusters Kubernetes.

Pour en savoir plus sur le déploiement de modèles d'IA à l'échelle, explore le guide des options de déploiement de modèles.

Kubernetes donne aux organisations les moyens de gérer et de mettre à l'échelle efficacement les charges de travail d'IA, ce qui en fait une pierre angulaire de l'informatique moderne et cloud-native. Son ensemble de fonctionnalités robustes et son adoption généralisée garantissent qu'il restera un outil essentiel pour la communauté de l'IA et de l'apprentissage automatique.

Tout lire