Compartir a través de


Compilación e implementación de canalizaciones de datos y aprendizaje automático con Flyte en Azure Kubernetes Service (AKS)

En este artículo se muestra cómo usar Flyte en Azure Kubernetes Service (AKS). Flyte es un orquestador de flujo de trabajo de código abierto que unifica las pilas de aprendizaje automático, la ingeniería de datos y el análisis de datos para ayudarle a crear aplicaciones sólidas y confiables. Al usar Flyte como una herramienta de automatización de flujos de trabajo nativa de Kubernetes, puede centrarse en experimentar y proporcionar valor empresarial sin aumentar el ámbito de la infraestructura y la administración de recursos. Tenga en cuenta que Flyte no es compatible oficialmente con Microsoft, por lo que úselo a su propia discreción.

Para más información, consulte Introducción a Flyte.

Importante

El software de código abierto se menciona en toda la documentación y ejemplos de AKS. El software que implemente se excluye de los contratos de nivel de servicio de AKS, la garantía limitada y el soporte técnico de Azure. A medida que usa la tecnología de código abierto junto con AKS, consulte las opciones de soporte técnico disponibles en las comunidades y los mantenedores de proyectos respectivos para desarrollar un plan.

Por ejemplo, el Repositorio Ray de GitHub describe varias plataformas que varían en el tiempo de respuesta, el propósito y el nivel de soporte técnico.

Microsoft asume la responsabilidad de crear los paquetes de código abierto que implementamos en AKS. Esa responsabilidad incluye tener la propiedad completa del proceso de compilación, examen, firma, validación y revisión, junto con el control sobre los archivos binarios en imágenes de contenedor. Para obtener más información, consulte Administración de vulnerabilidades para AKS y Cobertura del soporte técnico de AKS.

Casos de uso de Flyte

Flyte se puede usar para una variedad de casos de uso, entre los que se incluyen:

  • Ofrecer modelos para cálculos financieros optimizados de beneficios y pérdidas.
  • Procesamiento de petabytes de datos para realizar de forma eficaz la asignación 3D de nuevas áreas.
  • Reversión rápida a versiones anteriores y minimizar el impacto de los errores en las canalizaciones.

Para obtener más información, consulte Casos de uso de Flyte Core.

Requisitos previos

  • Suscripción a Azure. Si no tiene una suscripción a Azure, puede crear una cuenta gratuita.
    • Si tiene varias suscripciones, asegúrese de seleccionar la correcta mediante el comando az account set --subscription <subscription-id>.
  • La CLI de Azure instalada y configurada. Compruebe la versión con el comando az --version. Si necesita instalarla o actualizarla, consulte Instalación de la CLI de Azure.
  • La CLI de Helm instalada y actualizada. Compruebe la versión con el comando helm version. Si necesita instalarlo o actualizarlo, consulte Instalación de Helm.
  • La CLI de kubectl instalada y actualizada. Instálelo localmente mediante el comando az aks install-cli o mediante Instalar kubectl.
  • Un entorno de desarrollo de Docker local. Para más información, vea Get Docker (Obtención de Docker).
  • flytekit y flytectl instalados. Para más información, consulte Instalación de Flyte.

Nota:

Si usa Azure Cloud Shell, la CLI de Azure, Helm y kubectl ya están instaladas.

Establecimiento de variables de entorno

  • Establezca variables de entorno para su uso en todo el artículo. Reemplace los valores de los marcadores de posición por sus propios valores.

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

Creación de un clúster de AKS

  1. Cree un grupo de recursos de Azure para el clúster de AKS mediante el comando az group create.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. Cree un clúster de AKS mediante el comando az aks create con los parámetros --enable-azure-rbac, --enable-managed-identity, --enable-aad y --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
    

Conectarse al clúster AKS

  • Configure kubectl para conectarse a su clúster AKS mediante el comando az aks get-credentials.

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

Adición del repositorio de Helm de Flyte

  • Agregue el repositorio de Helm de Flyte mediante el comando helm repo add.

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

Búsqueda de gráficos de Helm flotantes

  1. Busque Gráficos de Helm flotantes mediante el comando helm search repo.

    helm search repo flyteorg
    

    En la siguiente salida de ejemplo se muestran algunos de los gráficos de Helm de Flyte disponibles:

    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. Actualice el repositorio mediante el comando helm repo update.

    helm repo update
    

Implementación de un gráfico de Flyte en AKS

En esta sección, implementará el gráfico de Helm binario flotante para que pueda empezar a compilar e implementar canalizaciones de datos y aprendizaje automático con Flyte en AKS. El gráfico de flyte-binary es una implementación básica del ejecutable de Flyte.

  1. Cree un espacio de nombres para la implementación de Flyte mediante el comando kubectl create namespace.

    kubectl create namespace <namespace-name>
    
  2. Instale un gráfico de Helm de Flyte mediante el comando helm install. En este ejemplo, se usa el gráfico de flyte-binary.

    helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
    
  3. Compruebe que la implementación de Flyte se está ejecutando con el comando kubectl get services.

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

    La siguiente salida de ejemplo condensada muestra la implementación de 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
    

Pasos siguientes

En este artículo, ha aprendido a instalar Flyte en AKS mediante un gráfico de Helm. El proyecto de Flyte también mantiene una implementación de referencia para AKS que configura automáticamente todas las dependencias e implementa un clúster de Flyte de nivel de producción.

Para empezar a compilar e implementar canalizaciones de datos y aprendizaje automático, consulte los siguientes artículos: