2026-04-08 04:00:00

为什么需要 LiteLLM?
当你在使用多个 AI 模型时,会遇到这些问题:
LiteLLM 通过统一的 OpenAI 兼容接口解决了这些问题,让你只需修改 model 参数就能切换模型。
核心功能:
LiteLLM 作为统一网关,接收所有客户端请求,然后根据 model 参数自动路由到对应的后端模型服务。无论是本地部署的 vLLM,还是云端 API(OpenAI、Claude 等),都可以通过同一套接口调用。
本文将介绍如何在 Kubernetes 环境中部署 LiteLLM,并配置 PostgreSQL 作为数据库。
部署完成后,你可以像这样统一调用不同的模型:
|
|
⚠️ 重要安全提醒
ps:主要影响 PyPI 包,如果是 Docker Image 则不受影响。
如果你的环境中有 LiteLLM,请立即检查版本:
|
|
如果你不幸安装了 1.82.7 或 1.82.8,请假设所有凭证已泄露,立即:
详细信息请参考官方安全公告:LiteLLM Security Update - March 2026 Github Issue: https://github.com/BerriAI/litellm/issues/24518
PostgreSQL 需要 StorageClass,使用 LocalPathStorage:
|
|
查看部署状态:
|
|
使用 Bitnami PostgreSQL Helm Chart 部署:
|
|
查看部署状态:
|
|
OK,准备工作完成,接下来可以开始部署 LiteLLM 了。
|
|
|
|
查看 Pod 状态:
|
|
LiteLLM 对外提供 OpenAI API 格式的端点,会根据 model 自动路由到不同的后端 Provider 上:
|
|
|
|
服务启动后,访问 4000 端口,进入 LiteLLM UI 界面:
|
|
账号 admin,密码为配置文件中指定的 MASTER_KEY:

登录后,跳转到界面上 Usage 页面可以看到不同模型的具体的使用情况:

以及具体请求:

本文详细介绍了 LiteLLM AI Gateway 的 Kubernetes 部署:
LiteLLM 的核心价值:
| 功能 | 说明 |
|---|---|
| 一行代码切换模型 | 只需修改 model 参数,无需改业务代码 |
| 可视化监控 | Web UI 实时查看调用次数、Token 消耗、成本统计 |
| 多模型负载均衡 | 自动在多个模型实例间分配请求 |
| OpenAI 兼容 | 无缝对接现有使用 OpenAI API 的应用 |
如果你已经在使用 vLLM 部署本地模型,可以参考我的其他文章:
2026-03-31 04:00:00

Qwen3.5 是阿里云最新开源的大语言模型系列,提供了从 0.8B 到 397B 的多种规格,在推理能力和效率之间取得了良好平衡。
面对如此丰富的模型规格,该如何选择?本文将首先分析各规格模型的特点和适用场景,帮助你找到最适合的那一款,然后介绍如何使用 vLLM 在 Kubernetes 环境中部署 Qwen3.5 模型。
根据各大榜单排名以及实测表现,Qwen3.5 系列在性能和质量的权衡上表现出色。

本文所有测试均在以下环境完成:
|
|
Qwen3.5 已形成从 0.8B 到 397B 的完整开源矩阵,分为三大梯队:
| 系列 | 模型 | 特点 |
|---|---|---|
| 轻量稠密系列 | 0.8B / 2B / 4B / 9B / 27B | 全参数激活,部署简单,适合个人/边缘场景 |
| 中型 MoE 系列 | 35B-A3B / 122B-A10B | 激活参数小,速度快成本低,适合企业级服务 |
| 旗舰 MoE 系列 | 397B-A17B | 开源旗舰,全场景最强,对标闭源第一梯队 |
所有模型均支持视觉-语言多模态输入,原生上下文长度 256K tokens,最高可扩展至 1M tokens。
根据官方测评数据,比较推荐下面 4 个规格:
| 模型 | 激活参数 | 综合能力 | 代码能力 | Agent 能力 | 中文能力 |
|---|---|---|---|---|---|
| Qwen3.5-27B | 27B | 88.5 | HumanEval 89.1 | BFC-Lv4 48.5% | 90.5 |
| Qwen3.5-35B-A3B | 3B | 89.7 | HumanEval 87.9 | BFC-Lv4 52.3% | - |
| Qwen3.5-122B-A10B | 10B | 90.8 | HumanEval 88.7 | BFC-Lv4 50.7% | 91.7 |
| Qwen3.5-397B-A17B | 17B | 91.5 | HumanEval 89.3 | BFC-Lv4 49.8% | 92.3 |
选型建议:
首先安装 HuggingFace CLI 工具用于下载模型:
|
|
常见问题:安装失败
如果遇到 No module named pip 错误,通常是因为虚拟环境损坏:
|
|
Qwen3.5 提供多种规格和精度版本,根据你的硬件配置选择:
|
|
官方文档:https://docs.vllm.ai/projects/recipes/en/latest/Qwen/Qwen3.5.html
以下以 Qwen3.5-397B-A17B-GPTQ-Int4 为例,展示如何在 Kubernetes 中部署:
|
|
关键参数说明:
| 参数 | 说明 |
|---|---|
--tensor-parallel-size |
张量并行数,通常等于 GPU 数量 |
--reasoning-parser qwen3 |
启用 Qwen3 推理能力 |
--tool-call-parser qwen3_coder |
使用 Qwen3 工具调用解析器 |
--enable-auto-tool-choice |
启用自动工具选择 |
--quantization moe_wna16 |
MoE 模型量化方式 |
--max-model-len 262144 |
最大上下文长度 |
--enable-prefix-caching |
启用前缀缓存加速 |
|
|
Qwen3.5 支持开启/关闭思考模式:
开启思考模式(默认):
|
|
关闭思考模式:
|
|
使用 vLLM 内置的 benchmark 工具进行测试:
|
|
|
|
关键指标解读:
| 指标 | 含义 | 测试结果 |
|---|---|---|
| TTFT | Time To First Token,首 token 延迟 | 平均 308ms |
| TPOT | Time Per Output Token,每个 token 生成时间 | 平均 29.5ms |
| 吞吐量 | Output token throughput | 1005 tok/s |
本文详细介绍了使用 vLLM 部署 Qwen3.5 模型的完整流程:
如果你想在 Claude Code 中使用本地部署的模型,可以参考我的另一篇文章《Claude Code 也能跑本地模型?CCR 多模型智能路由》,了解如何通过 Claude Code Router 实现对接。
另外,如果你对 GLM-5 模型的部署感兴趣,也可以参考《vLLM + GLM-5:打造高性能本地大模型推理服务》。
2026-03-26 04:00:00

GLM-5 是智谱 AI 最新发布的大语言模型,具备强大的推理能力和工具调用能力。本文将详细介绍如何使用 vLLM 框架在生产环境中部署 GLM-5 模型。
根据各大榜单排名以及实测表现,GLM-5 在多项评测中表现出色,是当前开源模型中的佼佼者。

本文涵盖以下内容:
本文所有测试均在以下环境完成:
|
|
首先安装 HuggingFace CLI 工具用于下载模型:
|
|
常见问题:安装失败
如果遇到 No module named pip 错误,通常是因为虚拟环境损坏:
|
|
GLM-5 提供了多种精度版本,根据你的硬件配置选择:
|
|
官方文档:https://github.com/vllm-project/recipes/blob/main/GLM/GLM5.md
由于 GLM-5 需要最新版 transformers 支持,官方镜像暂未包含,需要构建自定义镜像。
创建 Dockerfile:
|
|
构建镜像:
|
|
已推送到公共仓库:
lixd96/vllm-openai:v0.17.1-cu130,可直接拉取使用
|
|
关键参数说明:
| 参数 | 说明 |
|---|---|
--tensor-parallel-size |
张量并行数,通常等于 GPU 数量 |
--tool-call-parser glm47 |
使用 GLM 系列工具调用解析器 |
--reasoning-parser glm45 |
启用 GLM 推理能力 |
--enable-auto-tool-choice |
启用自动工具选择 |
--trust-remote-code |
信任模型中的远程代码 |
--gpu-memory-utilization |
GPU 显存利用率,建议 0.85-0.95 |
部署完成后,验证服务是否正常运行:
|
|
GLM-5 支持开启/关闭思考模式,通过 chat_template_kwargs 参数控制:
开启思考模式(默认):
|
|
关闭思考模式:
|
|
使用 vLLM 内置的 benchmark 工具进行测试:
|
|
|
|
关键指标解读:
| 指标 | 含义 | 测试结果 |
|---|---|---|
| TTFT | Time To First Token,首 token 延迟,衡量用户等待第一个响应的时间 | 平均 144ms,响应迅速 |
| TPOT | Time Per Output Token,每个 token 的生成时间,反映流式输出的流畅度 | 平均 31.6ms |
本文详细介绍了使用 vLLM 部署 GLM-5 模型的完整流程:
如果你想在 Claude Code 中使用本地部署的 GLM-5 模型,可以参考我的另一篇文章《Claude Code 也能跑本地模型?CCR 多模型智能路由》,了解如何通过 Claude Code Router 实现对接。
2026-03-19 04:00:00

Claude Code 是 Anthropic 推出的强大 AI 编程助手,但每月的订阅费用让很多开发者望而却步。
通过 Claude Code Router (CCR),我们可以:
本文将手把手教你搭建这套方案,让你的 AI 编程助手成本降低 90% 以上。
首先需要在你的开发机器上安装 Claude Code:
|
|
Claude Code Router 是一个 Node.js 包,用于桥接 Claude Code 和本地模型:
|
|
安装完成后,验证两个工具是否正常工作:
|
|
在服务器上下载 GLM5 模型:
根据硬件配置选择合适的版本
|
|
使用 vLLM 框架部署模型服务,确保已安装 GPU 驱动和 NVIDIA Container Toolkit。
由于 GLM5 需要最新版的 transformers 支持,官方镜像暂未包含,需要先构建自定义镜像:
已经推送到 lixd96/vllm-openai:v0.17.1-cu130,直接拉取即可 docker pull lixd96/vllm-openai:v0.17.1-cu130
构建自定义镜像:
创建 Dockerfile:
|
|
构建并推送镜像:
|
|
启动服务:
|
|
关键参数说明:
--gpus 和 --tensor-parallel-size 参数--shm-size 16g 确保容器有足够共享内存--enable-auto-tool-choice 启用工具调用功能,--tool-call-parser glm47 使用 GLM 系列的工具调用解析器--reasoning-parser glm45 启用 GLM 的推理能力--trust-remote-code 允许加载模型的自定义代码--tensor-parallel-size 4 在多 GPU 上并行处理部署完成后,验证服务是否正常运行:
|
|
如果一切正常,你应该能看到模型的响应输出。
核心配置文件如下:
|
|
创建或编辑配置文件 ~/.claude-code-router/config.json:
|
|
配置说明:
your-server-ip 替换为实际的服务器 IP 地址debug,生产环境建议改为 info
使用 ccr code 替代原来的 claude 命令:
效果如下:

启动后,在 claude 界面输入以下命令切换模型
|
|
之后就可以正常使用了。
ps: 不切换模型也可以,只是终端会一直显示用的 Claude 的模型。
前面我们介绍了单一模型的配置方式,但在实际使用中,不同类型的任务对模型能力的要求各不相同。
Claude Code Router 的强大之处在于支持对接多个模型,并根据任务类型自动路由到最合适的模型。
不同任务对模型的需求差异很大:
| 任务类型 | 特点 | 推荐模型策略 |
|---|---|---|
| 日常对话 | 频率高、响应快 | 轻量级模型,节省资源 |
| 代码生成 | 需要准确性和逻辑性 | 中等能力模型 |
| 复杂推理 | 需要深度思考 | 顶级能力模型 |
| 长文本处理 | 需要大上下文窗口 | 支持长上下文的模型 |
| 图像理解 | 需要多模态能力 | 视觉语言模型 |
通过合理配置,可以实现:
以下是一个对接多个模型服务商的完整配置:
|
|
default(默认路由)
background(后台任务)
think(思考密集型)
longContext(长上下文)
longContextThreshold 时自动切换webSearch(网络搜索)
image(图像任务)
Claude Code Router 的核心原理是通过启动一个 HTTP 中转服务,在不修改 Claude Code 源码的情况下完成请求的转发和格式转换。
Claude Code 使用 Anthropic API 规范进行通信,而大多数模型服务商(如 OpenAI、DeepSeek 等)使用 OpenAI API 规范。CCR 的作用就是:
|
|
CCR 的核心优势在于可以根据任务特点选择最合适的模型,实现成本与质量的平衡:
| 任务类型 | 特点 | 推荐策略 |
|---|---|---|
| 日常开发 | 频率高、响应要求快 | 性价比高的主力模型 |
| 复杂推理 | 需要深度思考 | 推理能力强的模型 |
| 图像理解 | 需要多模态能力 | 支持视觉的模型 |
| 后台任务 | 自动触发、频率高 | 轻量快速模型 |
| 长文本 | 需要大上下文 | 支持长上下文的模型 |
成本对比:
|
|
通过合理配置路由策略,将高频低难度任务分配给低成本模型,仅在必要时调用高端模型,月成本可降低 90% 以上。
如果运行 ccr code 时报错:“Unable to connect to Anthropic services”,可以修改 ~/.claude.json 文件,在最外层添加以下配置:
|
|
保存后重新运行即可。
本文介绍了如何通过 Claude Code Router 打破 Claude Code 的使用限制:
CCR 还支持对接更多 Provider,如 DeepSeek、智谱 AI、OpenAI 等,可根据实际需求灵活组合。如果你也在寻找高性价比的 AI 编程方案,不妨试试这套配置。
2026-03-11 04:00:00

在之前的文章《Kubernetes PVC Clone & Snapshot 实战:基于 Csi-Driver-Nfs 的完整示例》中,我们探讨了如何使用 Kubernetes 内置的 PVC 克隆和快照功能进行数据保护。然而,当我们需要对整个 Kubernetes 集群进行全面的备份恢复时,就需要更专业的工具。
Velero(前身 Heptio Ark)正是这样一个专业的 Kubernetes 备份恢复工具,已成为 CNCF 毕业项目。它不仅能够备份持久卷数据,还能备份整个集群的应用配置、服务和资源状态,提供企业级的灾难恢复和集群迁移能力。
你将学到:
在前一篇文章中我们介绍了 PVC 级别的数据保护方案,但当我们需要对整个 Kubernetes 应用栈进行备份恢复时,就需要更全面的解决方案。
Velero(前身 Heptio Ark)正是一个用于备份与恢复 Kubernetes 集群资源和持久卷(PV/PVC)的专业开源工具,提供安全可靠的数据保护解决方案。
Velero 在 Kubernetes 生态中已被广泛视为开源领域事实标准 / 最主流备份恢复工具(CNCF 毕业项目,社区采用率最高)。
灾难恢复:应对集群故障、误删除等意外情况
集群升级迁移:安全地将应用迁移到新版本集群
开发测试:为开发测试环境提供快速数据恢复能力
合规要求:满足数据保护和审计合规需求
Velero 采用客户端-服务器架构:
Velero 采用 Operator 模式,通过创建 CRD 对象触发备份操作:

