什么是 KAITO?
KAITO 是一个 Kubernetes Operator,专门用于自动化 AI/ML 模型在 Kubernetes 集群中的推理或微调工作负载。它支持流行的开源大模型,如 phi-4、llama 等,并通过容器化的方式管理这些模型文件。
项目信息:
-
• 首次发布:2023 年 11 月 15 日(v0.1.0) -
• 最新版本:2025 年 9 月 23 日(v0.7.0) -
• 项目状态:CNCF 沙箱项目,AKS 上 GA 就绪 -
• GitHub:kaito-project/kaito
核心特性
KAITO 相比传统的基于虚拟机的模型部署方法,具有以下显著优势:
1. 基于容器的模型管理
使用容器镜像管理大型模型文件,并提供与 OpenAI 兼容的服务器进行推理调用,确保部署的一致性和可移植性。
2. 预设配置
提供开箱即用的配置模板,无需根据 GPU 硬件手动调整工作负载参数,大幅降低配置复杂度。
3. 多运行时支持
支持流行的推理运行时,包括:
-
• vLLM:高性能的 LLM 推理引擎 -
• Transformers:Hugging Face 的标准推理框架
4. 自动资源供应
根据模型需求自动供应 GPU 节点,无需手动管理基础设施。
5. 公共镜像仓库
在许可证允许的情况下,将大型模型镜像托管在公共的 Microsoft Container Registry (MCR) 中。
6. RAG 支持
从 v0.5.0 版本开始,KAITO 引入了 RAGEngine,支持检索增强生成(Retrieval Augmented Generation),使用 LlamaIndex 和 FAISS 构建 RAG 服务。
架构设计
KAITO 遵循经典的 Kubernetes CRD/Controller 设计模式。用户通过管理 Workspace自定义资源来描述 GPU 需求和推理/微调规范,KAITO 控制器会自动协调部署。
Workspace 架构
主要组件:
-
1. Workspace Controller(工作空间控制器) -
• 协调 Workspace自定义资源 -
• 创建 NodeClaim自定义资源以触发节点自动供应 -
• 根据模型预设配置创建推理或微调工作负载(Deployment、StatefulSet 或 Job) -
2. Node Provisioner Controller(节点供应控制器) -
• 在 gpu-provisioner Helm chart 中名为 gpu-provisioner -
• 使用源自 Karpenter 的 NodeClaimCRD 与 Workspace Controller 交互 -
• 集成云提供商 API(如 Azure Resource Manager)向集群添加新的 GPU 节点
RAGEngine 架构
RAGEngine Controller协调 ragengine自定义资源并创建 RAGService部署,提供以下能力:
-
• 编排:使用 LlamaIndex 编排器 -
• 嵌入:支持本地和远程嵌入服务 -
• 向量数据库:内置 FAISS 内存向量数据库 -
• 后端推理:支持任何 OAI 兼容的推理服务
安装部署
前置条件
在开始之前,请确保具备以下条件:
-
• 一个现有的 Kubernetes 集群(带有 NVIDIA GPU 节点) -
• Helm用于安装 Operator -
• kubectl用于与集群交互
安装 KAITO Workspace Controller
使用 Helm 安装 KAITO 工作空间控制器:
export CLUSTER_NAME=kaito
helm repo add kaito https://kaito-project.github.io/kaito/charts/kaito
helm repo update
helm upgrade --install kaito-workspace kaito/workspace \
--namespace kaito-workspace \
--create-namespace \
--set clusterName="$CLUSTER_NAME" \
--wait
验证安装
检查 KAITO 工作空间控制器是否正常运行:
kubectl get pods -n kaito-workspace
kubectl describe deploy kaito-workspace -n kaito-workspace
您应该看到工作空间控制器 Pod 处于 Running状态。
快速入门:部署第一个模型
方式一:使用现有 GPU 节点
如果您已有 GPU 节点,首先获取节点列表:
kubectl get nodes -l accelerator=nvidia
为节点添加标签:
kubectl label node <node-name-1> apps=llm-inference
kubectl label node <node-name-2> apps=llm-inference
创建 Workspace 配置文件 phi-4-workspace.yaml:
apiVersion: kaito.sh/v1beta1
kind: Workspace
metadata:
name: workspace-phi-4-mini
resource:
preferredNodes:
- <node-name-1>
- <node-name-2>
labelSelector:
matchLabels:
apps: llm-inference
inference:
preset:
name: phi-4-mini-instruct
应用配置:
kubectl apply -f phi-4-workspace.yaml
方式二:自动供应 GPU 节点
对于支持自动供应的云提供商(Azure、AWS),可以使用以下配置:
apiVersion: kaito.sh/v1beta1
kind: Workspace
metadata:
name: workspace-phi-4-mini
resource:
instanceType: "Standard_NC6s_v3" # 将触发节点创建
labelSelector:
matchLabels:
apps: phi-4-mini
inference:
preset:
name: phi-4-mini-instruct
监控部署状态
跟踪工作空间状态:
kubectl get workspace workspace-phi-4-mini
当 WORKSPACESUCCEEDED列变为 True时,表示模型已成功部署:
NAME INSTANCE RESOURCEREADY INFERENCEREADY WORKSPACESUCCEEDED AGE
workspace-phi-4-mini Standard_NC24ads_A100_v4 True True True 4h15m
测试模型推理
获取服务端点
kubectl get svc workspace-phi-4-mini
export CLUSTERIP=$(kubectl get svc workspace-phi-4-mini -o jsonpath="{.spec.clusterIPs[0]}")
列出可用模型
kubectl run -it --rm --restart=Never curl --image=curlimages/curl -- \
curl -s http://$CLUSTERIP/v1/models | jq
预期输出:
{
"object": "list",
"data": [
{
"id": "phi-4-mini-instruct",
"object": "model",
"created": 1733370094,
"owned_by": "vllm",
"root": "/workspace/vllm/weights",
"parent": null,
"max_model_len": 16384
}
]
}
进行推理调用
kubectl run -it --rm --restart=Never curl --image=curlimages/curl -- \
curl -X POST http://$CLUSTERIP/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "phi-4-mini-instruct",
"messages": [{"role": "user", "content": "What is kubernetes?"}],
"max_tokens": 50,
"temperature": 0
}'
高级功能:模型微调
KAITO 支持参数高效微调(PEFT)方法,包括 LoRA 和 QLoRA。以下是一个微调示例:
创建微调 Workspace
apiVersion: kaito.sh/v1alpha1
kind: Workspace
metadata:
name: workspace-phi-4-mini-tuned
namespace: mcp-dev
annotations:
kaito.sh/enablelb: "false"
kaito.sh/runtime: "transformers"
resource:
count: 1
instanceType: "Standard_NC24ads_A100_v4"
labelSelector:
matchLabels:
apps: phi-4-mini-tuned
tuning:
preset:
name: phi-4-mini-instruct
method: qlora
input:
urls:
- "https://huggingface.co/datasets/orsharon/kaito/resolve/main/kaito_training_dataset.parquet?download=true"
output:
image: myacr.azurecr.io/phi-4-mini-tuned:1.0.0
imagePushSecret: myregistrysecret
微调参数配置
可以通过 ConfigMap 调整微调参数:
training_config:
ModelConfig:
torch_dtype: "bfloat16"
local_files_only: true
device_map: "auto"
QuantizationConfig:
load_in_4bit: true
bnb_4bit_quant_type: "nf4"
bnb_4bit_compute_dtype: "bfloat16"
bnb_4bit_use_double_quant: true
LoraConfig:
r: 8
lora_alpha: 8
lora_dropout: 0.0
target_modules:
- q_proj
- k_proj
- v_proj
- o_proj
- gate_proj
- up_proj
- down_proj
TrainingArguments:
output_dir: "/mnt/results"
save_strategy: "epoch"
per_device_train_batch_size: 1
num_train_epochs: 300
learning_rate: 0.0002
使用微调后的适配器
apiVersion: kaito.sh/v1alpha1
kind: Workspace
metadata:
name: workspace-phi-4-mini-adapter
inference:
preset:
name: phi-4-mini-instruct
adapters:
- source:
name: myadapter
image: myacr.azurecr.io/phi-4-mini-tuned:1.0.0
imagePullSecrets:
- myregistrysecret
strength: "1.0"
strength字段指定适配器权重相对于原始模型权重的乘数,通常为 0 到 1 之间的浮点数。
运行时选择
KAITO 支持两种主要运行时,通过注解进行配置:
annotations:
kaito.sh/enablelb: "false"
kaito.sh/runtime: "transformers" # 或 "vllm"
vLLM 运行时端点
/openapi.json
/docs
/health
/tokenize
/detokenize
/v1/models
/version
/v1/chat/completions
/v1/completions
/v1/embeddings
Transformers 运行时端点
/chat
根据您的需求选择合适的运行时。
与其他工具的集成
KAITO 可以与其他 MLOps 工具无缝集成,形成完整的 AI 工作流:
KitOps + Cog + KAITO 工作流
-
1. KitOps:标准化 AI 项目的组织、版本控制和存储 -
2. Cog:标准化 AI 项目的设置/测试,提供本地模型推理的样板代码 -
3. KAITO:自动化生产环境中的模型推理服务部署和底层计算资源
这种组合消除了 MLOps 的典型瓶颈:环境漂移、手动配置错误以及仅在供应生产基础设施后才发现问题的昂贵循环。
生产环境最佳实践
1. 防止 OOM 错误
KAITO 在 LLM 服务引擎中强制执行智能默认值,以防止内存溢出错误,避免工作负载中断。
2. 高可用性配置
对于生产环境,建议:
-
• 使用自动供应功能确保资源可用性 -
• 配置适当的资源请求和限制 -
• 实施监控和告警机制
3. 安全性
-
• 使用 OCI 兼容的注册表安全管理和分发容器化模型工件 -
• 为私有镜像配置 imagePullSecrets -
• 实施 RBAC 策略控制访问权限
支持的模型
KAITO 支持多种流行的开源模型,包括但不限于:
-
• phi-4-mini-instruct -
• phi-3.5-mini-instruct -
• llama系列 -
• falcon系列
完整的支持模型列表请参考 预设文档。
总结
KAITO 作为一个成熟的 Kubernetes 原生 AI 工具链,无缝处理从自动化 GPU 供应到模型微调和适配器部署的所有环节。作为 CNCF 沙箱项目并在 AKS 上达到 GA 可用性,它已为企业采用做好准备。
主要优势:
✅ 简化部署:通过简单的 YAML 配置即可部署复杂的 AI 模型
✅ 自动化管理:自动供应 GPU 资源,无需手动干预
✅ 标准化:基于容器和 OCI 标准,确保一致性
✅ 灵活性:支持多种运行时和模型
✅ 可扩展:支持微调、RAG 等高级功能
随着即将发布的版本不断增强 RAG 能力,KAITO 正在从传统的推理和微调扩展为在 Kubernetes 环境中管理完整 AI 模型生命周期的综合平台。
如果您正在寻找一种简化 Kubernetes 上 AI 模型部署的解决方案,KAITO 无疑是一个值得尝试的优秀选择。
参考资liao:
-
• KAITO GitHub 仓库 https://github.com/kaito-project/kaito -
• KAITO 官方文档 https://kaito-project.github.io/ -
• Standardizing AI/ML Workflows on Kubernetes with KitOps, Cog, and KAITO -

