2026年2022-05-06 k8s集群扩容缩容_k8s worker缩容

2022-05-06 k8s集群扩容缩容_k8s worker缩容你是不是也遇到过这样的问题 想用 Qwen3 32B 这种大模型做在线聊天服务 但单机部署扛不住突发流量 手动启停模型实例太麻烦 高峰期卡顿 低峰期资源闲置 网关和模型服务耦合太紧 改个配置就要重启整个链路 Clawdbot Web 网关就是为解决这些问题而生的 它不直接运行模型 而是作为智能流量调度中枢 把用户请求动态分发到后端 Qwen3 32B 服务集群

大家好,我是讯享网,很高兴认识大家。这里提供最前沿的Ai技术和互联网信息。



你是不是也遇到过这样的问题:

  • 想用Qwen3-32B这种大模型做在线聊天服务,但单机部署扛不住突发流量?
  • 手动启停模型实例太麻烦,高峰期卡顿、低峰期资源闲置?
  • 网关和模型服务耦合太紧,改个配置就要重启整个链路?

Clawdbot Web网关就是为解决这些问题而生的。它不直接运行模型,而是作为智能流量调度中枢——把用户请求动态分发到后端Qwen3-32B服务集群,并在Kubernetes上实现毫秒级自动扩缩容。整个过程对前端完全透明,你看到的只是一个稳定、响应快、永远在线的Chat平台。

这不是“又一个API代理”,而是一套面向生产环境设计的轻量级AI服务编排方案:Ollama提供模型推理能力,Clawdbot负责协议转换与路由,K8s兜底弹性伸缩。三者各司其职,组合起来却比很多重型框架更可靠、更易维护。

下面我们就从零开始,一步步搭起这套系统。全程不碰复杂YAML、不写Operator、不折腾证书,所有操作都控制在10分钟内可完成验证。

2.1 硬件与系统要求

Clawdbot本身很轻量,真正吃资源的是Qwen3-32B。我们按生产可用的最低标准来配置:

注意:Qwen3-32B在Ollama中默认以qwen3:32b标签加载。如果你用的是自定义量化版本(如qwen3:32b-q4_k_m),请同步修改后续所有镜像和配置中的模型名。

2.2 必备工具清单

确保以下命令已在所有节点可用:

# 验证K8s环境 kubectl version –short helm version –short

安装Ollama(仅需在推理节点安装)

curl -fsSL https://ollama.com/install.sh | sh

安装Clawdbot CLI(可选,用于快速调试)

curl -L https://github.com/clawdbot/cli/releases/download/v0.4.2/clawdbot-linux-amd64 -o /usr/local/bin/clawdbot chmod +x /usr/local/bin/clawdbot

不需要Docker Desktop、不需要Kind、不需要k3s——标准K8s集群即可。如果你还在用Docker Compose跑模型,现在就是切换到K8s的**时机。

3.1 在K8s中部署Ollama服务

Ollama官方不提供K8s原生部署包,但我们用最简方式封装:一个StatefulSet + 一个Service。不依赖Helm Chart,纯YAML开箱即用。

创建 ollama-deployment.yaml

apiVersion: apps/v1 kind: StatefulSet metadata: name: ollama namespace: ai-inference spec: serviceName: ollama replicas: 1 selector:

matchLabels: app: ollama 

template:

metadata: labels: app: ollama spec: containers: - name: ollama image: ollama/ollama:latest ports: - containerPort: 11434 name: http volumeMounts: - name: models mountPath: /root/.ollama/models resources: limits: memory: "64Gi" nvidia.com/gpu: "1" requests: memory: "32Gi" nvidia.com/gpu: "1" volumes: - name: models persistentVolumeClaim: claimName: ollama-models-pvc 

apiVersion: v1 kind: Service metadata: name: ollama namespace: ai-inference spec: selector:

app: ollama 

ports:

  • port: 11434 targetPort: 11434

    执行部署:

    kubectl create namespace ai-inference kubectl apply -f ollama-deployment.yaml

    等待Pod就绪后,手动加载Qwen3-32B(首次加载约需8分钟):

    kubectl exec -it deploy/ollama -n ai-inference – ollama run qwen3:32b

    验证是否成功:kubectl port-forward svc/ollama 11434:11434 -n ai-inference,然后访问 http://localhost:11434/api/tags,应看到qwen3:32b在列表中。

    3.2 配置自动扩缩容策略

    Qwen3-32B是计算密集型任务,不能靠CPU使用率扩缩——等CPU飙高时请求早已超时。我们改用并发请求数作为指标,这是AI服务最真实的负载信号。

    创建 hpa-qwen3.yaml

    apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: ollama-hpa namespace: ai-inference spec: scaleTargetRef: apiVersion: apps/v1 kind: StatefulSet name: ollama minReplicas: 1 maxReplicas: 5 metrics:

  • type: External external: metric:
    name: http_requests_total selector: matchLabels: service: clawdbot-gateway 

    target:

    type: AverageValue averageValue: 10

    注意:这需要提前部署Prometheus + kube-metrics-adapter,并配置好http_requests_total指标采集规则(Clawdbot网关默认暴露该指标)。如果你暂未接入监控体系,可先用简易版——基于内存使用率的保守扩缩:

    kubectl autoscale statefulset ollama 

    –namespace=ai-inference –min=1 –max=3 –cpu-percent=70

    4.1 安装Clawdbot网关服务

    Clawdbot采用Operator模式管理,但安装极其简单:

    # 添加仓库并安装 helm repo add clawdbot https://charts.clawdbot.dev helm repo update helm install clawdbot clawdbot/gateway –namespace ai-gateway –create-namespace –set model.endpoint=http://ollama.ai-inference.svc.cluster.local:11434 –set model.name=qwen3:32b –set service.type=LoadBalancer

    安装完成后,获取网关地址:

    kubectl get svc clawdbot -n ai-gateway 

    输出类似:clawdbot LoadBalancer 10.96.123.45 EXTERNAL-IP 80:31234/TCP

    4.2 配置Web代理与端口映射

    Clawdbot默认监听80端口,但你的Qwen3-32B服务运行在11434端口,中间需要一层协议适配。Clawdbot内置了OpenAPI兼容层,无需Nginx反向代理。

    关键配置项说明:

    model.endpoint

    http://ollama.ai-inference.svc.cluster.local:11434

    model.name

    qwen3:32b

    gateway.port

    8080

    upstream.timeout

    120s

    查看实际生效配置:kubectl get cm clawdbot-config -n ai-gateway -o yaml

    4.3 验证端到端连通性

    不用写代码,用curl直连测试:

    # 发送一个简单请求(模拟前端调用) 

    curl -X POST http:// /v1/chat/completions -H “Content-Type: application/json” -d ‘{ “model”: “qwen3:32b”, “messages”: [{“role”: “user”, “content”: “你好,请用一句话介绍你自己”}], “stream”: false }’

    预期返回包含“content”:“我是通义千问Qwen3-32B…”的JSON。如果返回503 Service Unavailable,检查Ollama Pod日志:kubectl logs deploy/ollama -n ai-inference

    5.1 访问Chat平台界面

    你提供的截图显示了一个简洁的Web聊天界面。它本质是一个静态HTML+JS应用,通过fetch直连Clawdbot网关。部署方式有两种:

    • 方式一(推荐):用Nginx托管前端,指向Clawdbot网关地址
    • 方式二:将前端打包进Clawdbot镜像,启用内置Web UI(需在Helm安装时加–set ui.enabled=true

    无论哪种方式,最终用户访问的URL结构都是:

    https://your-domain.com/ → 反向代理到 http:// 
          
           
            
              :80 
            

    打开页面后,输入问题发送,观察浏览器开发者工具Network面板——请求目标是/v1/chat/completions,状态码200,响应时间在3~8秒(Qwen3-32B首次响应典型值)。

    5.2 制造流量压力,观察扩缩容行为

    hey工具模拟10个并发用户持续请求:

    hey -z 2m -c 10 -m POST -H “Content-Type: application/json” -d ‘{“model”:“qwen3:32b”,“messages”:[{“role”:“user”,“content”:“今天天气怎么样”}]}’ http:// 
          
           
            
              /v1/chat/completions 
            

    同时监控扩缩容动作:

    # 实时查看Pod数量变化 watch ‘kubectl get pods -n ai-inference | grep ollama’

查看HPA决策日志

kubectl describe hpa ollama-hpa -n ai-inference

你会看到:

  • 起始1个Ollama Pod → 30秒后变为2个 → 1分钟后变为3个
  • 流量停止后,2分钟内逐步缩回1个Pod
  • 整个过程无请求失败,Clawdbot自动将新请求路由到新增Pod

这就是真正的“无感弹性”——用户只管提问,系统默默扩容。

6.1 端口映射逻辑拆解(回应你的截图说明)

你提到“内部代理进行8080端口转发到18789网关”,这其实是Clawdbot的两层端口设计:

  • 外部入口8080 —— 用户或前端调用的端口(可配置为80/443)
  • 内部网关18789 —— Clawdbot进程监听的gRPC管理端口(不可被外部访问)
  • 模型通信11434 —— Ollama API端口(仅限K8s集群内访问)

18789端口只用于Clawdbot Operator与自身Agent通信,普通用户完全感知不到。

6.2 常见问题速查

请求返回404 Not Found

model.name配置错误,或Ollama未加载该模型

kubectl exec ollama-pod – ollama list确认模型存在

请求超时504 Gateway Timeout

upstream.timeout设置过短,或GPU显存不足OOM

将timeout调至120s,检查nvidia-smi显存占用

部署prometheus-adapter,确认kubectl get –raw /apis/custom.metrics.k8s.io/v1beta1可访问

Ollama模型加载时未指定–gpu-layers,导致部分计算回退CPU

重新运行ollama run qwen3:32b –gpu-layers 40

提示:Qwen3-32B在A10上建议–gpu-layers 35~45,A100上可设为50+。层数越高,GPU利用率越高,首token延迟越低。

读完这篇教程,你拿到的不是一个“能跑起来”的Demo,而是一套可立即用于中小团队AI服务交付的标准化方案:

  • 架构清晰:Clawdbot做协议网关,Ollama专注推理,K8s负责弹性——职责分离,故障隔离
  • 运维友好:所有配置通过Helm参数注入,升级只需helm upgrade,无需手动改YAML
  • 成本可控:自动缩容让空闲时段资源归零,GPU卡不再24小时烧钱
  • 平滑演进:未来想换Qwen3-72B?只需改model.name和资源限制,其他不动

更重要的是,你理解了AI服务部署的核心矛盾:大模型的重与Web服务的轻如何共存。Clawdbot的价值,正在于它用最朴素的HTTP+K8s原语,给出了一个足够优雅的答案。

技术没有银弹,但有经过验证的路径。你现在,已经站在了这条路上。


小讯
上一篇 2026-04-18 23:47
下一篇 2026-04-18 23:45

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/269215.html