Créer et déployer des pipelines de Machine Learning et de données avec Flyte sur Azure Kubernetes Service (AKS)
Cet article vous montre comment utiliser Flyte sur Azure Kubernetes Service (AKS). Flyte est un orchestrateur de workflows open source qui unifie les piles de Machine Learning, d’engineering données et d’analytique données pour vous aider à créer des applications robustes et fiables. Quand vous utilisez Flyte en tant qu’outil d’automatisation de workflows natif Kubernetes, vous pouvez vous concentrer sur l’expérimentation et fournir une valeur métier sans devoir gérer l’infrastructure et les ressources. Gardez à l’esprit que Flyte n’est pas officiellement supporté par Microsoft : utilisez-le donc à votre propre discrétion.
Pour plus d’informations, consultez Présentation de Flyte.
Important
Les logiciels open source sont mentionnés dans la documentation et les exemples AKS. Les logiciels que vous déployez sont exclus des contrats de niveau de service AKS, de la garantie limitée et du support Azure. Quand vous utilisez une technologie open source avec AKS, consultez les options de support disponibles auprès des communautés et responsables de projet respectifs pour élaborer un plan.
Par exemple, le dépôt GitHub Ray décrit plusieurs plateformes qui varient en fonction du temps de réponse, de la finalité et du niveau de support.
Microsoft assume la responsabilité de la génération des packages open source que nous déployons sur AKS. Cette responsabilité comprend la maîtrise complète des processus de génération, d’analyse, de signature et de validation ainsi que l’application de correctifs logiciels et le contrôle des fichiers binaires présents dans les images conteneur. Pour plus d’informations, consultez Gestion des vulnérabilités pour AKS et Couverture du support AKS.
Cas d’usage de Flyte
Flyte peut être utilisé pour une variété de cas d’usage, notamment :
- Fournir des modèles pour des calculs simplifiés des bénéfices et des pertes dans le domaine financier.
- Traiter des pétaoctets de données pour effectuer efficacement le mappage 3D de nouvelles zones.
- Restaurer rapidement des versions antérieures et minimiser l’impact des bogues dans vos pipelines.
Pour plus d’informations, consultez Cas d’usage principaux de Flyte.
Prérequis
- Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, vous pouvez créer un compte gratuit.
- Si vous avez plusieurs abonnements, veillez à sélectionner l’abonnement correct en utilisant la commande
az account set --subscription <subscription-id>
.
- Si vous avez plusieurs abonnements, veillez à sélectionner l’abonnement correct en utilisant la commande
- Azure CLI installé et configuré. Vérifiez votre version en utilisant la commande
az --version
. Si vous devez effectuer une installation ou une mise à niveau, consultez Installer Azure CLI. - L’interface CLI Helm installée et mise à jour. Vérifiez votre version en utilisant la commande
helm version
. Si vous devez effectuer une installation ou une mise à niveau, consultez Installer Helm. - L’interface CLI
kubectl
installée et mise à jour. Installez-la localement en utilisant la commandeaz aks install-cli
ou en utilisant Installer kubectl. - Un environnement de développement Docker local. Pour plus d’informations, consultez Obtenir Docker.
flytekit
etflytectl
installés. Pour plus d’informations, consultez Installation de Flyte.
Remarque
Si vous utilisez Azure Cloud Shell, Azure CLI, Helm et kubectl sont déjà installés.
Définir des variables d’environnement
Définissez les variables d’environnement à utiliser dans cet article. Remplacez les valeurs d’espace réservé par vos propres valeurs.
export RESOURCE_GROUP="<resource-group-name>" export LOCATION="<location>" export CLUSTER_NAME="<cluster-name>" export DNS_NAME_PREFIX="<dns-name-prefix>"
Créer un cluster AKS
Créez un groupe de ressources Azure pour le cluster AKS en utilisant la commande
az group create
.az group create --name $RESOURCE_GROUP --location $LOCATION
Créez un cluster AKS en utilisant la commande
az aks create
avec les paramètres--enable-azure-rbac
,--enable-managed-identity
,--enable-aad
et--dns-name-prefix
.az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-azure-rbac --enable-managed-identity --enable-aad --dns-name-prefix $DNS_NAME_PREFIX --generate-ssh-keys
Se connecter à votre cluster AKS
Configurez
kubectl
pour qu’il se connecte à votre cluster AKS à l’aide de la commandeaz aks get-credentials
.az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
Ajouter le référentiel Helm Flyte
Ajoutez le référentiel Helm Flyte en utilisant la commande
helm repo add
.helm repo add flyteorg https://flyteorg.github.io/flyte
Rechercher des charts Helm Flyte
Recherchez des charts Helm Flyte en utilisant la commande
helm search repo
.helm search repo flyteorg
L’exemple de sortie suivant montre quelques-uns des charts Helm Flyte disponibles :
NAME CHART VERSION APP VERSION DESCRIPTION flyteorg/flyte v1.12.0 A Helm chart for Flyte Sandbox flyteorg/flyte-binary v1.12.0 1.16.0 Chart for basic single Flyte executable deployment flyteorg/flyte-core v1.12.0 A Helm chart for Flyte core flyteorg/flyte-deps v1.12.0 A Helm chart for Flyte dependencies flyteorg/flyte-sandbox 0.1.0 1.16.1 A Helm chart for the Flyte local sandbox flyteorg/flyteagent v0.1.10 A Helm chart for Flyte Agent
Mettez à jour le référentiel en utilisant la commande
helm repo update
.helm repo update
Déployer un chart Flyte sur AKS
Dans cette section, vous déployez le chart Helm binaire Flyte pour pouvoir commencer à créer et déployer des pipelines de données et de Machine Learning avec Flyte sur AKS. Le chart binaire Flyte est un déploiement exécutable Flyte unique de base.
Créez un espace de noms pour votre déploiement Flyte en utilisant la commande
kubectl create namespace
.kubectl create namespace <namespace-name>
Installez un chart Helm en utilisant la commande
helm install
. Dans cet exemple, nous utilisons le chartflyte-binary
.helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
Vérifiez que le déploiement Flyte est en cours d’exécution en utilisant la commande
kubectl get services
.kubectl get services --namespace <namespace-name> --output wide
L’exemple de sortie condensée suivant montre le déploiement Flyte :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE flyteorg-flyte-binary-grpc ClusterIP xx.x.xx.xxx <none> 81/TCP 1m flyteorg-flyte-binary-http ClusterIP xx.x.xx.xxx <none> 80/TCP 1m flyteorg-flyte-binary-webhook ClusterIP xx.x.xx.xxx <none> 80/TCP 1m
Étapes suivantes
Dans cet article, vous avez appris comment installer Flyte sur AKS à l’aide d’un graphique Helm. Le projet Flyte maintient également une implémentation de référence pour AKS qui configure automatiquement toutes les dépendances et déploie un cluster Flyte de niveau production.
Pour commencer à créer et déployer des pipelines de données et de Machine Learning, consultez les articles suivants :
Azure Kubernetes Service