Partilhar via


Crie e implante pipelines de dados e aprendizado de máquina com o Flyte no Serviço Kubernetes do Azure (AKS)

Este artigo mostra como usar o Flyte no Serviço Kubernetes do Azure (AKS). O Flyte é um orquestrador de fluxo de trabalho de código aberto que unifica pilhas de aprendizado de máquina, engenharia de dados e análise de dados para ajudá-lo 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 fornecer valor comercial sem aumentar seu escopo para gerenciamento de infraestrutura e recursos. Tenha em mente que o Flyte não é oficialmente suportado pela Microsoft, portanto, use-o a seu critério.

Para obter mais informações, consulte 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 é excluído dos contratos de nível de serviço do AKS, da garantia limitada e do suporte do Azure. Ao usar a tecnologia de código aberto ao lado do AKS, consulte as opções de suporte disponíveis nas respetivas comunidades e mantenedores do projeto para desenvolver um plano.

Por exemplo, o repositório Ray GitHub descreve várias plataformas que variam em tempo de resposta, finalidade e nível de suporte.

A Microsoft assume a responsabilidade pela criação dos pacotes de código aberto que implantamos no AKS. Essa responsabilidade inclui ter a propriedade completa do processo de compilação, digitalização, assinatura, validação e hotfix, juntamente com o controle sobre os binários em imagens de contêiner. Para obter mais informações, consulte Gerenciamento de vulnerabilidades para cobertura de suporte AKS e AKS.

Casos de uso do Flyte

O Flyte pode ser usado para uma variedade de casos de uso, incluindo:

  • Forneça modelos para cálculos financeiros simplificados de lucros e perdas.
  • Processe petabytes de dados para realizar eficientemente o mapeamento 3D de novas áreas.
  • Reverta rapidamente para versões anteriores e minimize o impacto de bugs em seus pipelines.

Para obter mais informações, consulte Casos de uso do Core Flyte.

Pré-requisitos

  • Uma subscrição do Azure. Se não tiver uma subscrição do Azure, pode criar uma conta gratuita.
    • Se você tiver várias assinaturas, certifique-se de selecionar a correta usando o az account set --subscription <subscription-id> comando.
  • A CLI do Azure instalada e configurada. Verifique sua versão usando o az --version comando. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.
  • A CLI do Helm instalada e atualizada. Verifique sua versão usando o helm version comando. Se você precisar instalar ou atualizar, consulte Instalar leme.
  • A kubectl CLI instalada e atualizada. Instale-o localmente usando o az aks install-cli comando ou usando Install kubectl.
  • Um ambiente local de desenvolvimento do Docker. Para obter mais informações, consulte Obter o Docker.
  • flytekit e flytectl instalado. Para obter mais informações, consulte Instalação do Flyte.

Nota

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 ao longo do artigo. Substitua os valores de espaço reservado por seus próprios valores.

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

Criar um cluster do AKS

  1. Crie um grupo de recursos do Azure para o cluster AKS usando o az group create comando.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. Crie um cluster AKS usando o az aks create comando com os --enable-azure-rbacparâmetros , --enable-managed-identity, --enable-aade --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
    

Conecte-se ao cluster AKS

  • Configure kubectl para se conectar ao seu cluster AKS usando o az aks get-credentials comando.

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

Adicionar o repositório Flyte Helm

  • Adicione o repositório Flyte Helm usando o helm repo add comando.

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

Encontre gráficos Flyte Helm

  1. Procure gráficos Flyte Helm usando o helm search repo comando.

    helm search repo flyteorg
    

    A saída de exemplo a seguir mostra alguns dos gráficos Flyte Helm 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 helm repo update comando.

    helm repo update
    

Implantar um gráfico Flyte no AKS

Nesta seção, você implanta o gráfico Helm binário flyte para que possa começar a criar e implantar pipelines de dados e aprendizado de máquina com o Flyte no AKS. O gráfico binário flyte é uma implantação executável única básica do Flyte.

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

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

    helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
    
  3. Verifique se a implantação do Flyte está em execução usando o kubectl get services comando.

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

    A saída de exemplo condensado a seguir 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óximos passos

Neste artigo, você aprendeu como instalar o Flyte no AKS usando um gráfico 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 aprendizado de máquina, consulte os seguintes artigos: