K3s轻量集群住宅机器部署AI中转服务

如果你手头有几台闲置的家里电脑或迷你主机,想跑一个AI中转服务(比如统一管理多个大模型API的One API),又不想折腾完整的Kubernetes,那K3s就是最适合你的选择。
本文从零开始,一步步带你在住宅机器上搭起K3s集群并部署AI中转服务。

为什么家庭服务器推荐K3s而不是完整Kubernetes

K3s是经过CNCF认证的轻量级Kubernetes发行版,二进制文件不到100MB,内存占用仅为512MB就能跑。
对家庭服务器来说,它把etcd换成了SQLite(也可以换成外部数据库),去掉了许多云原生场景用不到的组件,安装和运维都简单不少。
用它跑AI中转服务,你可以轻松管理多个副本、自动重启、负载均衡,而且迁移或扩容都非常方便。

部署前需要准备哪些软硬件

  • 至少两台x86或ARM架构的Linux机器(推荐Ubuntu 22.04 LTS或Debian 11),一台做主节点(Master),其他做工作节点(Agent)。如果只有一台机器,也可以单节点运行。
  • 每台机器需要静态内网IP,或者通过路由器DHCP分配固定IP。
  • 建议每台机器至少有2GB内存、20GB磁盘空间。
  • 如果你打算从外网访问AI中转服务,需要有一个公网IP(或使用DDNS)和域名,以及开放相应端口。
  • 提前安装好curl、openssl等基础工具。

在Linux上快速搭建K3s主节点和工作节点

在主节点上执行以下命令(要用root或sudo):

curl -sfL https://get.k3s.io | sh -

安装完成后,K3s会自动启动并生成一个token,用来让工作节点加入集群。
查看token:

sudo cat /var/lib/rancher/k3s/server/node-token

记下这个token和主节点的内网IP(比如192.168.1.10)。

然后到每一台工作节点上执行加入命令:

curl -sfL https://get.k3s.io | K3S_URL=https://192.168.1.10:6443 K3S_TOKEN=刚刚记下的token sh -

等待几秒后,在主节点上运行 kubectl get nodes,应该能看到所有节点状态为Ready。

注意:如果工作节点和主节点不在同一子网,需要确保6443端口可达,并且主节点防火墙放行该端口。

使用Helm部署AI中转服务(以One API为例)

K3s默认没有安装Helm,需要手动装一下:

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

接着添加One API的Helm仓库(这里用一个社区维护的chart,你也可以直接使用Docker镜像部署):

helm repo add oneapi https://charts.one-api.com
helm repo update

创建一个命名空间并将部署文件放到 oneapi-values.yaml 中:

replicaCount: 2
service:
  type: NodePort
  port: 3000
persistence:
  enabled: true
  size: 2Gi

执行安装:

helm install ai-proxy oneapi/one-api -n ai-proxy --create-namespace -f oneapi-values.yaml

等待Pod启动:

kubectl get pods -n ai-proxy -w

看到所有Pod都处于Running状态后,可以通过 kubectl get svc -n ai-proxy 获取NodePort暴露的端口(默认为3000,但会被映射到集群节点的某个随机端口)。
你可以用 192.168.1.10:NodePort 访问UI,默认账号 root、密码 123456,首次登录后立即修改密码。

开放外网访问并配置SSL证书

如果你希望从公网访问AI中转服务,建议在K3s集群前面加一个Nginx反向代理或使用K3s自带的Traefik Ingress Controller。
K3s安装时默认启用了Traefik,可以用Ingress来暴露服务。
创建一个 ingress.yaml

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

然后应用它:

kubectl apply -f ingress.yaml

再配上SSL证书,可以用cert-manager自动申请Let's Encrypt证书,或者手动上传证书到K3s的Secret,这里不再展开。

常见问题与避坑

  • 节点加入失败:检查防火墙是否放行了6443端口,以及工作节点是否可以解析主节点主机名。建议直接用IP。
  • Token过期:K3s的node-token不会过期,但如果重新安装了主节点,token会变。
  • Pod卡在Pending:多半是因为资源不足(CPU/内存),或PV没有绑定。One API默认使用PVC,如果K3s没有配置存储类,可以改用emptyDir或hostPath。
  • 外网访问慢:家庭宽带上行带宽有限,建议限制并发连接数或使用CDN中转。
  • 忘记录入token:可以在工作节点上重新执行安装命令时带上正确的token。

检查服务是否正常

在所有节点就绪、Pod运行后,用浏览器打开 http://你的主节点IP:节点端口,应该看到One API的登录页面。
登录后添加一个AI厂商的API Key,然后用 curl 测试一下:

curl http://192.168.1.10:NodePort/v1/models -H "Authorization: Bearer 你的token"

如果能返回模型列表,说明AI中转服务已经成功跑在K3s集群上了。

如果你在部署过程中遇到集群启动失败或服务无法访问的问题,建议先回头检查节点状态和Pod日志(kubectl logs pod名称 -n ai-proxy),大部分问题都出在网络或资源不足上。
按照本文的步骤操作,你的家庭K3s集群就能稳定运行AI中转服务了。

分享到:
上一篇
Traefik反向代理容器多站点统一入口配置教程
下一篇
K8s DRA异构GPU调度多模型推理集群
1
系统公告

机房迁移升级通知

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