首页 / 资讯中心 / 文章详情

GoModel 生产部署指南:Docker Compose与Helm Chart的完整清单

GoModel 生产部署指南:Docker Compose与Helm Chart的完整清单 ★ FEATURED ARTICLE
【免费下载链接】GoModelAI gateway / AI control plane / AI proxy written in Go. Unified OpenAI-compatible and Anthropic-compatible API for OpenAI, Anthropic, Gemini, Groq, xAI, Ollama, vLLM and more. A LiteLLM alternative with observability, guardrails, streaming, cost tracking, intelligent routing, sticky sessions, failover, real-time logs and usage tracking. Prod ready.项目地址https://gitcode.com/gh_mirrors/go/GoModel点击查看免费下载GoModel 是一款用 Go 编写的开源AI 网关AI Gateway为 OpenAI、Anthropic、Gemini、Groq、Ollama、vLLM 等数十个 LLM 供应商提供统一的 OpenAI 兼容和 Anthropic 兼容 API。本文面向新手给出 GoModel 生产部署的完整清单从 Docker Compose 一键拉起到 Helm Chart 部署到 Kubernetes并覆盖存储选型、密钥安全、离线安装与多副本等高阶决策点帮你一次部署到位。一、为什么 GoModel 适合上生产 GoModel 是一个单文件静态 Go 二进制没有任何运行时依赖配合生产级特性资源占用极低指标数值容器镜像大小压缩后14 MB负载下峰值内存60 MB冷启动耗时0.76 s镜像基于distroless/static构建容器内没有 Shell、没有包管理器、没有 libc 补丁面并以非 root 用户UID 65532运行——这在安全审计上几乎是白送的加分项。构建细节可参考 Dockerfile。 官方在生产部署页 docs/guides/production.mdx 中为每个配置项都写明了默认值、何时够用、何时该改建议收藏对照。二、部署前的 3 个关键决策1. 选择存储后端GoModel 通过STORAGE_TYPE持久化审计日志、用量记录、预算、虚拟模型和管理 API 密钥后端STORAGE_TYPE适用场景SQLite默认sqlite单实例 持久化磁盘零配置即可用PostgreSQLpostgresql多副本或已有 Postgres。最常见的生产选择MongoDBmongodb已有 MongoDB 运维能力⚠️两个致命坑SQLite 是每个 Pod 一个库多副本部署会导致用量、预算、密钥静默分叉必须换 Postgres/MongoDBDocker 镜像本身不声明数据卷不挂载/app/data的话容器一重建所有审计日志和密钥记录全部丢失。官方 docker-compose.yaml 已用gomodel_data卷解决了这一点自定义部署时务必手动挂载。2. 配置主密钥GOMODEL_MASTER_KEY如果GOMODEL_MASTER_KEY为空且没有管理 API 密钥所有请求将免认证通过且/admin/*也会被加入跳过认证列表——公网暴露等于把整个管理 API 送给任何人。生产环境必须设置强随机值。3. 前置一层反向代理终结 TLSGoModel 只监听 HTTP不做 TLS 终结。任何非本机部署都应在前面加 Nginx / 云 LB / Ingress否则客户端 API 密钥和主密钥都会明文过网。三、Docker Compose 部署从克隆到验证第 1 步获取代码git clone https://gitcode.com/gh_mirrors/go/GoModel cd GoModel第 2 步准备环境变量创建.env文件至少包含上游供应商密钥和主密钥完整变量清单见 .env.templateGOMODEL_MASTER_KEY强随机值 OPENAI_API_KEYsk-... ANTHROPIC_API_KEYsk-ant-... STORAGE_TYPEpostgresql第 3 步先起基础设施再起应用仓库的 docker-compose.yaml 把服务分成两组用 profile 隔离# 基础设施redis postgres mongodb adminer docker compose up -d # 应用 Prometheus 监控 docker compose --profile app up -d服务作用gomodelAI 网关本体端口 8080依赖三个数据库健康检查通过后才启动redis模型目录快照与响应缓存可选但推荐多副本共享postgres审计日志/用量等持久化存储mongodb备选存储后端二选一adminerWeb 数据库管理界面8081 端口prometheus抓取/metrics抓取配置见 prometheus.yml第 4 步验证部署# 存活探针 curl http://localhost:8080/health # 就绪探针存储不可达时返回 503 curl http://localhost:8080/health/ready # 带主密钥查询模型列表 curl -H Authorization: Bearer GOMODEL_MASTER_KEY \ http://localhost:8080/v1/models打开http://localhost:8080/admin/dashboard进入管理面板。审计日志默认保留 90 天可按请求 ID、模型、状态码、user path 多维检索四、生产环境必改配置清单 这些变量决定了网关跑得多稳、数据留多久、暴露多少面逐项过一遍安全加固配置建议说明GOMODEL_MASTER_KEY✅ 必须设置不设则全开放见上文GOMODEL_ENCRYPTION_KEY面板存密钥时设置仪表盘保存的供应商凭据默认明文落库设此密钥后静态加密ADMIN_ENDPOINTS_ENABLED需要时再开默认开启可在网络层限制/admin/*供应商密钥来源环境变量注入从密钥管理器下发避免写入数据库日志与数据保留配置默认值生产建议LOGGING_LOG_BODIEStrue受监管场景建议设false——默认会完整落库提示词和响应体每请求最多约 2 MB是数据库膨胀的最大来源LOGGING_RETENTION_DAYS30按合规要求设定USAGE_RETENTION_DAYS90启用预算时收紧预算检查每次请求都查用量表POSTGRES_MAX_CONNS10高并发 预算/限流场景先调大 注意用量/审计写入缓冲区写满时会静默丢弃不阻塞请求日志里会出现usage log buffer full警告——把它加进告警否则等于丢失成本数据。完全离线气隙部署GoModel 默认只有两个非供应商外呼版本检查与模型目录下载。一个开关全部关闭GOMODEL_OFFLINEtrue⚠️ 离线模式下模型没有定价元数据成本跟踪和预算将失效。解决方案是把模型目录文件拷入内网并指向本地路径MODEL_LIST_URL/etc/gomodel/models.json文件会在每次缓存刷新时重读替换磁盘文件即可更新定价无需重启。多副本部署须知状态是否跨副本一致后果预算、用量、审计日志✅ 数据库持久化正确聚合限流计数器❌ 内存态实际限流 ≈ N 倍配置值规则要按单副本设计熔断器❌ 内存态每个副本独立感知故障会话亲和、MCP 会话❌ 内存态需要负载均衡层做 sticky session五、Helm Chart 部署到 Kubernetes ☸️仓库自带生产级 Helm Charthelm/README 见 helm/README.md已内置非 root 运行、只读根文件系统、readiness 指向/health/ready、SQLite 数据放 PVC、拒绝多副本 SQLite 的非法组合。一键安装helm install gomodel ./helm -n gomodel --create-namespace \ --set secretEnv.GOMODEL_MASTER_KEYchange-me \ --set secretEnv.OPENAI_API_KEYsk-...环境变量怎么传GoModel 完全通过环境变量配置Chart 提供两个入口Values 键落点用途envConfigMap普通配置LOG_LEVEL、REDIS_URL、BASE_PATH等secretEnvSecretGOMODEL_MASTER_KEY、各供应商 API Key、数据库 URL不想把密钥写进 Helm values用extraEnvFrom引用自建 SecretGitOps / External Secrets 场景extraEnvFrom: - secretRef: name: gomodel-provider-keysconfig.yaml每供应商重试策略、模型白名单等环境变量表达不了的配置走config键挂载到/app/config/config.yaml环境变量始终优先。副本与存储联动replicaCount: 3 storage: type: postgresql url: postgres://gomodel:secretpostgresql:5432/gomodelstorage.type为sqlite时 Chart 会拒绝渲染多副本并自动把更新策略切到RecreateReadWriteOnce 卷不能双写升级期间会短暂停服——可接受的取舍。暴露、可观测与优雅下线Values 键说明ingress.enabled/httpRoute.enabled二选一Ingress 或 Gateway APIenv.BASE_PATH挂路径前缀如/g探针与 metrics 路径自动跟随metrics.enabled默认true/metrics无认证保持在网络边界内metrics.serviceMonitor.enabledPrometheus Operator 用户开启autoscaling.enabledHPA 按 CPU 70% 扩缩需先换数据库存储terminationGracePeriodSeconds默认 45 秒⏱️ 优雅停机细节收到 SIGTERM 后网关先排空在途请求 10 秒再在 30 秒内完成拆机并冲刷缓冲的用量/审计数据——所以terminationGracePeriodSeconds必须大于 30Chart 默认给了 45。安装后验证kubectl -n gomodel port-forward svc/gomodel 8080:8080 curl -H Authorization: Bearer change-me http://127.0.0.1:8080/v1/models部署完成后在面板的 Providers Overview 可实时观察各供应商健康度、错误明细与熔断器状态gomodel_circuit_breaker_state指标建议纳入告警六、上线验收 Checklist ✅部署完成后逐项打勾再放流量GOMODEL_MASTER_KEY已设为强随机值/v1/models带 Bearer 可访问、不带返回 401/health与/health/ready均返回 200TLS 由前置代理终结网关本身不裸露公网 HTTP/admin/*、仪表盘、/metrics已在网络边界限制访问/app/dataSQLite 场景已挂持久卷供应商密钥经密钥管理器以环境变量注入未存数据库LOGGING_LOG_BODIES与保留天数已按合规要求显式设置已启用 metrics并告警gomodel_circuit_breaker_state与usage log buffer full气隙环境GOMODEL_OFFLINEtrue 本地模型目录文件多副本预算/限流以config.yaml代码化下发限流规则按单副本设计七、参考资料 官方生产部署最佳实践docs/guides/production.mdxHelm Chart 说明与 Values 全表helm/README.md、helm/values.yamlDocker Compose 编排文件docker-compose.yaml完整环境变量清单.env.templatePrometheus 抓取配置prometheus.yml多副本行为与停机细节docs/guides/production.mdx照着这份清单走10 分钟内你能用 Docker Compose 拉起一个带监控的生产级 AI 网关切到 Helm Chart 时存储、安全上下文、探针这些最容易踩坑的地方 Chart 已经替你排掉了。赞分享【免费下载链接】GoModelAI gateway / AI control plane / AI proxy written in Go. Unified OpenAI-compatible and Anthropic-compatible API for OpenAI, Anthropic, Gemini, Groq, xAI, Ollama, vLLM and more. A LiteLLM alternative with observability, guardrails, streaming, cost tracking, intelligent routing, sticky sessions, failover, real-time logs and usage tracking. Prod ready.项目地址https://gitcode.com/gh_mirrors/go/GoModel点击查看免费下载相关推荐nao生产级部署详解Docker ComposePostgreSQL与Kubernetes Helm Chart双方案nao生产级部署详解Docker ComposePostgreSQL与Kubernetes Helm Chart双方案 nao 是一个开源分析智能体anaPgCat生产环境部署Docker、Kubernetes和Helm Chart完整方案PgCat生产环境部署Docker、Kubernetes和Helm Chart完整方案 PgCat是一款功能强大的PostgreSQL连接池工具支持分片、负AutoMQ容器化部署终极指南Docker Compose与Helm Chart完整教程AutoMQ容器化部署终极指南Docker Compose与Helm Chart完整教程 AutoMQ作为云原生Kafka分支通过将存储分离到S3和EBS消息队列后端云原生存储创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站