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.
- Als u meerdere abonnementen hebt, moet u ervoor zorgen dat u het juiste abonnement selecteert met behulp van de
- 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 deaz aks install-cli
opdracht of met kubectl installeren. - Een lokale Docker-ontwikkelomgeving. Zie Docker ophalen voor meer informatie.
flytekit
enflytectl
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
Maak een Azure-resourcegroep voor het AKS-cluster met behulp van de
az group create
opdracht.az group create --name $RESOURCE_GROUP --location $LOCATION
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 deaz 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
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
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.
Maak een naamruimte voor uw Flyte-implementatie met behulp van de
kubectl create namespace
opdracht.kubectl create namespace <namespace-name>
Installeer een Flyte Helm-grafiek met behulp van de
helm install
opdracht. In dit voorbeeld gebruiken we deflyte-binary
grafiek.helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
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:
Azure Kubernetes Service