Criar e implantar pipelines de dados e aprendizado de máquina com o Flyte no Serviço de Kubernetes do Azure (AKS)
Este artigo mostra como usar o Flyte no Serviço de Kubernetes do Azure (AKS). O Flyte é um orquestrador de fluxo de trabalho de software livre que unifica pilhas de machine learning, engenharia de dados e análise de dados para ajudar você a criar aplicativos robustos e confiáveis. Ao usar o Flyte como uma ferramenta de automação de fluxo de trabalho nativa do Kubernetes, você pode se concentrar na experimentação e no fornecimento de valor de negócios sem aumentar o seu escopo para infraestrutura e gerenciamento de recursos. Tenha em mente que o Flyte não tem suporte oficial da Microsoft, portanto, use-o a seu próprio critério.
Para obter mais informações, confira Introdução ao Flyte.
Importante
O software de código aberto é mencionado em toda a documentação e amostras do AKS. O software que você implanta está excluído dos contratos de nível de serviço do AKS, garantia limitada e suporte do Azure. Ao usar tecnologia de código aberto junto com o AKS, consulte as opções de suporte disponíveis nas comunidades e mantenedores de projetos respectivos para desenvolver um plano.
Por exemplo, o repositório do Ray GitHub descreve várias plataformas que variam em tempo de resposta, finalidade e nível de suporte.
A Microsoft assume a responsabilidade por criar os pacotes de código aberto que implantamos no AKS. Essa responsabilidade inclui ter propriedade completa do processo de criação, verificação, sinalização, validação e hotfix, junto com o controle sobre os binários em imagens de contêiner. Para obter mais informações, confira Gerenciamento de vulnerabilidades para o AKS e Cobertura de suporte do AKS.
Casos de uso do Flyte
O Flyte pode ser usado para uma variedade de casos de uso, incluindo:
- Entregue modelos para cálculos financeiros simplificados de lucro e perda.
- Processe petabytes de dados para conduzir com eficiência o mapeamento 3D de novas áreas.
- Reverta rapidamente para versões anteriores e minimize o impacto dos bugs em seus pipelines.
Para obter mais informações, confira Casos de uso do Core Flyte.
Pré-requisitos
- Uma assinatura do Azure. Caso não tenha uma assinatura do Azure, é possível criar uma conta gratuita.
- Se você tiver várias assinaturas, selecione a correta usando o comando
az account set --subscription <subscription-id>
.
- Se você tiver várias assinaturas, selecione a correta usando o comando
- A CLI do Azure instalada e configurada. Verifique a sua versão usando o comando
az --version
. Se você precisar instalar ou atualizar, confira Instalar a CLI do Azure. - A CLI do Helm instalada e atualizada. Verifique a sua versão usando o comando
helm version
. Se você precisar instalar ou atualizar, confira Instalar o Helm. - A CLI
kubectl
instalada e atualizada. Instale-a localmente usando o comandoaz aks install-cli
ou usando Instalar kubectl. - Um ambiente de desenvolvimento local do Docker. Para obter mais informações, confira Obter o Docker.
flytekit
eflytectl
instalados. Para obter mais informações, confira Instalação do Flyte.
Observação
Se você estiver usando o Azure Cloud Shell, a CLI do Azure, o Helm e o kubectl já estão instalados.
Definir variáveis de ambiente
Defina variáveis de ambiente para uso em todo o artigo. Substitua os valores do espaço reservado pelos seus.
export RESOURCE_GROUP="<resource-group-name>" export LOCATION="<location>" export CLUSTER_NAME="<cluster-name>" export DNS_NAME_PREFIX="<dns-name-prefix>"
Criar um cluster AKS
Crie um grupo de recursos do Azure para o cluster do AKS usando o comando
az group create
.az group create --name $RESOURCE_GROUP --location $LOCATION
Crie um cluster do AKS usando o comando
az aks create
com os parâmetros--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
Conectar-se ao cluster do AKS
Configure
kubectl
para se conectar ao seu cluster do AKS usando o comandoaz aks get-credentials
.az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
Adicionar o repositório Helm do Flyte
Adicione o repositório Helm do Flye usando o comando
helm repo add
.helm repo add flyteorg https://flyteorg.github.io/flyte
Localizar gráficos do Helm do Flyte
Pesquise gráficos do Helm do Flyte usando o comando
helm search repo
.helm search repo flyteorg
A saída de exemplo a seguir mostra alguns dos gráficos do Helm do Flyte disponíveis:
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
Atualize o repositório usando o comando
helm repo update
.helm repo update
Implantar um gráfico do Flyte no AKS
Nesta seção, você implantará o gráfico binário de flyte do Helm para começar a criar e implantar pipelines de dados e aprendizado de máquina com o Flyte no AKS. O gráfico binário de flyte é uma implantação básica e única do Flyte.
Crie um namespace para a sua implantação do Flyte usando o comando
kubectl create namespace
.kubectl create namespace <namespace-name>
Instale um gráfico do Helm do Flyte usando o comando
helm install
. Neste exemplo, usamos o gráficoflyte-binary
.helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
Verifique se a implantação do Flyte está em execução usando o comando
kubectl get services
.kubectl get services --namespace <namespace-name> --output wide
A seguinte saída de exemplo condensada mostra a implantação do 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
Próximas etapas
Neste artigo, você aprendeu a instalar o Flyte no AKS usando um gráfico do Helm. O projeto Flyte também mantém uma implementação de referência para o AKS que configura automaticamente todas as dependências e implanta um cluster Flyte de nível de produção.
Para começar a criar e implantar pipelines de dados e machine learning, confira os seguintes artigos:
Azure Kubernetes Service