ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

n8n-workflows 如何部署到 Kubernetes 集群并用 Helm 安装?

n8n-workflows 如何部署到 Kubernetes 集群并用 Helm 安装? n8n-workflows 如何部署到 Kubernetes 集群并用 Helm 安装【免费下载链接】n8n-workflowsall of the workflows of n8n i could find (also from the site itself)项目地址: https://gitcode.com/GitHub_Trending/n8nworkflo/n8n-workflowsn8n-workflows 仓库里除了大量 n8n 工作流 JSON还包含一个文档平台应用FastAPI SQLite监听容器端口 8000仓库为它提供了两条 Kubernetes 部署路径k8s/ 目录下的原生 YAML 清单以及 helm/workflows-docs/ 下的 Helm Chart。本文按 DEPLOYMENT.md 中「Kubernetes Deployment」一节的说明先走完整的 kubectl 路径再说明 Helm 安装命令与这个 Chart 当前能渲染出什么、缺什么最后给出文档中实际存在的验证手段。部署对象与两条路径的边界两条路径部署的是同一个应用镜像ghcr.io/sahiixx/n8n-workflows-1:latestimagePullPolicy: Always见 k8s/deployment.yaml 与 helm/workflows-docs/values.yaml容器端口 8000健康检查端点/api/stats环境变量固定为ENVIRONMENTproduction、LOG_LEVELinfo、ENABLE_METRICStrue、MAX_WORKERS4这些在 DEPLOYMENT.md 的环境变量表中有对应说明持久化两块SQLite 数据库目录/app/database1Gi PVC与日志目录/app/logs2Gi PVC均为ReadWriteOnce、StorageClassstandard。路径范围上的差别要先说清楚kubectl 路径manifest 覆盖 Namespace、ConfigMap/Secret、Deployment含两个 PVC、Service、Ingress是一条完整的部署链Helm 路径Chartworkflows-docsversion: 1.0.0appVersion: 1.0.0见 helm/workflows-docs/Chart.yaml的templates/目录当前只有 deployment.yaml 和 _helpers.tpl。也就是说helm install只会渲染出一个 Deployment不包含 Namespace、Service、Ingress、PVC 和 ServiceAccount 的模板而这些正是 Deployment 渲染结果所引用的资源下文单独展开。前置条件由清单文件直接推出DEPLOYMENT.md 的 Kubernetes 小节给出的是kubectl apply与helm install命令因此操作机需要已配置好目标集群的 kubectl 与 helm。除此之外manifest 的注解和内容预设了以下条件集群里要事先具备名为standard的 StorageClass——两个 PVC 都写了storageClassName: standardingress-nginx——Ingress 使用了kubernetes.io/ingress.class: nginxcert-manager 及名为letsencrypt-prod的 ClusterIssuer——Ingress 注解cert-manager.io/cluster-issuer: letsencrypt-prodTLS Secretworkflows-docs-tls由它签发域名解析——文档中的域名是占位值k8s/ingress.yaml 写的是workflows.yourdomain.com开发环境 Ingress 为workflows-dev.yourdomain.comvalues.yaml 写的是workflows.example.com都需替换为你自己的域名并配好 A 记录。镜像从ghcr.io拉取且没有配置 imagePullSecret集群需能直接访问该镜像仓库文档没有提供替代镜像地址。路径一用 kubectl 按顺序应用清单DEPLOYMENT.md 给出的顺序是Namespace → ConfigMap → Deployment → Service → Ingress直接照抄即可# Apply Kubernetes manifests kubectl apply -f k8s/namespace.yaml kubectl apply -f k8s/configmap.yaml kubectl apply -f k8s/deployment.yaml kubectl apply -f k8s/service.yaml kubectl apply -f k8s/ingress.yaml按文件说明每一步建了什么1. namespace.yaml——创建命名空间n8n-workflows后续所有资源都落在该命名空间。2. configmap.yaml——实际包含两个资源ConfigMapworkflows-docs-config上面列出的 4 个环境变量和 Secretworkflows-docs-secrets当前 data 只有注释示例没有真实键值。Deployment 通过envFrom同时引用这两者所以 Secret 必须先存在。3. deployment.yaml——同一文件里包含 Deployment 和两个 PVCDeployment2 副本RollingUpdatemaxSurge: 1、maxUnavailable: 0以非 root 用户uid/gid 1000运行资源 requests 256Mi/250m、limits 512Mi/500m存活探针/api/stats:8000initialDelaySeconds: 30、periodSeconds: 30、timeoutSeconds: 10、failureThreshold: 3就绪探针/api/stats:8000initialDelaySeconds: 5、periodSeconds: 5、timeoutSeconds: 5、failureThreshold: 3PVCworkflows-docs-database1Gi挂到/app/databasePVCworkflows-docs-logs2Gi挂到/app/logs均为ReadWriteOncestandard。4. service.yaml——包含两个 Serviceworkflows-docs-serviceClusterIP80 → 8000Ingress 后端用的就是它workflows-docs-loadbalancerLoadBalancer80/443 → 8000带 AWS NLB 注解service.beta.kubernetes.io/aws-load-balancer-type: nlb与跨可用区负载均衡。这一条是 AWS 专用配置在非 AWS 环境它不会按预期工作可按需删除该段再 apply。5. ingress.yaml——生产 Ingressworkflows-docs-ingress路由workflows.yourdomain.com的/到workflows-docs-service:80开启ssl-redirect与force-ssl-redirect限流rate-limit-rps: 100proxy-body-size: 10mTLS 证书由 cert-manager 经letsencrypt-prod签发到 Secretworkflows-docs-tls。文件下半部分还有一个开发/预发用的备选 Ingressworkflows-docs-ingress-devworkflows-dev.yourdomain.com它启用 nginx 基础认证注解引用名为basic-auth的 Secret需要先自行创建该 Secret 才能启用。apply 前需要修改的占位值集中在 ingress.yaml把两处yourdomain.com换成你的真实域名workflows-docs-tls无需手工创建前提是第 1 节所述 cert-manager 与 ClusterIssuer 已就绪。路径二用 Helm 安装DEPLOYMENT.md 给出的安装命令是# Install with Helm helm install n8n-workflows-docs ./helm/workflows-docsvalues.yaml 中影响部署行为的关键默认值配置项默认值说明replicaCount2副本数imageghcr.io/sahiixx/n8n-workflows-1taglatest与 k8s 清单一致serviceClusterIP80 → 8000与清单一致ingress启用className: nginxhostworkflows.example.com同样是占位域名需替换resourcesrequests 250m/256Milimits 500m/512Mi与清单一致envENVIRONMENTproduction等 4 项与 ConfigMap 内容一致healthChecksliveness/readiness 均打/api/stats参数与清单一致persistence.database/persistence.logs1Gi / 2GistandardReadWriteOnce与清单一致autoscaling关闭开启时范围 2–10CPU/内存目标 80%默认不启用 HPAnetworkPolicy关闭—podDisruptionBudget启用minAvailable: 1—需要如实说明这个 Chart 的当前边界templates/目录里只有 Deployment 模板外加 helper 模板没有 Service、Ingress、PVC、ServiceAccount 的模板。而渲染出的 Deployment 会引用ServiceAccount由 release 名推导release 为n8n-workflows-docs时即n8n-workflows-docsPVCfullname-database与fullname-logs本例即n8n-workflows-docs-database/n8n-workflows-docs-logs注意与 kubectl 路径创建的workflows-docs-database/workflows-docs-logs不是同一组名字。因此直接执行helm install后得到的是一个 Deployment它引用的 ServiceAccount、PVC 以及对外暴露所需的 Service/Ingress 都不由这个 Chart 创建需要事先在目标命名空间里备好可参考 k8s/ 清单但 PVC 名称需对应上。可以这样理解两条路径的定位要一条命令走完部署链用 kubectl 路径Helm Chart 适合作为二次开发的起点把缺失的资源模板补齐后再发布。部署后如何验证文档中实际给出的判定手段有两类探针即就绪判定。Deployment 的就绪探针每 5 秒请求一次/api/stats连续 3 次失败会摘流failureThreshold: 3存活探针每 30 秒请求一次连续 3 次失败会重启容器。Pod 能否进入 Ready 状态就由这套探针决定参数见 k8s/deployment.yaml 第 50–65 行及 values.yaml 的healthChecks段。手动健康检查。DEPLOYMENT.md 的「Health Checks」一节给出的是# Manual health check curl http://localhost:8000/api/stats该命令按文档原文指向应用进程自身端口 8000在集群内访问时Service 把 80 转发到 8000Ingress 则以你的域名提供 80/443 入口ssl-redirect: true表示应走 HTTPS。日志方面DEPLOYMENT.md 记录容器内日志位于/app/logs/app.log该目录在 k8s 清单中挂载到了workflows-docs-logsPVCPod 重建后日志仍在卷上。限制与需要留意的配置组合2 副本 ReadWriteOnce 数据库卷文档同时配置了replicas: 2和accessModes: ReadWriteOnce的数据库 PVC。是否可行取决于集群存储对多 Pod 挂载的支持情况文档未对此展开如果集群存储策略不允许需要自行调整副本数或accessMode。镜像来源单一只有ghcr.io/sahiixx/n8n-workflows-1:latest一个来源imagePullPolicy: Always意味着每次调度都尝试拉取仓库内没有提供离线或替代镜像说明。Ingress 依赖外部组件nginx ingress controller 与 cert-manager含letsencrypt-prodissuer都由集群侧自行安装DEPLOYMENT.md 的 Kubernetes 小节不包含它们的安装步骤。AWS 专用资源workflows-docs-loadbalancer这个 LoadBalancer Service 的注解只适用于 AWS其他云环境建议不要保留这一段。DEPLOYMENT.md 的其余部分Docker Compose 开发/生产部署、监控 profile、备份与排错与 K8s 路径并行存在可在集群外环境做对照验证K8s 侧如需监控values.yaml 里预留了monitoring.serviceMonitor配置默认关闭但对应模板同样尚未包含在 Chart 中。【免费下载链接】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),仅供参考
返回列表