Поделиться через


Создание и развертывание конвейеров данных и машинного обучения с помощью Flyte на Служба Azure Kubernetes (AKS)

В этой статье показано, как использовать Flyte на Служба Azure Kubernetes (AKS). Flyte — это оркестратор рабочих процессов с открытым исходным кодом, который объединяет стеки машинного обучения, проектирования данных и аналитики данных, помогая создавать надежные и надежные приложения. При использовании Flyte в качестве средства автоматизации рабочих процессов kubernetes можно сосредоточиться на экспериментации и предоставлении бизнес-ценности, не увеличивая область использования инфраструктуры и управления ресурсами. Помните, что Flyte официально не поддерживается корпорацией Майкрософт, поэтому используйте его по своему усмотрению.

Дополнительные сведения см. в разделе "Введение в Flyte".

Внимание

Программное обеспечение с открытым кодом упоминается во всей документации и примерах AKS. Развертываемое программное обеспечение исключается из соглашений об уровне обслуживания AKS, ограниченной гарантии и поддержка Azure. При использовании технологии с открытым исходным кодом вместе с AKS ознакомьтесь с вариантами поддержки, доступными от соответствующих сообществ и обслуживающих проектов для разработки плана.

Например, репозиторий Ray GitHub описывает несколько платформ, которые зависят от времени отклика, назначения и уровня поддержки.

Корпорация Майкрософт несет ответственность за создание пакетов с открытым кодом, которые мы развертываем в AKS. Эта ответственность включает полное владение сборкой, сканированием, подписью, проверкой и исправлением, а также контролем над двоичными файлами в образах контейнеров. Дополнительные сведения см. в статье об управлении уязвимостями для поддержки AKS и AKS.

Варианты использования Flyte

Flyte можно использовать для различных вариантов использования, включая:

  • Предоставление моделей для оптимизированных вычислений прибыли и потерь.
  • Обработайте петабайты данных для эффективного сопоставления трехмерных областей.
  • Быстрый откат к предыдущим версиям и минимизация влияния ошибок в конвейерах.

Дополнительные сведения см. в вариантах использования Core Flyte.

Необходимые компоненты

  • Подписка Azure. Если у вас еще нет подписки Azure, вы можете создать бесплатную учетную запись.
    • Если у вас несколько подписок, убедитесь, что выбран правильный с помощью az account set --subscription <subscription-id> команды.
  • Интерфейс командной строки Azure установлен и настроен. Проверьте версию с помощью az --version команды. Если вам необходимо выполнить установку или обновление, обратитесь к статье Установка Azure CLI.
  • Интерфейс командной строки Helm установлен и обновлен. Проверьте версию с помощью helm version команды. Если вам нужно установить или обновить, см. статью Install Helm.
  • Интерфейс командной kubectl строки установлен и обновлен. Установите его локально с помощью команды или с помощью az aks install-cli kubectl.
  • Локальная среда разработки Docker. Дополнительные сведения см. в статье Получение Docker.
  • flytekit и flytectl установлен. Дополнительные сведения см. в разделе "Установка Flyte".

Примечание.

Если вы используете Azure Cloud Shell, azure CLI, Helm и kubectl уже установлены.

Настройка переменных среды

  • Задайте переменные среды для использования в этой статье. Замените значения заполнителей собственными значениями.

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

Создание кластера AKS

  1. Создайте группу ресурсов Azure для кластера AKS с помощью az group create команды.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. Создайте кластер AKS с помощью az aks create команды , а --enable-azure-rbac--enable-managed-identity--enable-aadтакже параметров и --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
    

Подключение к кластеру AKS

  • Настройте kubectl подключение к кластеру az aks get-credentials AKS с помощью команды.

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

Добавление репозитория Flyte Helm

  • Добавьте репозиторий Flyte Helm с помощью helm repo add команды.

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

Найти диаграммы Flyte Helm

  1. Найдите диаграммы Flyte Helm с помощью helm search repo команды.

    helm search repo flyteorg
    

    В следующем примере выходных данных показаны некоторые доступные диаграммы Flyte Helm:

    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. Обновите репозиторий с помощью helm repo update команды.

    helm repo update
    

Развертывание диаграммы Flyte в AKS

В этом разделе описано, как развернуть диаграмму Helm flyte-binary, чтобы начать сборку и развертывание конвейеров данных и машинного обучения с помощью Flyte в AKS. Флитт-двоичная диаграмма — это базовое одно исполняемое развертывание Flyte.

  1. Создайте пространство имен для развертывания Flyte с помощью kubectl create namespace команды.

    kubectl create namespace <namespace-name>
    
  2. Установите диаграмму Flyte Helm с помощью helm install команды. В этом примере мы используем диаграмму flyte-binary .

    helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
    
  3. Убедитесь, что развертывание Flyte выполняется с помощью kubectl get services команды.

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

    В следующем сжатом примере выходных данных показано развертывание 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
    

Следующие шаги

В этой статье вы узнали, как установить Flyte на AKS с помощью диаграммы Helm. Проект Flyte также поддерживает эталонную реализацию AKS , которая автоматически настраивает все зависимости и развертывает рабочий кластер Flyte.

Чтобы приступить к созданию и развертыванию конвейеров данных и машинного обучения, ознакомьтесь со следующими статьями: