在 Azure Kubernetes 服务 (AKS) 上使用 Flyte 构建和部署数据与机器学习管道
本文介绍如何在 Azure Kubernetes 服务 (AKS) 上使用 Flyte。 Flyte 是一种开源工作流业务流程协调程序,可将机器学习、数据工程和数据分析堆栈统一起来,帮助你构建稳健可靠的应用程序。 将 Flyte 作为 Kubernetes 原生工作流自动化工具使用时,你可以专注于试验和提供业务价值,而无需扩展到基础结构和资源管理范围。 请记住,Flyte 并未获得 Microsoft 官方支持,因此请自行决定是否使用。
有关详细信息,请参阅 Flyte 简介。
重要
AKS 文档和示例中都提到了开源软件。 AKS 服务级别协议、有限保修和 Azure 支持不涵盖你部署的软件。 将开源技术与 AKS 一起使用时,请查阅相应社区和项目维护者提供的支持选项来制定计划。
例如,Ray GitHub 存储库描述了多个在响应时间、用途和支持级别方面各不相同的平台。
Microsoft 将负责生成我们在 AKS 上部署的开源包。 该责任包括对生成、扫描、签名、验证和修补过程拥有完整的所有权,以及对容器映像中的二进制文件的控制。 如需了解详细信息,请参阅 AKS 漏洞管理和 AKS 支持范围。
Flyte 用例
Flyte 可用于各种用例,包括:
- 提供简化损益财务计算的模型。
- 处理 PB 级数据以高效执行新区域的 3D 映射。
- 快速回退到以前的版本,并最大程度地减少管道中 bug 的影响。
有关详细信息,请参阅 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 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
使用具有
--enable-azure-rbac
、--enable-managed-identity
、--enable-aad
和--dns-name-prefix
参数的az aks create
命令创建 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 群集。
若要开始生成和部署数据和机器学习管道,请参阅以下文章: