Freigeben über


Erstellen und Bereitstellen von Daten- und Machine Learning-Pipelines mit Flyte in Azure Kubernetes Service (AKS)

In diesem Artikel wird gezeigt, wie Sie Flyte in Azure Kubernetes Service (AKS) verwenden. Flyte ist ein Open-Source-Workflow-Orchestrator, der Stapel für Machine Learning, Datentechnik und Datenanalyse vereint, um Ihnen bei der Erstellung robuster und zuverlässiger Anwendungen zu helfen. Wenn Sie Flyte als natives Kubernetes-Workflowautomatisierungstool verwenden, können Sie sich auf Experimente und den geschäftlichen Nutzen konzentrieren, ohne den Umfang der Infrastruktur und des Ressourcenmanagements zu erhöhen. Denken Sie daran, dass Flyte nicht offiziell von Microsoft unterstützt wird. Verwenden Sie es daher nach eigenem Ermessen.

Weitere Informationen finden Sie unter Einführung in Flyte.

Wichtig

Open-Source-Software wird überall in AKS-Dokumenten und -Beispielen erwähnt. Software, die Sie bereitstellen, ist von AKS-Vereinbarungen zum Servicelevel, der eingeschränkten Garantie und dem Azure-Support ausgeschlossen. Wenn Sie Open-Source-Technologie zusammen mit AKS nutzen, nutzen Sie die Supportoptionen, die von den jeweiligen Communitys und Projektbetreuenden angeboten werden, um einen Plan zu entwickeln.

Das GitHub-Repository von Ray beschreibt z. B. mehrere Plattformen, die in Antwortzeit, Zweck und Supportebene variieren.

Microsoft übernimmt die Verantwortung für die Erstellung der Open-Source-Pakete, die wir in AKS bereitstellen. Diese Verantwortung schließt den vollständigen Besitz des Build-, Scan-, Signatur-, Validierungs- und Hotfixprozesses sowie die Kontrolle über die Binärdateien in Containerimages ein. Weitere Informationen finden Sie unter Sicherheitsrisikomanagement für AKS und AKS-Supportabdeckung.

Flyte-Anwendungsfälle

Flyte kann für eine Vielzahl von Anwendungsfällen verwendet werden, darunter:

  • Bereitstellen von Modellen für optimierte Gewinn- und Verlustrechnungen.
  • Verarbeiten von enormen Datenmengen in Petabyte-Größenordnung, um 3D-Zuordnungen neuer Bereiche effizient durchzuführen.
  • Schnelles Zurücksetzen auf frühere Versionen und Minimieren der Auswirkungen von Fehlern in Ihren Pipelines.

Weitere Informationen finden Sie unter Wichtige Flyte-Anwendungsfälle.

Voraussetzungen

  • Ein Azure-Abonnement. Falls Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.
    • Wenn Sie mehrere Abonnements haben, wählen Sie mithilfe des Befehls az account set --subscription <subscription-id> das richtige Abonnement aus.
  • Die Azure CLI wurde installiert und konfiguriert. Überprüfen Sie Ihre Version mit dem Befehl az --version. Installations- und Upgradeinformationen finden Sie bei Bedarf unter Installieren von Azure CLI.
  • Die Helm-CLI wurde installiert und aktualisiert. Überprüfen Sie Ihre Version mit dem Befehl helm version. Informationen zum Durchführen einer Installation oder eines Upgrades finden Sie bei Bedarf unter Installieren von Helm.
  • Die kubectl-CLI wurde installiert und aktualisiert. Installieren Sie sie lokal mit dem Befehl az aks install-cli oder mithilfe von Installieren von kubectl.
  • Eine lokale Docker-Entwicklungsumgebung. Weitere Informationen finden Sie unter Get Docker (Docker-Download).
  • flytekit und flytectl sind installiert. Weitere Informationen finden Sie unter Flyte-Installation.

Hinweis

Wenn Sie die Azure Cloud Shell verwenden, sind die Azure CLI, Helm und kubectl bereits installiert.

Festlegen von Umgebungsvariablen

  • Legen Sie Umgebungsvariablen fest, die in diesem Artikel verwendet werden. Ersetzen Sie die Platzhalterwerte durch eigene Werte.

    export RESOURCE_GROUP="<resource-group-name>"
    export LOCATION="<location>"
    export CLUSTER_NAME="<cluster-name>"
    export DNS_NAME_PREFIX="<dns-name-prefix>"
    

Erstellen eines AKS-Clusters

  1. Erstellen Sie mithilfe des Befehls az group create eine Azure-Ressourcengruppe für den AKS-Cluster.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. Erstellen Sie mit dem Befehl az aks create und den Parametern --enable-azure-rbac, --enable-managed-identity, --enable-aad und --dns-name-prefix einen AKS-Cluster.

    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
    

Herstellen einer Verbindung mit dem AKS-Cluster

  • Konfigurieren Sie kubectl, um mithilfe des Befehls az aks get-credentials eine Verbindung mit Ihrem AKS-Cluster herzustellen.

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

Hinzufügen des Flyte Helm-Repositorys

  • Fügen Sie das Flyte Helm-Repository mit dem Befehl helm repo add hinzu.

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

Suchen von Flyte Helm-Diagrammen

  1. Suchen Sie mithilfe des Befehls helm search repo nach Flyte Helm-Diagrammen.

    helm search repo flyteorg
    

    Die folgende Beispielausgabe zeigt einige der verfügbaren Flyte Helm-Diagramme:

    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. Aktualisieren Sie das Repository mit dem Befehl helm repo update.

    helm repo update
    

Bereitstellen eines Flyte-Diagramms in AKS

In diesem Abschnitt stellen Sie das Flyte-Binär-Helm-Diagramm bereit, damit Sie mit dem Erstellen und Bereitstellen von Daten- und Machine Learning-Pipelines mit Flyte in AKS beginnen können. Das Flyte-Binär-Diagramm ist eine einfache ausführbare Flyte-Bereitstellung.

  1. Erstellen Sie mit dem Befehl kubectl create namespace einen Namespace für Ihre Flyte-Bereitstellung.

    kubectl create namespace <namespace-name>
    
  2. Installieren Sie mit dem Befehl helm install ein Flyte-Helm-Diagramm. In diesem Beispiel wird das Diagramm flyte-binary verwendet.

    helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
    
  3. Stellen Sie mit dem Befehl kubectl get services sicher, dass die Flyte-Bereitstellung ausgeführt wird.

    kubectl get services --namespace <namespace-name> --output wide
    

    Die folgende verkürzte Beispielausgabe zeigt die Flyte-Bereitstellung:

    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
    

Nächste Schritte

In diesem Artikel haben Sie erfahren, wie Sie Flyte in AKS mithilfe eines Helm-Charts installieren. Das Flyte-Projekt verwaltet auch eine Referenzimplementierung für AKS, die automatisch alle Abhängigkeiten konfiguriert und einen Flyte-Cluster auf Produktionsniveau bereitstellt.

Informationen zum Erstellen und Bereitstellen von Daten- und Machine Learning-Pipelines finden Sie in den folgenden Artikeln: