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>
.
- Si tiene varias suscripciones, asegúrese de seleccionar la correcta mediante el comando
- 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 comandoaz 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
yflytectl
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
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
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 comandoaz 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
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
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.
Cree un espacio de nombres para la implementación de Flyte mediante el comando
kubectl create namespace
.kubectl create namespace <namespace-name>
Instale un gráfico de Helm de Flyte mediante el comando
helm install
. En este ejemplo, se usa el gráfico deflyte-binary
.helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
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:
Azure Kubernetes Service