
在 Amazon EKS 上部署 ToolJetKubernetes 集群部署、环境变量与升级指南【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet本文是一份在 Amazon EKSElastic Kubernetes Service集群上自托管部署 ToolJet 的完整实战指南。你将掌握创建 EKS 集群、应用 Deployment 与 LoadBalancer Service、为 ToolJet Database 配置 PostgREST、启用 Workflows 定时调度以及将现有实例升级到最新 LTS 版本的全流程并理解每个关键环境变量的作用与底层实现。文章内容以仓库文档 kubernetes-eks.md 为主体并结合仓库中的 Kubernetes 部署模板 与 环境变量参考 进行源码级佐证。部署前的准备基础设施与数据库要求在动手执行kubectl命令之前需要先确认你的 EKS 集群满足 ToolJet 的最低运行要求。集群节点规格根据 系统要求文档容器编排部署要求集群中至少有一个节点满足Ubuntu 22.04 或更高版本的 Linux 系统、x8664 位架构不支持 arm64、至少 2GB RAM、1 vCPU、8GiB 以上存储。实际资源可按业务负载与预期并发量调整。PostgreSQL 数据库ToolJet 使用 PostgreSQL 作为主数据库官方推荐使用 AWS RDS PostgreSQL并建议数据库版本为13.x。你需要在部署前手动准备好数据库实例而不是由集群提供。Redis可选但推荐若要启用多人协作编辑与后台任务需要额外配置 Redis建议 6.x 版本。第一步创建并连接 EKS 集群ToolJet 的部署本身不负责创建集群。请先在 AWS 控制台或通过eksctl/aws cli创建一个 EKS 集群并配置好本地kubectl的kubeconfig上下文确保后续所有命令都作用于该集群。创建完成后通过kubectl get nodes验证节点处于Ready状态即可进入下一步。第二步创建 Kubernetes DeploymentToolJet 官方提供了开箱即用的 Deployment 模板直接应用即可拉起应用kubectl apply -f https://tooljet-deployments.s3.us-west-1.amazonaws.com/pre-release/kubernetes/deployment.yaml注意该文件只是一个模板并不一定适合生产环境。你应该先下载文件再根据实际需求修改副本数replica count与环境变量。仓库中对应的模板位于 deploy/kubernetes/deployment.yaml其核心结构如下镜像与启动命令使用tooljet/tooljet-ce:latest镜像容器启动参数为[npm, run, start:prod]即直接以生产模式启动 ToolJet 服务端。更新策略采用RollingUpdate滚动更新maxUnavailable: 1、maxSurge: 1保证升级过程中服务不中断。资源配额limits为 2000Mi 内存 / 2000m CPUrequests为 1000Mi 内存 / 1000m CPU。就绪探针通过readinessProbe定时请求GET /api/health端口 3000判断实例是否就绪initialDelaySeconds: 10、periodSeconds: 5、failureThreshold: 6。必填环境变量Deployment 的核心配置模板中几乎所有敏感配置都通过 Kubernetes SecretsecretKeyRef指向名为server的 Secret注入。官方文档明确要求ToolJet 的正常启动依赖以下 10 个环境变量环境变量用途说明TOOLJET_DBToolJet Database 的数据库名模板默认值为tooljet_dbTOOLJET_DB_HOSTToolJet Database 所在 PostgreSQL 的主机地址TOOLJET_DB_USERToolJet Database 的数据库用户名TOOLJET_DB_PASSToolJet Database 的数据库密码PG_HOST主数据库PostgreSQL的主机地址PG_DB主数据库名称PG_USER主数据库用户名PG_PASS主数据库密码SECRET_KEY_BASE用于加密会话 Cookie 的安全密钥64 字节十六进制字符串LOCKBOX_KEYLockbox 主密钥用于加密数据源凭据32 字节十六进制字符串此外模板中还包含两个非敏感配置TOOLJET_HOSTToolJet 客户端的公网地址如https://app.tooljet.comDEPLOYMENT_PLATFORM模板中固定为k8s用于标记部署平台对比 AKS 模板 为k8s:aks、GKE 模板 为k8s:gke。强烈建议将敏感信息放入 Kubernetes Secret 而非明文写在 Deployment 中。例如使用如下方式创建 Secret再在 Deployment 中通过secretKeyRef引用kubectl create secret generic server \ --from-literalpg_hostYOUR_PG_HOST \ --from-literalpg_userYOUR_PG_USER \ --from-literalpg_passwordYOUR_PG_PASSWORD \ --from-literalpg_dbYOUR_PG_DB \ --from-literallockbox_keyYOUR_LOCKBOX_KEY \ --from-literalsecret_key_baseYOUR_SECRET_KEY_BASE \ --from-literaltj_hosthttps://your-domain.com生成安全密钥SECRET_KEY_BASE与LOCKBOX_MASTER_KEY均可使用openssl命令生成详见 env-vars.md# 用于 LOCKBOX_KEY / LOCKBOX_MASTER_KEY openssl rand -hex 32 # 用于 SECRET_KEY_BASE openssl rand -hex 64说明文档正文中的LOCKBOX_KEY与 环境变量参考 中定义的LOCKBOX_MASTER_KEY指同一个密钥模板 Secret 中的lockbox_key对应LOCKBOX_MASTER_KEY变量。环境变量的完整参考除上述必填项外ToolJet 还支持大量可选环境变量按需在 Deployment 中追加即可常见的有数据库行为PG_PORT数据库端口、DATABASE_URL以连接串形式提供数据库地址如postgres://user:passhost:port/db?sslmodedisable、PG_DB_OWNERfalse禁止服务端自动建库与创建扩展需手动执行。会话与安全USER_SESSION_EXPIRY会话过期时间单位分钟默认 10 天、DISABLE_SIGNUPStrue仅允许邀请注册、DISABLE_PASSWORD_RETRY_LIMIT/PASSWORD_RETRY_LIMIT登录密码重试限制默认 5 次。ToolJet DatabaseTOOLJET_DB_PORT、TOOLJET_DB_URLToolJet Database 连接串、PGRST_JWT_SECRET、PGRST_HOST、PGRST_DB_PRE_CONFIG。功能开关CHECK_FOR_UPDATES0关闭每 24 小时一次的产品更新检查、DISABLE_TOOLJET_TELEMETRYtrue关闭遥测、COMMENT_FEATURE_ENABLE、ENABLE_MARKETPLACE_DEV_MODE、ENABLE_PRIVATE_APP_EMBED。集成与观测SLACK_CLIENT_ID/SLACK_CLIENT_SECRET、GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET、GOOGLE_MAPS_API_KEY、APM_VENDOR/SENTRY_DNS、NODE_EXTRA_CA_CERTS自定义 CA 证书路径。上述变量在服务端配置模块 server/src/modules/configs/service.ts 中统一解析注册部署时以该文件所列变量名为准。第三步通过 Service 暴露 ToolJet 服务Deployment 创建完成后需要通过 Kubernetes Service 将应用对外发布。ToolJet 提供了一个基于AWS Load Balancer的 Service 模板kubectl apply -f https://tooljet-deployments.s3.us-west-1.amazonaws.com/pre-release/kubernetes/service.yaml仓库中的 service.yaml 展示了核心配置类型为LoadBalancer由 AWS 自动创建负载均衡器通过service.beta.kubernetes.io/aws-load-balancer-ssl-cert注解指定ACM 证书的 ARN需替换certificate-arn并设置后端协议为http监听443端口HTTPS转发到容器的3000端口selector 匹配component: tooljet。若希望进一步使用 AWS ALB Ingress 做基于域名的路由与路径转发可参考 AWS 官方文档「Application load balancing on Amazon EKS」示例进行扩展。第四步启用 ToolJet DatabasePostgRESTToolJet Database 是内置的托管型数据库功能。要使用它必须先部署一个PostgREST服务器负责对 ToolJet Database 进行查询。1. 部署 PostgRESTkubectl apply -f https://raw.githubusercontent.com/ToolJet/ToolJet/main/deploy/kubernetes/postgrest.yaml仓库中的 postgrest.yaml 包含两个资源Deploymenttooljet-postgrest镜像为postgrest/postgrest:v12.0.2监听3000端口通过 Secret 注入PGRST_DB_URI与PGRST_JWT_SECRETServicetooljet-postgrest-service类型为NodePort将80端口转发到容器的3000端口。2. 更新 ToolJet Deployment 的环境变量PostgREST 就绪后需要在 ToolJet 的 Deployment 中补齐以下变量并重新应用变量说明PGRST_JWT_SECRET用于 PostgREST 认证的 JWT 密钥可用openssl rand -hex 32生成PGRST_HOSTPostgREST 服务地址即上面的tooljet-postgrest-servicePGRST_JWT_SECRET若未设置PostgREST 将拒绝所有认证请求PGRST_DB_URI需遵循postgrest://[USERNAME]:[PASSWORD][HOST]:[PORT]/[DATABASE]格式。数据库名由TOOLJET_DB指定服务端在启动过程中会自动创建该数据库也可手动执行npm run db:create触发。第五步启用 Workflows可选ToolJet Workflows 允许用户通过可视化、基于节点的界面设计和执行复杂的数据自动化流程将能力从内部工具构建扩展到业务流程自动化。若需要使用 Workflows请创建对应的 worker 部署kubectl apply -f https://tooljet-deployments.s3.us-west-1.amazonaws.com/pre-release/kubernetes/workflow-deployment.yaml注意worker 部署必须与 ToolJet 应用部署使用相同的镜像以保证版本兼容以下变量需要追加到 ToolJet 的 Deployment 环境变量中ENABLE_WORKFLOW_SCHEDULINGtrue TOOLJET_WORKFLOWS_TEMPORAL_NAMESPACEdefault TEMPORAL_SERVER_ADDRESSTemporal_Server_Address其中ENABLE_WORKFLOW_SCHEDULING会在服务端配置模块 server/src/modules/configs/service.ts 中被读取用于控制工作流调度能力的开关TOOLJET_WORKFLOWS_TEMPORAL_NAMESPACE与TEMPORAL_SERVER_ADDRESS分别指定 Workflows 所依赖的 Temporal 命名空间与服务地址。升级到最新 LTS 版本ToolJet 大约每 35 个月发布一个新 LTS 版本每个 LTS 版本的生命周期至少为 18 个月。最新 LTS 版本及其标签可在 ToolJet 的 Docker Hub 镜像仓库中查看标签遵循LTS-前缀加版本号的命名约定例如tooljet/tooljet:ee-lts-latest。如果是全新安装请直接使用最新版本无需阅读本节。升级前置条件完整备份数据库升级前必须对数据库做全面备份防止升级过程中的数据丢失。版本路径要求如果当前版本早于v2.23.0-ee2.10.2必须先升级到该版本再继续升级到最新的 LTS 版本。确认满足以上条件后将 Deployment 中的镜像标签更新为目标 LTS 标签并通过滚动更新模板已配置RollingUpdate策略完成平滑升级。升级完成后建议再次验证/api/health探针状态与核心功能登录、数据源连接、应用发布是否正常。常见问题与排查建议就绪探针失败确认 Deployment 已正确注入PG_*系列变量且数据库可达可通过kubectl logs pod-name查看启动日志定位连接错误。LoadBalancer 无法访问检查 Service 注解中的 ACM 证书 ARN 是否有效、证书与负载均衡器是否在同一区域以及安全组是否放行 443 端口。ToolJet Database 不可用确认 PostgREST Deployment 与 Service 已就绪且PGRST_HOST、PGRST_JWT_SECRET与 ToolJet Deployment 中的值保持一致。Workflows 无法调度确认 worker 与应用镜像一致且 Temporal 地址可从集群内访问。总结在 EKS 上部署 ToolJet 的整体链路为准备 RDS PostgreSQL → 创建 EKS 集群 → 应用 Deployment注入 10 个必填环境变量与 Secret→ 应用 LoadBalancer Service 暴露 HTTPS 入口 →可选部署 PostgREST 启用 ToolJet Database →可选部署 worker 并配置 Temporal 启用 Workflows → 按 LTS 节奏规划升级。所有模板均可在仓库 deploy/kubernetes 目录下找到对应 YAML含 AKS、GKE 等云厂商变体环境变量完整语义可随时查阅 env-vars.md。【免费下载链接】ToolJetOpen-source foundation of ToolJet AI - the enterprise app generation platform for internal tools, dashboards, business applications, workflows and AI agents. Build visually, from a prompt, or from Claude Code, Codex and Cursor over MCP 项目地址: https://gitcode.com/GitHub_Trending/to/ToolJet创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考