共用方式為


在 Azure Kubernetes Service (AKS) 上使用 Flyte 來建置及部署資料和機器學習管線

本文說明如何在 Azure Kubernetes Service (AKS) 上使用 Flyte。 Flyte 是開放原始碼工作流程協調器,可統一機器學習、資料工程和資料分析堆疊,以協助您建置強固且可靠的應用程式。 使用 Flyte 作為 Kubernetes 原生工作流程自動化工具時,您可以專注於實驗並提供商業價值,而不需擴大基礎結構和資源管理的範圍。 請記住,Microsoft 並未正式支援 Flyte,因此請自行決定加以使用。

如需詳細資訊,請參閱 Flyte 簡介

重要

整個 AKS 文件和範例都會提及開放原始碼的軟體。 您部署的軟體會從 AKS 服務等級協定、有限擔保和 Azure 支援 中排除。 當您搭配 AKS 使用開放原始碼技術時,請參閱個別社群和專案維護人員所提供的支援選項,以開發計畫。

例如,Ray GitHub 存放 描述數個因回應時間、用途和支援層級而異的平臺。

Microsoft負責建置我們在 AKS 上部署的開放原始碼套件。 該責任包括擁有組建、掃描、簽署、驗證和 Hotfix 程式的完整擁有權,以及控制容器映像中的二進位檔。 如需詳細資訊,請參閱 AKS 弱點管理AKS 支援涵蓋範圍

Flyte 使用案例

Flyte 可用於各種使用案例,包括:

  • 提供用於簡化損益財務計算的模型。
  • 處理數 PB 的資料,有效率地進行新區域的 3D 對應。
  • 快速復原至舊版,並將管線中 Bug 的影響降到最低。

如需詳細資訊,請參閱 Core Flyte 使用案例

必要條件

  • Azure 訂用帳戶。 如果您沒有 Azure 訂用帳戶,您可以建立免費帳戶
    • 如果您有多個訂用帳戶,請務必使用 az account set --subscription <subscription-id> 命令來選取正確的訂用帳戶。
  • 已安裝並設定 Azure CLI。 使用 az --version 命令來檢查您的版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI 模組
  • 已安裝並更新 Helm CLI。 使用 helm version 命令來檢查您的版本。 如果您需要安裝或升級,請參閱安裝 Helm
  • 已安裝並更新 kubectl CLI。 使用 az aks install-cli 命令或使用安裝 kubectl 在本機安裝。
  • 本機 Docker 開發環境。 如需詳細資訊,請參閱取得 Docker (英文)。
  • 已安裝 flytekitflytectl。 如需詳細資訊,請參閱 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. 使用 az group create 命令來建立 AKS 叢集的 Azure 資源群組。

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  2. 使用 az aks create 命令搭配 --enable-azure-rbac--enable-managed-identity--enable-aad--dns-name-prefix 參數來建立 AKS 叢集。

    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 叢集

  • 使用 az aks get-credentials 命令,設定 kubectl 以連線到您的 AKS 叢集。

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

新增 Flyte Helm 存放庫

  • 使用 helm repo add 命令新增 Flyte Helm 存放庫。

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

尋找 Flyte Helm 圖表

  1. 使用 helm search repo 命令搜尋 Flyte Helm 圖表。

    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
    

在 AKS 上部署 Flyte 圖表

在本節中,您會部署 flyte-binary Helm 圖表,讓您可以在 AKS 上使用 Flyte 開始建置及部署資料和機器學習管線。 flyte-binary 圖表是基本的單一 Flyte 可執行部署。

  1. 使用 kubectl create namespace 命令建立 Flyte 部署的命名空間。

    kubectl create namespace <namespace-name>
    
  2. 使用 helm install 命令安裝 Flyte Helm 圖表。 在此範例中,我們使用 flyte-binary 圖表。

    helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
    
  3. 使用 kubectl get services 命令確認 Flyte 部署正在執行。

    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
    

下一步

在本文中,您已瞭解如何使用 Helm 圖表在 AKS 上安裝 Flyte。 Flyte 專案也會維護 AKS 的參考實作,以自動設定所有相依性並部署生產等級 Flyte 叢集。

若要開始建置及部署資料和機器學習管線,請參閱下列文章: