Partager via


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 la création de valeur métier sans devoir gérer l’infrastructure et les ressources. Gardez à l’esprit que Flyte n’est pas officiellement pris en charge 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 toute 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. Lorsque vous utilisez une technologie open source avec AKS, consultez les options de support disponibles auprès des communautés et des responsables de projet respectifs afin d’élaborer un plan.

Microsoft assume la responsabilité de la génération des packages open source que nous déployons sur AKS. Cette responsabilité inclut la propriété complète du processus de génération, d’analyse, de signature, de validation et de correctif logiciel, ainsi que du contrôle des fichiers binaires dans les images conteneur. Pour plus d'informations, consultez la gestion des vulnérabilités pour AKS et la couverture de support AKS.

Cas d’utilisation de Flyte

Flyte peut être utilisé pour une variété de cas d’utilisation, notamment :

  • Fournir des modèles pour des calculs financiers simplifiés des profits et des pertes.
  • 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 les didacticiels Flyte.

Prérequis

  • Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, vous pouvez créer un compte gratuit.
    • Si vous possédez plusieurs abonnements, veillez à sélectionner le bon en utilisant la commande az account set --subscription <subscription-id>.
  • L’interface Azure CLI est installée et configurée. Vérifiez votre version en utilisant la commande az --version. Si vous avez besoin d’installer ou de mettre à niveau, consultez Installer Azure CLI.
  • L’interface Helm CLI est installée et mise à jour. Vérifiez votre version en utilisant la commande helm version. Si vous avez besoin d’installer ou de mettre à niveau, consultez Installer Helm.
  • L’interface kubectl CLI est installée et mise à jour. Installez-le localement à l'aide de la commande az aks install-cli ou de la commande installer kubectl.
  • Un environnement de développement Docker local. Pour plus d’informations, consultez Obtenir Docker.
  • flytekit et flytectl sont 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 tout au long de 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

  1. Créez un groupe de ressources Azure pour le cluster AKS à l’aide de la commande az group create.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. 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 commande az aks get-credentials.

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
    

Ajouter le référentiel Flyte Helm

  • Ajoutez le référentiel Flyte Helm en utilisant la commande helm repo add.

    helm repo add flyteorg https://flyteorg.github.io/flyte
    

Rechercher les charts Flyte Helm

  1. Recherchez les charts Flyte Helm en utilisant la commande helm search repo.

    helm search repo flyteorg
    

    L’exemple de sortie suivant montre quelques-uns des charts Flyte Helm 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
    
  2. 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 flyte-binary pour commencer à créer et déployer des pipelines de données et de machine learning avec Flyte sur AKS. Le chart flyte-binary est un déploiement de base d’un seul exécutable Flyte.

  1. Créez un espace de noms pour votre déploiement Flyte en utilisant la commande kubectl create namespace.

    kubectl create namespace <namespace-name>
    
  2. Installez un chart Flyte Helm en utilisant la commande helm install. Dans cet exemple, nous utilisons le chart flyte-binary.

    helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
    
  3. 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 de 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 chart Helm. Le projet Flyte gère é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 :