在 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 (英文)。
- 已安裝
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 叢集
使用
az group create
命令來建立 AKS 叢集的 Azure 資源群組。az group create --name $RESOURCE_GROUP --location $LOCATION
使用
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 圖表
使用
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
使用
helm repo update
命令更新存放庫。helm repo update
在 AKS 上部署 Flyte 圖表
在本節中,您會部署 flyte-binary Helm 圖表,讓您可以在 AKS 上使用 Flyte 開始建置及部署資料和機器學習管線。 flyte-binary 圖表是基本的單一 Flyte 可執行部署。
使用
kubectl create namespace
命令建立 Flyte 部署的命名空間。kubectl create namespace <namespace-name>
使用
helm install
命令安裝 Flyte Helm 圖表。 在此範例中,我們使用flyte-binary
圖表。helm install flyte-binary flyteorg/flyte-core --namespace <namespace-name>
使用
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 叢集。
若要開始建置及部署資料和機器學習管線,請參閱下列文章: