K8s部署多模型AI中转服务教程:零基础搭建统一API网关

K8s部署多模型AI中转服务完整教程:零基础搭建统一API网关

如果你手上有多个AI模型(比如OpenAI、Claude、Gemini)的API Key,每次切换都要改代码很麻烦。
本文介绍如何在Kubernetes集群里部署一个多模型AI中转服务,把所有模型统一成一个API入口,方便管理和调用。
本文适合有K8s基础但没接触过中转服务的同学,操作步骤全部基于命令行和YAML,跟着做就能跑起来。

准备环境:K8s集群与必装工具

开始之前确认以下条件已满足:

  • 一个可用的Kubernetes集群(版本1.22+),可以是云服务商托管集群或本地Minikube。
  • 集群中已安装kubectl命令行工具,并能连接集群。
  • 推荐安装Helm(版本3+),后面用来快速部署中转服务。
  • 确保集群有足够的计算资源(至少2核4GB内存,用于运行Pod)。

另外准备好一个域名(可选),或直接使用NodePort/负载均衡IP访问。

核心部署:使用Helm安装开源AI中转服务(以one-api为例)

我们选择成熟的开源项目one-api作为中转服务,它支持OpenAI、Anthropic、Google等多个模型,并提供Web界面管理Key和路由。

第一步:添加Helm仓库

helm repo add one-api https://justwink.github.io/one-api-chart
helm repo update

第二步:创建命名空间

kubectl create namespace ai-transit

第三步:使用Helm安装

helm install one-api one-api/one-api -n ai-transit \
  --set service.type=NodePort \
  --set persistence.enabled=true
参数说明:service.type=NodePort让服务暴露在集群任意节点的随机端口,方便测试;persistence.enabled=true持久化配置数据(包括添加的模型和Key),避免Pod重启丢失。

安装完成后检查Pod是否运行:

kubectl get pod -n ai-transit

看到STATUSRunning即可。

配置多模型接入:添加渠道与令牌

第一步:访问Web管理界面

获取服务端口:

kubectl get svc -n ai-transit | grep one-api

如果输出示例:one-api NodePort 10.96.0.1 3000:32456/TCP,则通过任意节点IP:32456打开浏览器。
登录默认账号root密码123456(首次登录后请立即修改)。

第二步:添加模型渠道

进入“渠道”页面,点击“添加渠道”,分别配置:

  • OpenAI渠道:类型选OpenAI,填入你的API Key,地址默认https://api.openai.com
  • Claude渠道:类型选Anthropic,填入API Key,地址https://api.anthropic.com
  • Google Gemini渠道:类型选Google,填入API Key和项目ID。

其他模型同理,添加后保存。

第三步:创建访问令牌

进入“令牌”页面,点击“添加令牌”,选择你刚才添加的渠道,设置过期时间。
生成一个令牌,这个就是你统一调用的API Key。

避坑指南:常见问题与资源限制

问题1:Pod无法启动,提示OOMKilled

默认内存限制较小,建议在安装时调整资源:

helm upgrade one-api one-api/one-api -n ai-transit \
  --set resources.requests.memory=256Mi \
  --set resources.limits.memory=512Mi

问题2:添加渠道后测试失败

  • 检查网络:确保集群可以访问外网(如果依赖公网模型API)。
  • 检查API Key是否填写正确,注意格式(比如OpenAI Key以sk-开头)。
  • 如果使用私有部署的大模型(如本地Llama),需填写正确的内网地址。

问题3:服务被外部访问超时

检查NodePort的安全组是否开放该端口;
生产环境建议使用Ingress暴露,配置如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: one-api-ingress
  namespace: ai-transit
spec:
  rules:
  - host: api.yourdomain.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: one-api
            port:
              number: 3000

效果验证:用curl测试统一API

假设你获得的统一访问令牌是sk-your-token,服务地址为http://节点IP:32456,使用curl请求GPT模型:

curl http://节点IP:32456/v1/chat/completions \
  -H "Authorization: Bearer sk-your-token" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-3.5-turbo", "messages": [{"role": "user", "content": "Hello"}]}'

返回JSON中的choices即代表成功。
同理,将model改为claude-2gemini-pro即可调用对应模型。

高频问题FAQ

Q:如何添加自定义模型(如本地微调模型)?
A:在渠道中添加“自定义”类型,填写模型名和API地址即可。

Q:中转服务能否做负载均衡?
A:one-api支持渠道组和权重轮询,可在渠道内设置权重实现多Key轮询。

Q:迁移到生产环境需要注意什么?
A:务必设置强密码、启用HTTPS、配置Ingress并绑定域名,同时定期备份数据库(one-api默认使用SQLite,持久化Pvc丢失后需恢复)。

如果你按照本文完成了K8s部署多模型AI中转服务,后续可以根据实际流量调整副本数、启用监控。
遇到其他报错时,优先查看Pod日志(kubectl logs -n ai-transit ),或去one-api的GitHub Issues搜索。

分享到:
上一篇
K3s轻量集群住宅机器搭建:用旧电脑在家搭建K3s轻量集群
下一篇
K8s资源限制防止内存溢出:从配置到验证完整指南
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意