Delen via


Gegevens- en machine learning-pijplijnen bouwen en implementeren met Flyte in Azure Kubernetes Service (AKS)

In dit artikel leest u hoe u Flyte gebruikt in Azure Kubernetes Service (AKS). Flyte is een opensource-werkstroomorchestrator waarmee u machine learning-, data engineering- en gegevensanalysestacks kunt combineren om robuuste en betrouwbare toepassingen te bouwen. Wanneer u Flyte gebruikt als een systeemeigen hulpprogramma voor werkstroomautomatisering van Kubernetes, kunt u zich richten op experimenten en bedrijfswaarde bieden zonder uw bereik voor infrastructuur en resourcebeheer te vergroten. Houd er rekening mee dat Flyte niet officieel wordt ondersteund door Microsoft, dus gebruik deze naar eigen goeddunken.

Zie Inleiding tot Flyte voor meer informatie.

Belangrijk

Opensource-software wordt vermeld in AKS-documentatie en -voorbeelden. Software die u implementeert, is uitgesloten van AKS-serviceovereenkomsten, beperkte garantie en ondersteuning voor Azure. Wanneer u opensource-technologie naast AKS gebruikt, raadpleegt u de beschikbare ondersteuningsopties van de respectieve community's en projectonderhouders om een plan te ontwikkelen.

De Ray GitHub-opslagplaats beschrijft bijvoorbeeld verschillende platforms die variëren in reactietijd, doel en ondersteuningsniveau.

Microsoft neemt de verantwoordelijkheid voor het bouwen van de opensource-pakketten die we implementeren op AKS. Deze verantwoordelijkheid omvat het volledige eigendom van het build-, scan-, teken-, validatie- en hotfixproces, samen met controle over de binaire bestanden in containerinstallatiekopieën. Zie Beveiligingsbeheer voor AKS- en AKS-ondersteuningsdekking voor meer informatie.

Flyte use cases

Flyte kan worden gebruikt voor verschillende gebruiksscenario's, waaronder:

  • Modellen leveren voor gestroomlijnde berekeningen voor winst- en verliesberekeningen.
  • Verwerk petabytes aan gegevens om 3D-toewijzing van nieuwe gebieden efficiënt uit te voeren.
  • Snel terugdraaien naar eerdere versies en de impact van bugs in uw pijplijnen minimaliseren.

Zie Core Flyte-gebruiksvoorbeelden voor meer informatie.

Vereisten

  • Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u een gratis account maken.
    • Als u meerdere abonnementen hebt, moet u ervoor zorgen dat u het juiste abonnement selecteert met behulp van de az account set --subscription <subscription-id> opdracht.
  • De Azure CLI is geïnstalleerd en geconfigureerd. Controleer uw versie met behulp van de az --version opdracht. Als u uw CLI wilt installeren of upgraden, raadpleegt u De Azure CLI installeren.
  • De Helm CLI is geïnstalleerd en bijgewerkt. Controleer uw versie met behulp van de helm version opdracht. Zie Helm installeren als u Helm wilt installeren of upgraden.
  • De kubectl CLI is geïnstalleerd en bijgewerkt. Installeer deze lokaal met behulp van de az aks install-cli opdracht of met kubectl installeren.
  • Een lokale Docker-ontwikkelomgeving. Zie Docker ophalen voor meer informatie.
  • flytekit en flytectl geïnstalleerd. Zie Flyte-installatie voor meer informatie.

Notitie

Als u de Azure Cloud Shell gebruikt, zijn de Azure CLI, Helm en kubectl al geïnstalleerd.

Omgevingsvariabelen instellen

  • Stel omgevingsvariabelen in voor gebruik in het hele artikel. Vervang de tijdelijke aanduidingen door uw eigen waarden.

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

Een AKS-cluster maken

  1. Maak een Azure-resourcegroep voor het AKS-cluster met behulp van de az group create opdracht.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. Maak een AKS-cluster met behulp van de az aks create opdracht met de --enable-azure-rbac--enable-managed-identity, en --enable-aad--dns-name-prefix parameters.

    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
    

Verbinding maken met uw AKS-cluster

  • Configureer kubectl deze om verbinding te maken met uw AKS-cluster met behulp van de az aks get-credentials opdracht.

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

De Flyte Helm-opslagplaats toevoegen

  • Voeg de Flyte Helm-opslagplaats toe met behulp van de helm repo add opdracht.

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

Flyte Helm-grafieken zoeken

  1. Zoek naar Flyte Helm-grafieken met behulp van de helm search repo opdracht.

    helm search repo flyteorg
    

    In de volgende voorbeelduitvoer ziet u enkele van de beschikbare Flyte Helm-grafieken:

    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. Werk de opslagplaats bij met behulp van de helm repo update opdracht.

    helm repo update
    

Een flytegrafiek implementeren in AKS

In deze sectie implementeert u de flyte-binaire Helm-grafiek, zodat u kunt beginnen met het bouwen en implementeren van gegevens- en machine learning-pijplijnen met Flyte on AKS. De flyte-binaire grafiek is een eenvoudige uitvoerbare flyte-implementatie.

  1. Maak een naamruimte voor uw Flyte-implementatie met behulp van de kubectl create namespace opdracht.

    kubectl create namespace <namespace-name>
    
  2. Installeer een Flyte Helm-grafiek met behulp van de helm install opdracht. In dit voorbeeld gebruiken we de flyte-binary grafiek.

    helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
    
  3. Controleer of de Flyte-implementatie wordt uitgevoerd met behulp van de kubectl get services opdracht.

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

    In de volgende verkorte voorbeelduitvoer ziet u de Flyte-implementatie:

    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
    

Volgende stappen

In dit artikel hebt u geleerd hoe u Flyte op AKS installeert met behulp van een Helm-grafiek. Het Flyte-project onderhoudt ook een referentie-implementatie voor AKS die automatisch alle afhankelijkheden configureert en een Flyte-cluster op productieniveau implementeert.

Raadpleeg de volgende artikelen om te beginnen met het bouwen en implementeren van gegevens- en machine learning-pijplijnen: