家用住宅主机Linux K3s轻量集群部署AI服务

为什么用家用主机跑K3s加AI服务

很多人在考虑AI服务时第一时间想到云服务器,但云上GPU实例价格不菲。
如果你手头有一台闲置的普通家用电脑,装上Linux系统(推荐Ubuntu 22.04),再搭建轻量级Kubernetes——K3s,就能低成本运行推理类AI服务。
K3s相比完整K8s,内存占用低、安装简单,非常适合单机环境。
本文面向零基础用户,完成从系统准备到部署AI模型的全流程,并附高频问题解答和避坑点。

第一步:环境准备——硬件、系统与依赖

硬件最低要求

  • CPU:至少2核,推荐4核以上(若使用纯CPU推理)
  • 内存:至少4GB,推荐8GB或更多(AI模型加载需要)
  • 磁盘:至少20GB空闲空间,用于Docker镜像和模型文件
  • 网络:具备外网访问(安装过程中需拉取K3s和容器镜像)

系统准备

  1. 安装Ubuntu 22.04 LTS(其他Linux发行版步骤类似,注意包管理差异)
  2. 确保curl、wget、git已安装:sudo apt update && sudo apt install -y curl wget git
  3. 关闭防火墙或放行K3s所需端口(6443、10250等),简单起见可在内网环境关闭:sudo ufw disable
  4. 为Docker做铺垫(K3s使用containerd内建,但后期可能仍需docker-cli):sudo apt install -y docker.io(可选)

第二步:安装K3s并初始化集群

K3s官方提供一键安装脚本,非常简洁。
在主节点(也就是你的家用主机)执行:

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

等待执行完毕,检查服务状态:

sudo systemctl status k3s

若显示active (running),说明K3s server已启动。

此时kubectl已自动配置好,用以下命令验证:

sudo kubectl get nodes

应该看到名为“k3s-xx”的节点处于Ready状态。
注意:单节点集群时,默认允许在Master上调度Pod,无需额外配置。

若你有多台闲置主机,可以在worker节点上执行同样的安装命令但加上server地址和token(在master上执行sudo cat /var/lib/rancher/k3s/server/node-token获取)。
本文以单节点为例。

第三步:在K3s上部署轻量AI推理服务(以Ollama为例)

Ollama是一个支持在本地运行多种开源大模型的工具,打包成容器后与K3s完美配合。

创建Ollama的Deployment和服务

编写一个名为ollama.yaml的文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ollama
  labels:
    app: ollama
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ollama
  template:
    metadata:
      labels:
        app: ollama
    spec:
      containers:
      - name: ollama
        image: ollama/ollama:latest
        ports:
        - containerPort: 11434
        volumeMounts:
        - mountPath: /root/.ollama
          name: ollama-data
      volumes:
      - name: ollama-data
        hostPath:
          path: /mnt/ollama-data  # 修改为你的主机目录,需提前创建
          type: DirectoryOrCreate
---
apiVersion: v1
kind: Service
metadata:
  name: ollama
  labels:
    app: ollama
spec:
  selector:
    app: ollama
  ports:
  - port: 11434
    targetPort: 11434
  type: ClusterIP
如果想让外部访问,可将type改为NodePort并指定nodePort。家用环境建议保持ClusterIP,通过端口转发或内网代理访问。

部署:

sudo kubectl apply -f ollama.yaml

等待Pod running:

sudo kubectl get pods

当状态为Running后,测试服务是否正常:

sudo kubectl port-forward pod/ollama-xxx 11434:11434 &
curl http://localhost:11434

返回“Ollama is running”即表示部署成功。

拉取模型并调用

在Pod内部执行:

sudo kubectl exec -it deployment/ollama -- ollama pull llama3.2:1b

(可根据机器配置选择更小的模型如tinyllama)
拉取完成后,通过API调用:

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2:1b",
  "prompt": "你好"
}'

你将看到模型生成的文字回复。

第四步:常见问题与避坑指南

内存不足导致Pod被OOMKill

AI模型推理时内存占用高,若你只部署了一个Ollama,建议至少8GB内存。
临时增加swap可以缓解:sudo fallocate -l 4G /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile
但长期建议升级物理内存。

K3s安装后kubectl权限问题

K3s默认使用非root用户时需加sudo。
如果你不想每次输sudo,可以将kubeconfig复制到用户目录:

mkdir -p $HOME/.kube && sudo cp /etc/rancher/k3s/k3s.yaml $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config

并修改server地址(127.0.0.1保持即可)。

部署AI服务后访问慢

家用主机CPU推理速度远低于GPU,建议选择1B~3B参数量的模型,并且设置并发数为1。
也可以考虑在BIOS中开启虚拟化,然后使用NVIDIA GPU?
但家用主板多数不支持GPU直通或没有独显,一般以CPU推理为主。

第五步:效果验证与日常维护

验证集群健康

sudo kubectl cluster-info
sudo kubectl top nodes

(需先安装metrics-server,可参考K3s官方插件)

验证AI服务可用性

使用Python或curl循环测试API响应时间,确保服务稳定。

日志查看

sudo kubectl logs -f deployment/ollama

如果遇到模型加载失败,检查拉取模型的磁盘空间及网络。

高频问题解答

Q:单节点K3s能支持生产环境吗?
A:本文适用家庭实验和轻量个人服务,不建议用于高可用生产。

Q:可以部署vLLM或Text Generation Inference吗?
A:可以,但vLLM对GPU依赖较强,纯CPU建议Ollama或llama.cpp。部署方法类似,只需修改镜像和端口。

Q:K3s与其他K8s兼容吗?
A:K3s是CNCF认证的,使用标准Kubernetes API,多数应用可以直接部署。

如果你遇到其他报错,重点检查网络连接、磁盘空间和端口冲突。
建议先按本文步骤完整执行,再根据实际硬件调整资源配置。

分享到:
上一篇
外贸站宝塔面板网站单篇收录其余页面整改实操指南
下一篇
跨境独立站宝塔面板FRP内网穿透访问站点后台
1
系统公告

机房迁移升级通知

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