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 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>.
  • 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 commande az aks install-cli ou en utilisant Installer kubectl.
  • Un environnement de développement Docker local. Pour plus d’informations, consultez Obtenir Docker.
  • flytekit et flytectl 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

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

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

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