Compartilhar via


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>.
  • 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 comando az aks install-cli ou usando Instalar kubectl.
  • Um ambiente de desenvolvimento local do Docker. Para obter mais informações, confira Obter o Docker.
  • flytekit e flytectl 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

  1. 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
    
  2. 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 comando az 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

  1. 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
    
  2. 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.

  1. Crie um namespace para a sua implantação do Flyte usando o comando kubectl create namespace.

    kubectl create namespace <namespace-name>
    
  2. Instale um gráfico do Helm do Flyte usando o comando helm install. Neste exemplo, usamos o gráfico flyte-binary.

    helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
    
  3. 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: