拓冰建站拓冰建站
首页 / 资讯中心 / 正文

4300多个n8n工作流怎么管:Docker Compose到Kubernetes的容器化部署实践

4300多个n8n工作流怎么管Docker Compose到Kubernetes的容器化部署实践【免费下载链接】n8n-workflowsall of the workflows of n8n i could find (also from the site itself)项目地址: https://gitcode.com/GitHub_Trending/n8nworkflo/n8n-workflows工作流攒到几千条之后靠手动翻目录基本就失控了。n8n-workflows 仓库把收集到的 n8n 工作流按集成服务拆成了两百多个子目录全部放在 workflows/ 里每条流程就是一个 JSON 文件。想快速找到Telegram 触发、写 Google Sheets这条流程或者确认某个集成一共有多少现成模板在文件树上靠肉眼翻不现实。这个仓库自带一个浏览检索服务把全部工作流索引成可搜索的站点。这篇文章介绍它的容器化部署路径先用 Docker Compose 在单机上跑起来数据落盘、搜索配好之后再按 k8s/ 和 helm/workflows-docs 里的清单升级到 Kubernetes。一、Docker 部署 n8n一条命令把服务拉起来克隆仓库后在根目录执行git clone https://gitcode.com/GitHub_Trending/n8nworkflo/n8n-workflows cd n8n-workflows docker-compose up -d.dockerignore 保证构建时不会把无关文件塞进镜像。Docker 侧的全部约定写在 Dockerfile基于 python:3.11-slim以 uid 1001 的非 root 用户运行并且内置了 HEALTHCHECK每 30 秒请求一次http://localhost:8000/api/stats。.dockerignore 保证构建时不会把无关文件塞进镜像。Docker 侧的全部约定写在 Dockerfile基于 python:3.11-slim以 uid 1001 的非 root 用户运行并且内置了 HEALTHCHECK每 30 秒请求一次http://localhost:8000/api/stats。确认成功的标准只有一个curl http://localhost:8000/api/stats返回 JSON 统计数据就说明服务已就绪。想看容器是否通过内置健康检查执行docker inspect --format {{.State.Health.Status}} n8n-workflows-docs输出 healthy 即可。二、数据卷、搜索索引与开发热重载docker-compose.yml 给服务挂了两个命名卷workflows-db:/app/database和workflows-logs:/app/logs。作用是把 SQLite 数据库和运行日志移到容器生命周期之外——重建容器、升级镜像之后数据不会丢。服务启动时会扫描 workflows/ 下的 JSON 文件生成全文搜索索引产出物如 docs/api/search-index.json。如果你往workflows/里新增了流程文件却搜不到重新运行一次索引脚本即可python scripts/generate_search_index.py两个可选环境在单独的 compose 文件里docker-compose.dev.yml挂载整个代码目录、开启 RELOAD 热更新和 DEBUG 日志适合改代码验证docker-compose.prod.yml日志降到 warning、启用指标、限制内存 512M / CPU 0.5并把工作流目录以只读方式挂入容器。三、Kubernetes 部署 n8n双副本、滚动更新与探针需要对外长期提供服务时仓库的 k8s/ 目录给了一套完整清单namespace.yaml 建立独立命名空间configmap.yaml 注入ENVIRONMENT、MAX_WORKERS等配置deployment.yaml 跑工作负载service.yaml 和 ingress.yaml 负责流量入口。kubectl apply -f k8s/namespace.yaml kubectl apply -f k8s/ -k-k会自动解析目录里的多文档 YAML包括 configmap.yaml 里附带的 Secret。之后用kubectl get pods -n n8n-workflows确认两个副本都进入 Running 状态。deployment.yaml 里几个关键决策值得照搬replicas: 2加 RollingUpdate 策略maxSurge: 1、maxUnavailable: 0升级期间始终至少有两个副本在线流量不断liveness 与 readiness 探针都请求/api/stats后者每 5 秒一次副本没准备好就自动从 Service 摘除资源 requests 256Mi/250m、limits 512Mi/500mPod 以 uid 1000 非 root 运行数据库和日志各挂 1Gi、2Gi 的 PVCservice.yaml 把 80 转发到容器 8000ingress.yaml 配了强制 HTTPS、限流 100 rps、请求体上限 10MB。四、端口冲突、日志与健康检查的排查顺序排障按下面三步走基本能覆盖大多数情况。端口被占。启动后访问 8000 端口返回的不是你的服务先查谁占了端口lsof -i:8000找到进程释放或改 docker-compose.yml 里的8000:8000为8080:8000外部改用 8080 访问。接口异常或变慢。先curl http://localhost:8000/api/stats区分服务挂了和功能坏了再执行docker logs n8n-workflows-docs --tail 100看最近日志日志同时落在 workflows-logs 卷里可回溯。搜不到新工作流。数据都在但搜不到多半是索引没更新回到第二步重跑 scripts/generate_search_index.py然后刷新页面验证。五、用 Helm Chart 收敛参数开自动扩缩容裸 YAML 适合学习长期运维建议走 helm/workflows-docshelm install workflows-docs helm/workflows-docsvalues.yaml 把副本数、镜像、探针、持久化、HPA 全部参数化。两个值得打开的开关autoscaling.enabled改为 true 后副本可在 2 到 10 之间按 80% CPU 利用率自动扩缩podDisruptionBudget默认启用minAvailable 设为 1保证节点维护或发布时集群始终有可用副本。需要监控时把monitoring.enabled打开ServiceMonitor 会按 30s 间隔抓取/metrics路径。上线前的自查清单Docker Compose 本地跑通/api/stats返回 JSON容器健康状态为 healthy数据库与日志落在 workflows-db、workflows-logs 卷重建容器后数据仍在新增工作流后重跑索引脚本搜索能命中K8s 双副本 Ready滚动更新期间服务不中断Helm 安装按需开启 HPA 与 PDB【免费下载链接】n8n-workflowsall of the workflows of n8n i could find (also from the site itself)项目地址: https://gitcode.com/GitHub_Trending/n8nworkflo/n8n-workflows创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门