一. 部署地址
|
UI 地址
|
API地址
|
备注
|
|
http://192.168.10.107:30420
|
http://192.168.10.107:30420/api
|
api地址由集群内部调用
|
二. Prefect详细说明
-
什么是 Prefect?
-
Prefect Community (开源版):包含核心引擎、本地 Server、CLI/SDK,免费使用。
-
Prefect Cloud (商业版):托管的控制平面,提供团队协作、RBAC 权限、自动化部署、高级监控等功能。
-
核心优势
|
特性
|
说明
|
备注
|
|
原生 Python 支持
|
用普通 Python 函数定义任务(Task)和工作流(Flow),学习成本低
|
|
|
动态工作流
|
突破静态 DAG 限制,支持分支、循环、动态任务生成(如机器学习流水线)
|
|
|
强大的容错能力
|
内置重试、缓存、失败通知、任务超时控制
|
|
|
灵活部署
|
支持本地、Docker、K8s、AWS ECS/Fargate、Serverless 等执行环境
|
|
|
可观测性
|
内置 UI、日志、指标、告警(Slack/Email/Teams 等)
|
|
|
云原生架构
|
控制平面与执行平面分离,适配混合云 / 多云场景
|
|
-
核心概念Prefect
-
@task:最小执行单元,封装具体业务逻辑(如数据获取、处理、存储) -
@flow:任务编排容器,定义任务的执行顺序和依赖关系 -
部署(Deployment):将 Flow 打包并配置运行参数,供 Worker 执行
-
Work Pool: 资源池,管理 Worker 的资源类型(Process/Docker/K8s 等)
-
Work Queue : 任务队列,细分 Work Pool 中的任务分发规则
-
Worker:执行部署的 Flow 实例的运行时进程。执行器,从 Queue 拉取任务并运行
-
Prefect Server:本地 / 远程服务,用于监控、调度 Flow 运行
三. Prefect 架构图
四. 配置本地 Prefect 客户端,连接 Server
-
本地安装匹配版本的 Prefect
-
配置客户端指向 K8s 上的 Prefect Server
-
验证连接是否成功
五. 使用示例
-
创建
prefect_demo.py
-
部署流程到 Prefect Server
-
构建部署配置
-
验证部署
五、验证运行结果
-
查看日志(CLI 方式)
-
可视化查看(UI 方式)
-
流程部署列表
-
流程运行状态(成功 / 失败)
-
任务执行日志
-
流程执行时序图