Velero 通过两种 CRD 管理存储后端:
定义 Kubernetes 集群资源的存储位置,主要用于存储 YAML 清单文件等元数据。支持 S3 兼容存储(如 MinIO、AWS S3、阿里云 OSS 等)。
定义持久卷快照的存储位置,需要云提供商插件支持。对于不支持快照的环境,可以使用文件系统备份工具 Restic/Kopia。
Restic 是一款用 Go 语言开发的数据加密备份工具,支持多种存储后端:Local、SFTP、AWS S3、MinIO、Azure Blob Storage、Google Cloud Storage 等。
Kopia 是 Velero 从 v1.10 版本开始引入的新一代 文件级备份工具,用于替代传统的 Restic,相比 Restic 具有更好的性能和可靠性。
Velero 支持多种存储插件,可通过 官方文档 查看完整列表。本教程使用 MinIO 作为 S3 兼容的对象存储。
可以参考 MinIO 官方文档部署服务,或使用 Velero 提供的快速部署脚本:
|
|
到 GitHub release 页面下载最新压缩包:
|
|
先创建 S3 配置文件,提供 MinIO 的访问凭证:
|
|
开始部署 Velero 服务端组件:
|
|
参数说明:
--namespace:指定部署的 namespace 名称,默认为 velero--provider:定义插件提供方,aws 表示 AWS S3 兼容--image:定义运行 velero 的镜像--plugins:指定使用 aws s3 兼容的插件镜像--secret-file:指定对象存储认证文件--bucket:指定对象存储 Bucket 桶名称--use-node-agent:创建 Velero Node Agent 守护进程,用于通过 Kopia 备份 PVC 数据--use-volume-snapshots:是否启用快照功能注意:从 Velero 1.7 开始,Kopia 成为默认的文件系统备份工具,取代了之前的 Restic。Kopia 提供了更好的性能和可靠性。
--backup-location-config:指定对象存储地址信息
region:MinIO 本身没有区域概念,但 AWS S3 插件需要 region 参数,因此使用 minio 作为占位符s3ForcePathStyle:路径风格访问,强制使用路径风格的 URL(http://endpoint/bucket/key),这是 MinIO 的推荐访问方式s3Url:MinIO 服务地址
|
|
如果需要从集群中完全卸载 Velero:
|
|
备份命令:velero create backup NAME [flags]
除了手动备份外,Velero 还支持定时备份,可以通过 Schedule CRD 实现自动化备份:
|
|
定时表达式说明:
0 2 * * *:每天凌晨2点执行0 */6 * * *:每6小时执行一次0 0 * * 0:每周日午夜执行常用选项:
--exclude-namespaces stringArray:从备份中排除的命名空间--exclude-resources stringArray:从备份中排除的资源类型--include-cluster-resources optionalBool[=true]:是否包含集群级资源--include-namespaces stringArray:要包含的命名空间(默认 ‘*’)--include-resources stringArray:要备份的资源类型--labels mapStringString:为备份添加标签-o, --output string:输出格式(table/json/yaml)-l, --selector labelSelector:按标签筛选资源--snapshot-volumes optionalBool[=true]:是否为 PV 创建快照--storage-location string:指定备份位置--ttl duration:备份数据的过期时间--volume-snapshot-locations strings:指定快照位置创建一个 Nginx 应用并挂载 PVC,用于验证备份恢复功能:
|
|
|
|
|
|
|
|
参数说明:
--include-namespaces:指定要备份的命名空间--default-volumes-to-fs-backup:使用文件系统备份工具备份 PVC 数据
|
|
备份完成后,可以在 MinIO 存储中查看备份内容:
Kubernetes 资源配置备份:

PVC 数据文件备份:

|
|
只要我们将每个 velero 实例指向相同的对象存储,velero 就能将资源从一个群集迁移到另一个群集。

以下是集群信息:
| 角色 | 集群IP | 集群版本 | 部署软件 |
|---|---|---|---|
| K8S 集群A | 172.16.131.134 | v1.34.2 | velero、demo-app |
| K8S 集群B | 172.16.131.171 | v1.34.2 | velero、minio |
在集群 A 部署上应用。
创建一个 nginx app,并挂载 pvc 用于验证备份恢复功能。
|
|
|
|
|
|
将一个简单的 html 复制到 nginx 数据目录中
|
|
访问 nginx 进行验证
|
|
|
|
参数:
--include-namespaces:指定命名空间,这里测试仅备份 nginx-example 下的内容。--default-volumes-to-fs-backup:使用文件系统备份工具(Kopia)来备份数据。这种方式更通用。查看状态
|
|
这样就备份好了。
在目标集群查看备份对象(如果连接到同一个 S3 存储,Velero 会自动同步):
|
|
恢复数据
|
|
查看恢复进度
|
|
验证 Nginx 是否完全恢复
|
|
一切正常。
跨集群迁移完成。
Velero 作为一个成熟的 Kubernetes 备份恢复工具,提供了完整的灾难恢复和集群迁移解决方案。通过本文的实战演示,您可以掌握:
2026-03-04 04:00:00

最近,KubeClipper 正式发布了 1.5.0 版本。这次更新带来了多项重要改进,其中最引人注目的是新增的工作负载管理界面,用户现在可以直接在 Web UI 中管理 Deployment、StatefulSet 等 Kubernetes 工作负载。同时,该版本还升级了对 Kubernetes 及其组件的支持,并修复了大量 bug,提升了平台的稳定性和用户体验。
KubeClipper 是一个轻量便捷的 Kubernetes 多集群全生命周期管理工具,旨在提供易使用、易运维、极轻量、生产级的 Kubernetes 多集群管理服务,让运维工程师从繁复的配置和晦涩的命令行中解放出来,实现一站式管理跨区域、跨基础设施的多 K8S 集群。
如果你是第一次接触 KubeClipper,可以通过以下步骤快速上手:
curl -sfL https://oss.kubeclipper.io/get-kubeclipper.sh | KC_REGION=cn bash -
kcctl deploy
kcctl create cluster --name demo --master YOUR_IP --untaint-master
http://YOUR_IP:8080,账号 admin/Thinkbig1
全程只需5-10分钟,就能拥有一个功能完整的 Kubernetes 环境!
相比于之前的版本,1.5.0 在易用性和功能性方面都有显著提升。最大的变化是新版增加了对 k8s 1.35.0 的支持,另外新增的工作负载管理功能让用户可以完全摆脱命令行操作。
KubeClipper 的核心优势:
本次更新的主要亮点:
这是 1.5.0 版本最重要的新功能。之前用户需要通过命令行或第三方工具管理 Kubernetes 工作负载,现在可以直接在 KubeClipper 的 Web UI 中进行可视化操作:
1.5.0版本全面升级了支持的组件版本:
1.5.0版本包含了大量的技术改进和稳定性提升:
在开始安装之前,确保满足以下要求:
|
|
正常输出如下:
|
|
|
|
在打印出如下的 KubeClipper banner 后即表示安装完成。
|
|
安装过程中需要去阿里云下载离线安装包,大概 1 分钟即可下载完成。
安装完成后,打开浏览器,访问 http://$IP 即可进入 KubeClipper 控制台。

您可以使用默认帐号密码 admin / Thinkbig1 进行登录。
部署成功后可以使用 kcctl 工具或者通过控制台创建 k8s 集群, 这里咱们使用 kcctl 工具进行创建。
查看当前 agent 节点
|
|
然后使用以下命令创建 k8s 集群:
|
|
大概两分钟左右即可完成集群创建,可以使用以下命令查看实时日志:
|
|
或者使用以下命令查看集群状态
|
|
也可以进入控制台查看实时日志。
进入 Running 状态即表示集群安装完成,您可以使用 kubectl 命令来查看集群健康状况。
|
|
至此,我们的单节点版本就算是结束了,通过几条命令就快速创建出来一个 K8s 集群。
登录 Web UI 后,在集群管理界面,点击展开集群后的更多按钮,然后点击 工作负载 按钮跳转到工作负载界面:

集群节点信息

Deployment 管理:

更多功能就留给大家自行探索了~
KubeClipper 1.5.0 版本的发布标志着该项目在易用性、功能性和技术成熟度方面都达到了新的高度。作为一次重要的里程碑更新,1.5.0 不仅在用户体验上实现了质的飞跃,更在技术架构上为未来的发展奠定了坚实基础。
技术深度升级:
用户体验提升:
对于正在寻找简单易用的 Kubernetes 管理平台的团队来说,KubeClipper 1.5.0 无疑是一个值得尝试的选择。无论是初学者还是经验丰富的运维人员,都能从这个版本中找到适合自己的价值点。
相关链接: