OpenSource-Hub
K

Kestra

26.8k stars·开发工具·已提供 SHA-256 校验码,下载后可自行核对文件完整性

事件驱动声明式工作流编排平台,用 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创建列表的副本,以强制生成新列表。

来源 Issue #15048
故障排除
如何修复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 更新中的官方修复。

来源 Issue #15829

标签

workflow-orchestrationevent-drivendeclarativeyamlpluginsopen-sourceautomationscheduling

快速上手

1

下载安装包

点击上方按钮下载对应系统的安装包

2

安装软件

双击下载的安装程序,按提示完成安装

3

步骤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

4

步骤2:打开浏览器访问 http://localhost:8080 进入 UI

5

步骤3:点击“Create”新建 Flow,粘贴以下 YAML 并保存: id: hello_world namespace: dev tasks: - id: say_hello type: io.kestra.plugin.core.log.Log message: "Hello, World!"

安装指引
  1. 步骤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. 步骤2:打开浏览器访问 http://localhost:8080 进入 UI
  3. 步骤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 页面自行验证。

运维指引

卸载说明

停止并删除 Docker 容器:docker stop kestra && docker rm kestra。若需清理持久化数据,删除 Docker 卷:docker volume rm kestra_data。

无额外依赖

下载后即可直接使用,无需安装其他运行环境

项目信息
开源协议Apache-2.0
最后更新2026-06-25 23:50:15
GitHub 仓库官方网站

遇到问题?查看下方 FAQ

2 FAQs

相似推荐