news 2026/9/13 5:17:23

Activepieces 如何用 Helm Chart 在 Kubernetes 上部署并接入外部 PostgreSQL 与 Redis?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Activepieces 如何用 Helm Chart 在 Kubernetes 上部署并接入外部 PostgreSQL 与 Redis?

Activepieces 如何用 Helm Chart 在 Kubernetes 上部署并接入外部 PostgreSQL 与 Redis?

【免费下载链接】activepiecesAI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents项目地址: https://gitcode.com/GitHub_Trending/ac/activepieces

在把 Activepieces 部署到 Kubernetes 时,官方 Helm chart 默认可以不带任何数据库,也可以启用内置的 Bitnami PostgreSQL / Redis 子 chart;生产场景下更常见的需求是改用你自己已有的外部 PostgreSQL 与 Redis 实例。本文基于仓库内 Helm 安装文档 和 chart 的 values.yaml,给出"部署 chart + 接入外部数据库"这条完整路径,并指出文档示例与 chart 实际模板之间的一处需要留意的差异。

前提条件

docs/install/options/helm.mdx 列出的前提:

  • Kubernetes 集群(v1.19+)
  • 已安装 Helm 3.x
  • kubectl 已配置好对目标集群的访问

chart 位于仓库的 deploy/activepieces-helm,版本信息见 Chart.yaml:chart 版本0.3.0appVersion: "0.71.2"。外部 PostgreSQL 和 Redis 实例需由你自行提供,chart 只负责把连接信息注入到 Activepieces 容器。

接入外部 PostgreSQL 与 Redis

1. 关闭内置的 Bitnami 子 chart

在 values.yaml 中,postgresqlredis两个段落的含义是"是否部署内置 Bitnami 子 chart",默认都是enabled: false。Chart.yaml 中这两个依赖都带condition,只有enabled: true时才会部署对应子 chart:

postgresql: enabled: false # 关闭 Bitnami PostgreSQL 子 chart redis: enabled: false # 关闭 Bitnami Redis 子 chart

如果你的 values 中把这两项保持false(默认值),集群里就不会多出一套数据库。

2. 文档给出的外部库配置写法

docs/install/options/helm.mdx 的 "Using External PostgreSQL and Redis" 一节给出的示例是直接写在 values 里的:

postgresql: enabled: false # Disable Bitnami PostgreSQL subchart host: "your-postgres-host.example.com" port: 5432 useSSL: true # Enable SSL if required auth: database: "activepieces" username: "postgres" password: "your-password" # Or use external secret reference: # externalSecret: # name: "postgresql-credentials" # key: "password"

外部 Redis 写法类似:

redis: enabled: false # Disable Bitnami Redis subchart host: "your-redis-host.example.com" port: 6379 useSSL: false # Enable SSL if required auth: enabled: true password: "your-password" # Or use external secret reference: # externalSecret: # name: "redis-credentials" # key: "password"

文档同时提供了 connection URL 的替代写法:

postgresql: enabled: false url: "postgresql://user:password@host:5432/database?sslmode=require"
redis: enabled: false url: "redis://:password@host:6379/0"

以上代码块中的 host、端口、库名、用户名和密码都是文档示例占位值,替换为你自己的实例信息即可。

3. 需要留意的差异:chart 模板并不引用这些外部值

按文档上述写法配置前,建议先确认 chart 的渲染行为:仓库中 chart 的模板文件(deployment.yaml、secret.yaml 等)没有引用.Values.postgresql/.Values.redishosturlauth等字段——它们只通过condition决定是否部署 Bitnami 子 chart。也就是说,enabled: false生效,但示例里的host/url等值不会被模板消费。

chart 实际把数据库连接注入容器的方式,是 values.yaml 注释中说明的"环境变量 + Kubernetes Secret"路线:

  • activepiecesEnvVariables是一张 "secret 名 → 要注入的环境变量名列表" 的映射,模板会把它渲染成valueFrom.secretKeyRef注入容器(见 deployment.yaml);
  • 外部 PostgreSQL 对应activepieces-db-secrets,默认注入以下变量名:AP_POSTGRES_DATABASEAP_POSTGRES_HOSTAP_POSTGRES_PORTAP_POSTGRES_PASSWORDAP_POSTGRES_USERNAMEAP_POSTGRES_USE_SSLAP_POSTGRES_POOL_SIZEAP_POSTGRES_SSL_CA
  • 外部 Redis 对应activepieces-redis-secrets,默认注入:AP_REDIS_TYPEAP_REDIS_HOSTAP_REDIS_PORTAP_REDIS_PASSWORDAP_REDIS_USE_SSLAP_REDIS_USER

values.yaml 的注释原文要求:"Each var name must exist as a key in the corresponding secret."即你需要在集群中自己创建名为activepieces-db-secretsactivepieces-redis-secrets的 Secret,且 Secret 的 key 必须与上表变量名一致,例如 key 为AP_POSTGRES_HOST的值指向你的外部 PostgreSQL 地址。values.yaml 注释中另提到可以用deploy/scripts/apply-secrets.sh --secret-name <name>来填充这些 Secret,但该脚本在当前仓库中不存在,请以手动创建 Secret 的方式理解这一步。

因此,接入外部 PostgreSQL 与 Redis 的可执行主路径是:

  1. 保持postgresql.enabled: falseredis.enabled: false
  2. 创建 Secretactivepieces-db-secrets,key 覆盖你实际需要的AP_POSTGRES_*(至少AP_POSTGRES_HOSTAP_POSTGRES_PORTAP_POSTGRES_DATABASEAP_POSTGRES_USERNAMEAP_POSTGRES_PASSWORD);
  3. 创建 Secretactivepieces-redis-secrets,key 覆盖你实际需要的AP_REDIS_*(至少AP_REDIS_HOSTAP_REDIS_PORTAP_REDIS_PASSWORD);
  4. 确认activepiecesEnvVariables中这两个映射保留默认列表,不做删改。

文档示例(第 2 步的host/url/externalSecret写法)与本节机制属于同一文档集内给出的两种表述,按"文档示例与仓库模板现状"对待:先按主路径验证,再判断你所使用的 chart 版本是否支持示例写法。

编写 my-values.yaml

文档 Quick Start 第 3 步:创建你自己的my-values.yaml,可以以仓库里的 values.yaml 作为参考。chart 对必需值有合理默认值、可选项留空,但生产环境应自定义核心值。

如果你后续要激活 license key,文档要求写入:

activepiecesConfig: AP_EDITION: "ee" AP_EXECUTION_MODE: "SANDBOX_CODE_ONLY"

文档对此给出明确警告:activepiecesConfig把明文值直接写进 pod,而activepiecesEnvVariables渲染在它之后、从你创建的 Secret 取值,同名变量以 Secret 为准。chart 默认把AP_EDITIONAP_EXECUTION_MODE列在activepieces-config-secrets的注入名单下,所以这两个变量只能在一处设置:要么从activepiecesConfig移除并改放进那个 Secret,要么反之,不要两边都写。另外AP_EDITION=ee搭配默认执行模式会在启动时被拒绝,应用无法启动——这就是文档示例把两者成对写出的原因。

安装

按文档 Quick Start,进入 chart 所在目录后执行:

# 更新 chart 依赖(Bitnami 子 chart 与 secret generator 的 Chart.lock 依赖) helm dependency update # 安装 helm install activepieces deploy/activepieces-helm -f my-values.yaml

安装成功后,升级与卸载也有对应命令:

# 升级 helm upgrade activepieces deploy/activepieces-helm -f my-values.yaml kubectl rollout status deployment/activepieces # 卸载 helm uninstall activepieces # 清理持久卷(可选) kubectl delete pvc -l app.kubernetes.io/instance=activepieces

验证部署

文档给出的验证命令:

# 检查 deployment 状态 kubectl get pods kubectl get services

辅助命令(来自文档 Troubleshooting 一节):

# 查看日志 kubectl logs deployment/activepieces -f # 本地端口转发测试 kubectl port-forward svc/activepieces 4200:80 --namespace default # 查看全部资源 kubectl get all --namespace default

Pod 的探针配置在 values.yaml 中:liveness 探测/api/v1/health,readiness 探测/v1/health,Pod Ready 与否可以结合kubectl get pods的状态直接判断。

常见问题与边界

文档 Troubleshooting 列出的排查项:

  1. Pod won't start:用kubectl logs deployment/activepieces查日志;
  2. Database connection:核对 PostgreSQL 凭证与连通性——对应本文场景,先确认activepieces-db-secrets中各AP_POSTGRES_*key 的取值与外部实例一致、网络可达;
  3. Frontend URL:确保frontendUrl可被外部访问;
  4. Webhooks not working:检查 ingress 配置与 DNS 解析。

文档 Production Checklist 中与本场景直接相关的两项:frontendUrl设置成实际域名、PostgreSQL 与 Redis 使用强密码(或使用自动生成)。

最后重申本文开头的差异点:外部库连接信息以"Secret key 与环境变量名一一对应"这一机制为准;如果kubectl logs显示容器未收到预期的AP_POSTGRES_*变量,优先检查对应 Secret 的 key 是否拼写正确、是否恰好与activepiecesEnvVariables列表中的名字一致。

【免费下载链接】activepiecesAI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents项目地址: https://gitcode.com/GitHub_Trending/ac/activepieces

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 5:16:10

基于SSM的MOOC平台项目解析:数据库设计与权限控制

简介&#xff1a;一套基于SSM的MOOC在线教学平台毕设项目&#xff0c;面向计算机相关专业毕业设计学生及需要Java Web项目实战的开发者。项目采用Spring、SpringMVC、MyBatis三大框架&#xff0c;结合MySQL数据库&#xff0c;完整实现学生、教师、系统管理员三种角色&#xff0…

作者头像 李华
网站建设 2026/9/13 5:15:40

SSM框架MOOC教学平台实战:数据库设计、查询链路与部署解析

简介&#xff1a;这是一份基于SSM框架的MOOC在线教学平台毕设项目&#xff0c;技术栈采用Spring、SpringMVC、MyBatis整合架构&#xff0c;搭配MySQL数据库&#xff0c;运行环境为JDK、Eclipse与Tomcat&#xff0c;面向计算机相关专业毕业生及需要项目实战的Java学习者&#xf…

作者头像 李华
网站建设 2026/9/13 5:15:37

基于SSM+Vue的高校就业管理系统设计与实现

1. 项目概述高校就业管理系统是当前教育信息化建设中的重要组成部分&#xff0c;它直接关系到毕业生就业数据的精准统计、就业服务的便捷提供以及就业质量的科学评估。基于SSM&#xff08;SpringSpringMVCMyBatis&#xff09;和Vue.js技术栈开发的这套系统&#xff0c;通过前后…

作者头像 李华
网站建设 2026/9/13 5:15:29

GPT6不存在?揭穿AI模型虚假宣传的真相

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/13 5:14:25

SAP ABAP批次特性值读写:CL20N与BAPI_OBJCL最佳实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华