Bienvenue dans le troisième article de blog de notre série « Kubeflow Fundamentals » spécialement conçue pour les nouveaux utilisateurs du projet Kubelfow. Le but de la série est de vous présenter une introduction détaillée de Kubeflow, une plongée en profondeur dans les différents composants et comment ils s’assemblent tous pour fournir une plate-forme MLOps complète.
Si vous avez manqué les épisodes précédents de la série « Kubeflow Fundamentals », vous pouvez les trouver ici :
Partie 1 : Une introduction
Partie 2 : Flux de travail d’apprentissage automatique
Dans cet article, nous examinerons les différentes distributions Kubeflow disponibles et vous guiderons à travers certaines installations utilisant MiniKF. Ok, plongeons dedans !
Installer Kubeflow
Si vous êtes prêt à installer Kubeflow, la première décision à prendre est de savoir comment vous voulez être opérationnel. En plus de tout construire à partir de la source, vous avez vraiment deux options :
- Installer via une distribution packagée
- Installer via des manifestes
L’avantage des distributions packagées est qu’elles sont fournies avec toutes les versions correctes des logiciels dont vous avez besoin et que les intégrations sont testées et maintenues par un fournisseur. Combiné à la documentation, cela se traduit généralement par une forte probabilité que vous soyez opérationnel sur la plate-forme sur laquelle la distribution a été conçue pour fonctionner, sans trop de tracas. Pour les développeurs qui découvrent Kubeflow ou qui ont une expérience limitée de Kubernetes, c’est l’option recommandée.
La deuxième option que vous devez démarrer consiste à tout installer manuellement via des manifestes.
Attendez, qu’est-ce qu’un « manifeste » ?
Lors du déploiement sur Kubernetes ou de la création de ressources comme un pod, un jeu de réplicas, une carte de configuration, etc., vous devrez créer un fichier appelé « manifest » qui décrit l’objet et ses attributs en YAML ou JSON. En d’autres termes, il s’agit de la spécification d’un objet API Kubernetes au format JSON ou YAML.
Veuillez noter que cette méthode est destinée aux utilisateurs avancés qui, pour la plupart, auront besoin de se prendre en charge. Pour en savoir plus sur l’installation de Kubeflow via des manifestes, consultez la documentation.
Ainsi, étant donné que cette série de blogs est destinée aux data scientists et aux développeurs novices dans Kubeflow et probablement tout aussi novices dans Kubernetes, nous nous concentrerons sur la mise en service via les distributions packagées.
Distributions Kubeflow empaquetées
Au moment de la rédaction de ce blog, les distributions Kubeflow packagées suivantes sont disponibles pour les plates-formes suivantes.
AWS
- Kubeflow sur AWS, maintenu par Amazon Web Services
- Arrikto Enterprise Kubeflow sur EKS, maintenu par Arrikto
- MiniKF, maintenu par Arrikto
Google Cloud
- Kubeflow sur Google Cloud, géré par Google Cloud
- Arrikto Enterprise Kubeflow sur GKE, maintenu par Arrikto
- MiniKF, maintenu par Arrikto
Azur
- Kubeflow sur Azure, maintenu par Microsoft Azure
- Arrikto Enterprise Kubeflow sur AKS, maintenu par Arrikto
Autres plates-formes avec des distributions packagées Kubeflow
- Service IBM Cloud Kubernetes (IKS)
- Nutanix Carbone
- OpenShift
- Kubernetes conforme
- Vagabond
- MicroK8
Pour les besoins de ce blog, nous allons nous concentrer sur la mise en route de MiniKF. Pourquoi?
- MiniKF est la distribution la plus simple pour commencer, même pour les personnes ayant une expérience limitée de Kubernetes
- MiniKF est multiplateforme. Il fonctionne sur AWS, GCP et même localement via Vagrant
- MiniKF est livré avec des modules complémentaires pré-intégrés comme Kale et Rok qui facilitent beaucoup la création de pipelines et la gestion des données que les offres de distribution de base de Kubeflow.
MiniKF sur AWS
La mise en route de MiniKF sur AWS est très simple. Les étapes de base sont :
- Lancer une AMI MiniKF depuis AWS Marketplace
- Configurer l’instance pour MiniKF
- Déployez tous les composants nécessaires, y compris Kale et Rok
- Affichez l’interface utilisateur de Kubeflow pour démarrer votre premier projet
Notez que vous devez prévoir environ 30 minutes pour terminer l’installation. Étant donné que Kubeflow nécessite plus de 40 pods et peut être gourmand en ressources, vous aurez besoin d’accéder à des ressources suffisantes sur AWS, ce qui signifie que vous ne pourrez pas vous en sortir avec le seul niveau gratuit proposé par AWS. Vous aurez besoin d’accéder à au moins un m5.2xlarge type d’instance. Pour obtenir des instructions d’installation complètes de MiniKF sur AWS, consultez la documentation.
MiniKF sur Google Cloud
Tout comme AWS, la mise en route de MiniKF sur GCP est aussi simple qu’AWS. Les étapes de base sont :
- Lancer une VM MiniKF sur GCP
- Déployez tous les composants nécessaires, y compris Kubernetes (via Minikube), Kubeflow, Kale et Rok
- Affichez l’interface utilisateur de Kubeflow pour démarrer votre premier projet
Comme pour l’installation AWS, prévoyez environ 30 minutes pour terminer l’installation. Vous aurez également besoin d’accéder à des ressources suffisantes sur GCP, ce qui signifie que vous ne pourrez pas vous en sortir avec le seul niveau gratuit. Vous aurez besoin d’accéder à au moins un n1-standard-8 machine qui devrait vous donner 8 vCPU et 30 Go de RAM. Pour obtenir des instructions d’installation complètes de MiniKF sur GCP, consultez la documentation.
MiniKF sur Vagrant
Bien que nous recommandons fortement les options AWS et GCP, si vous devez vraiment installer Kubeflow localement sur votre ordinateur portable Linux, MacOS ou Windows, vous avez la possibilité d’utiliser la distribution MiniKF on Vagrant.
Comme AWS et GCP, prévoyez environ 30 minutes pour terminer l’installation. Vous devrez également probablement effectuer un petit nettoyage sur votre ordinateur portable pour libérer suffisamment de ressources pour Kubeflow. Vous allez avoir besoin de :
- 12 Go de RAM
- 2 processeurs
- 50 Go d’espace disque
- Vagrant et VirtualBox installés
Pour obtenir des instructions d’installation complètes de MiniKF sur Vagrant, consultez la documentation.
Et après? Partie 4 – Outils externes et modules complémentaires
Restez à l’écoute pour le prochain blog de cette série où nous nous concentrerons sur la familiarisation avec les outils externes et les modules complémentaires de Kubeflow, notamment Istio, Kale, Rok et les outils de service.