Compilare e distribuire pipeline di dati e Machine Learning con Flyte nel servizio Azure Kubernetes (AKS)
Questo articolo mostra come usare Flyte nel servizio Azure Kubernetes (AKS). Flyte è un agente di orchestrazione del flusso di lavoro open source che unifica gli stack di Machine Learning, ingegneria dei dati e analisi dei dati per facilitare la creazione di applicazioni solide e affidabili. Quando si usa Flyte come strumento di automazione di un flusso di lavoro nativo di Kubernetes, è possibile concentrarsi sulla sperimentazione e sul fornire valore aziendale senza aumentare l'ambito per l'infrastruttura e la gestione delle risorse. Tenere presente che Flyte non è ufficialmente supportato da Microsoft, quindi il suo uso è a discrezione dell’utente.
Per altre informazioni, vedere Introduzione a Flyte.
Importante
Il software open source è citato nella documentazione e negli esempi di Azure Kubernetes. Il software distribuito viene escluso dai contratti di servizio del servizio Azure Kubernetes, dalla garanzia limitata e supporto tecnico di Azure. Quando si usa la tecnologia open source insieme al servizio Azure Kubernetes, consultare le opzioni di supporto disponibili dalle rispettive community e dai gestori di progetti per sviluppare un piano.
Ad esempio, il repository GitHub Ray descrive diverse piattaforme che variano in tempo di risposta, scopo e livello di supporto.
Microsoft si assume la responsabilità di creare i pacchetti open source distribuiti nel servizio Azure Kubernetes. Tale responsabilità include la proprietà completa del processo di compilazione, analisi, firma, convalida e hotfix, oltre al controllo sui file binari nelle immagini del contenitore. Per altre informazioni, vedere Gestione delle vulnerabilità per il servizio Azure Kubernetes e Copertura del supporto del servizio Azure Kubernetes.
Casi d'uso di Flyte
Flyte può essere usato per diversi casi d'uso, ad esempio per:
- Offrire modelli per calcoli finanziari semplificati relativi a profitti e perdite.
- Elaborare petabyte di dati per effettuare in modo efficiente il mapping 3D delle nuove aree.
- Eseguire rapidamente il rollback alle versioni precedenti e ridurre al minimo l'impatto dei bug nelle pipeline.
Per altre informazioni, vedere Casi d'uso di base di Flyte.
Prerequisiti
- Una sottoscrizione di Azure. Se non hai una sottoscrizione Azure, crea un account gratuito.
- Se si dispone di più sottoscrizioni, assicurarsi di selezionare quella corretta tramite il comando
az account set --subscription <subscription-id>
.
- Se si dispone di più sottoscrizioni, assicurarsi di selezionare quella corretta tramite il comando
- Interfaccia della riga di comando di Azure installata e configurata. Controllare la versione tramite il comando
az --version
. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure. - Interfaccia della riga di comando di Helm installata e aggiornata. Controllare la versione tramite il comando
helm version
. Se è necessario eseguire l’installazione o l'aggiornamento, vedere Installare Helm. - Interfaccia della riga di comando di
kubectl
installata e aggiornata. Installarla in locale tramite il comandoaz aks install-cli
o Installa kubectl. - Ambiente di sviluppo Docker locale. Per altre informazioni, vedere Get Docker (Ottenere Docker).
flytekit
eflytectl
installati. Per altre informazioni, vedere Installazione di Flyte.
Nota
Se si usa Azure Cloud Shell, l'interfaccia della riga di comando di Azure, Helm e kubectl sono già installati.
Impostare le variabili di ambiente
Impostare le variabili di ambiente da usare in questo articolo. Sostituire i valori segnaposto con i propri valori.
export RESOURCE_GROUP="<resource-group-name>" export LOCATION="<location>" export CLUSTER_NAME="<cluster-name>" export DNS_NAME_PREFIX="<dns-name-prefix>"
Creare un cluster del servizio Azure Kubernetes
Creare un gruppo di risorse di Azure per il cluster del servizio Azure Kubernetes tramite il comando
az group create
.az group create --name $RESOURCE_GROUP --location $LOCATION
Creare un cluster del servizio Azure Kubernet tramite il comando
az aks create
e i parametri--enable-azure-rbac
,--enable-managed-identity
,--enable-aad
e--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
Connettersi al cluster del servizio Azure Kubernetes
Configurare
kubectl
per connettersi al cluster del servizio Azure Kubernetes usando il comandoaz aks get-credentials
.az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
Aggiungere il repository di Flyte Helm
Aggiungere il repository di Flyte Helm tramite il comando
helm repo add
.helm repo add flyteorg https://flyteorg.github.io/flyte
Trovare grafici di Flyte Helm
Cercare i grafici di Flyte Helm tramite il comando
helm search repo
.helm search repo flyteorg
L'output di esempio seguente mostra alcuni dei grafici di Flyte Helm disponibili:
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
Aggiornare il repository tramite il comando
helm repo update
.helm repo update
Distribuire un grafico di Flyte nel servizio Azure Kubernetes
In questa sezione viene distribuito il grafico flyte-binary di Helm per iniziare a compilare e distribuire pipeline di dati e Machine Learning con Flyte nel servizio Azure Kubernetes. Il grafico flyte-binary è una distribuzione di base semplice che può essere eseguita in Flyte.
Creare uno spazio dei nomi per la distribuzione di Flyte tramite il comando
kubectl create namespace
.kubectl create namespace <namespace-name>
Installare un grafico di Flyte Helm tramite il comando
helm install
. In questo esempio viene usato il graficoflyte-binary
.helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
Verificare che la distribuzione di Flyte sia in esecuzione tramite il comando
kubectl get services
.kubectl get services --namespace <namespace-name> --output wide
L'output di esempio condensato seguente mostra la distribuzione di 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
Passaggi successivi
In questo articolo si è appreso come installare Flyte nel servizio Azure Kubernetes usando un grafico Helm. Il progetto Flyte gestisce anche un'implementazione di riferimento per il servizio Azure Kubernetes che configura automaticamente tutte le dipendenze e distribuisce un cluster Flyte di livello di produzione.
Per iniziare a compilare e distribuire pipeline di dati e Machine Learning, vedere gli articoli seguenti:
Azure Kubernetes Service