Kestra
事件驱动声明式工作流编排平台,用 YAML 定义可靠管道。
智能下载
前往项目主页
该项目暂未提供安装包,请直接访问源代码仓库
开源编排神器,YAML 写工作流,事件+定时都能搞定。
核心功能
- YAML 声明式定义工作流,UI 可视化编辑
- 同时支持定时触发和实时事件触发
- 数百个插件连接数据库、云存储、API
- 内置代码编辑器,语法高亮和自动补全
- Git 版本控制集成,CI/CD 友好
避坑指南
- •本地快速启动依赖 Docker,生产环境建议使用 Kubernetes 或云托管。2. Docker 挂载卷需注意权限,Windows 用户建议使用 WSL 2。3. 插件需要网络下载第一次耗时较长。4. 默认使用内置 H2 数据库,生产需切换为 PostgreSQL。
适用场景
- 数据管道(ETL/ELT)自动化
- 微服务编排与事件驱动自动化
- 定时批处理任务(如日报生成)
- 多云环境下的运维流程自动化
详细介绍
Kestra 是一个开源、事件驱动的工作流编排平台,能轻松处理定时和实时工作流。它将基础设施即代码的最佳实践引入数据、流程和微服务编排,让你只需几行 YAML 即可在 UI 中构建可靠的工作流。核心功能包括:丰富的插件生态(数百个预置连接器)、直观的 UI 和实时语法校验、Git 版本控制集成、原生事件触发器、重试/超时/错误处理、并行执行。支持 Docker、Kubernetes、AWS、GCP、Azure 等多种部署方式,可扩展至百万级工作流。
常见问题与排障 (2)
故障排除为什么当向子流程传递组合的Pebble列表时,我的Kestra输出变量会被覆盖?
这是由Pebble的列表连接运算符(+)就地修改第一个列表导致的。当连接结果作为子流程的输入传递时,表达式中的第一个列表变量会被永久修改,从而携带所有合并后的值。解决方法:重新排列表达式,将需要保留的变量放在最后。例如,将outputs.task.variable移到表达式末尾:{{ (kv('key') | default([])) + (inputs.list | default([])) + (outputs.task.variable | default([])) }}。这样可以保持原始输出不变。另一种方法是在连接前使用| list创建列表的副本,以强制生成新列表。
故障排除如何修复Kestra执行卡在KILLING状态导致无限重试循环和PostgreSQL磁盘已满的问题?
这是 Kestra v1.3.14 的一个已知bug:卡在 KILLING 状态的执行会触发无限重试循环,导致日志表和队列表数据激增。临时解决方法:停止 Kestra,然后手动删除该执行:DELETE FROM executions WHERE key = '<execution_id>';,接着执行 TRUNCATE TABLE logs;、TRUNCATE TABLE queues;、VACUUM FULL;。重启 Kestra。为防止未来再次出现,请在流程定义中添加流程级超时设置(例如 timeout: PT15M)。请关注 Kestra 更新中的官方修复。
标签
快速上手
安装软件
双击下载的安装程序,按提示完成安装
步骤1:确保已安装 Docker,终端执行 docker run --pull=always -it -p 8080:8080 --user=root --name kestra --restart=always -v kestra_data:/app/storage -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp kestra/kestra:latest server local
步骤2:打开浏览器访问 http://localhost:8080 进入 UI
步骤3:点击“Create”新建 Flow,粘贴以下 YAML 并保存: id: hello_world namespace: dev tasks: - id: say_hello type: io.kestra.plugin.core.log.Log message: "Hello, World!"
- 步骤1:确保已安装 Docker,终端执行 docker run --pull=always -it -p 8080:8080 --user=root --name kestra --restart=always -v kestra_data:/app/storage -v /var/run/docker.sock:/var/run/docker.sock -v /tmp:/tmp kestra/kestra:latest server local
- 步骤2:打开浏览器访问 http://localhost:8080 进入 UI
- 步骤3:点击“Create”新建 Flow,粘贴以下 YAML 并保存: id: hello_world namespace: dev tasks: - id: say_hello type: io.kestra.plugin.core.log.Log message: "Hello, World!"
暂未获取到校验码
该项目暂未在 GitHub Release 页面提供 SHA-256 校验码
SHA256 校验码
暂无校验码
建议从 GitHub Releases 页面直接下载,并自行核对文件完整性
本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。
开源透明
查看 GitHub 源码卸载说明
停止并删除 Docker 容器:docker stop kestra && docker rm kestra。若需清理持久化数据,删除 Docker 卷:docker volume rm kestra_data。
无额外依赖
下载后即可直接使用,无需安装其他运行环境
遇到问题?查看下方 FAQ
2 FAQs