Skip to content

06 - AI 机器人初创公司 K8s 落地方案

一、业务场景分析

AI 机器人公司典型技术栈:

┌──────────────────────────────────────────────────────────────────┐
│                     AI 机器人业务全景                              │
│                                                                  │
│  ┌─────────────┐  ┌──────────────┐  ┌─────────────────────┐     │
│  │ 感知层      │  │ 决策层        │  │ 执行层               │     │
│  │             │  │              │  │                     │     │
│  │ 视觉感知    │  │ 规划算法     │  │ 运动控制             │     │
│  │ 语音识别    │  │ 大语言模型   │  │ 机械臂控制           │     │
│  │ 传感器融合  │  │ 多模态推理   │  │ 导航定位             │     │
│  │ SLAM       │  │ 任务编排     │  │ 安全监控             │     │
│  └─────────────┘  └──────────────┘  └─────────────────────┘     │
│        │                │                    │                   │
│        └────────────────┴────────────────────┘                   │
│                         │                                        │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │                    云端基础设施                             │   │
│  │  模型训练 │ 模型推理 │ 数据管理 │ 仿真测试 │ OTA 更新     │   │
│  └──────────────────────────────────────────────────────────┘   │
└──────────────────────────────────────────────────────────────────┘

云端需求

需求说明K8s 资源
模型训练视觉、语言、控制策略等模型GPU 节点 + PyTorchJob
模型推理云端大模型推理(语言理解等)GPU 推理服务 + HPA
数据平台采集数据管理、标注、清洗Deployment + NAS/OSS
仿真环境Gazebo/Isaac Sim 机器人仿真GPU 节点 + 批处理 Job
OTA 管理机器人固件/模型更新分发Deployment + OSS
设备管理机器人集群管理、监控IoT 平台 + K8s
API 网关对外提供 API 服务Ingress + Service
内部工具标注平台、管理后台Deployment + Ingress

二、架构设计

总体架构

┌──────────────────────────────────────────────────────────────────┐
│                         阿里云 ACK                               │
│                                                                  │
│  ┌─────────────────────────────────────────────────────────┐    │
│  │                    Ingress (ALB)                         │    │
│  │    api.robot.com  │  admin.robot.com  │  data.robot.com │    │
│  └─────────┬──────────────┬──────────────────┬─────────────┘    │
│            │              │                  │                   │
│  ┌─────────▼───┐ ┌───────▼──────┐ ┌────────▼───────┐          │
│  │ API 服务    │ │ 管理后台     │ │ 数据服务        │          │
│  │ (推理+业务) │ │ (Web + API)  │ │ (采集+标注)     │          │
│  │ Namespace:  │ │ Namespace:   │ │ Namespace:      │          │
│  │ production  │ │ internal     │ │ data-platform   │          │
│  └─────────────┘ └──────────────┘ └─────────────────┘          │
│                                                                  │
│  ┌────────────────────────────────────────────────────────┐     │
│  │                  训练平台                                │     │
│  │  Namespace: ml-training                                 │     │
│  │  PyTorchJob │ 仿真 Job │ 数据预处理 Job                 │     │
│  └────────────────────────────────────────────────────────┘     │
│                                                                  │
│  ┌────────────────────────────────────────────────────────┐     │
│  │                  基础设施                                │     │
│  │  Prometheus + Grafana │ Loki │ ArgoCD │ Redis │ PG    │     │
│  │  Namespace: infra                                       │     │
│  └────────────────────────────────────────────────────────┘     │
│                                                                  │
│  节点池:                                                         │
│  ├── CPU 通用池 (4C8G × 3-10)   业务服务 + 基础设施              │
│  ├── GPU 训练池 (A100/V100 × 按需) 模型训练 + 仿真               │
│  ├── GPU 推理池 (A10/T4 × 2-8)   在线推理                       │
│  └── GPU Spot 池 (V100 × 按需)   可容错训练任务                  │
│                                                                  │
│  存储:                                                           │
│  ├── NAS (训练数据/模型/共享文件)                                  │
│  ├── OSS (原始数据/日志/模型归档/OTA 包)                          │
│  └── 云盘 SSD (数据库)                                           │
└──────────────────────────────────────────────────────────────────┘

     机器人端 (边缘)
     ├── 连接云端 API (MQTT/gRPC)
     ├── 下载 OTA 更新包 (OSS)
     ├── 上报数据和日志
     └── 本地推理 (边缘端小模型)

命名空间规划

Namespace用途资源预算
production线上 API 服务、推理服务CPU 4C + GPU 按需
staging预发环境(同 production 结构)CPU 2C
ml-training模型训练、仿真、数据处理GPU 池
data-platform数据采集、标注平台CPU 4C
internal管理后台、内部工具CPU 2C
infra监控、日志、CI/CD、中间件CPU 4C

三、分阶段落地计划

Phase 1: 基础搭建(第 1-2 周)

目标:搭建基本集群,跑通核心业务

bash
# 1. 创建 ACK 集群
# 控制台操作:选择托管版,杭州地域,配置 VPC

# 2. 创建节点池
# CPU 通用池:ecs.c7.xlarge (4C8G) × 3
# GPU 推理池:ecs.gn7i-c8g1.2xlarge (A10 × 1) × 2(后续按需扩)

# 3. 安装基础组件
# Ingress Controller (ALB)
# Metrics Server
# nvidia-device-plugin (GPU 节点)

# 4. 创建命名空间
kubectl create namespace production
kubectl create namespace staging
kubectl create namespace infra

# 5. 配置 ACR 免密拉取
# ACK 控制台 → 组件管理 → 安装 aliyun-acr-credential-helper

# 6. 部署基础中间件
helm install redis bitnami/redis -n infra
helm install postgresql bitnami/postgresql -n infra

交付物

  • [ ] ACK 集群就绪
  • [ ] kubectl 配置完成
  • [ ] ACR 仓库创建
  • [ ] 基础中间件部署
  • [ ] Ingress 域名配置

Phase 2: 业务服务上线(第 3-4 周)

目标:核心 API 和推理服务上 K8s

yaml
# production/api-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: robot-api
  namespace: production
spec:
  replicas: 3
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  selector:
    matchLabels:
      app: robot-api
  template:
    metadata:
      labels:
        app: robot-api
    spec:
      affinity:
        podAntiAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 100
            podAffinityTerm:
              labelSelector:
                matchLabels:
                  app: robot-api
              topologyKey: topology.kubernetes.io/zone
      containers:
      - name: api
        image: registry-vpc.cn-hangzhou.aliyuncs.com/robotics/api:v1.0.0
        ports:
        - containerPort: 8000
        env:
        - name: DATABASE_URL
          valueFrom:
            secretKeyRef:
              name: db-secret
              key: url
        resources:
          requests:
            cpu: "500m"
            memory: "512Mi"
          limits:
            memory: "1Gi"
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8000
          initialDelaySeconds: 10
          periodSeconds: 15
        readinessProbe:
          httpGet:
            path: /ready
            port: 8000
          initialDelaySeconds: 5
          periodSeconds: 5
---
# 推理服务
apiVersion: apps/v1
kind: Deployment
metadata:
  name: llm-inference
  namespace: production
spec:
  replicas: 2
  selector:
    matchLabels:
      app: llm-inference
  template:
    metadata:
      labels:
        app: llm-inference
    spec:
      nodeSelector:
        pool: gpu-inference
      tolerations:
      - key: nvidia.com/gpu
        operator: Exists
        effect: NoSchedule
      containers:
      - name: vllm
        image: registry-vpc.cn-hangzhou.aliyuncs.com/robotics/llm-server:v1.0.0
        ports:
        - containerPort: 8000
        resources:
          limits:
            nvidia.com/gpu: 1
        readinessProbe:
          httpGet:
            path: /health
            port: 8000
          initialDelaySeconds: 120
          periodSeconds: 10
        volumeMounts:
        - name: models
          mountPath: /models
      volumes:
      - name: models
        persistentVolumeClaim:
          claimName: model-store

交付物

  • [ ] API 服务部署
  • [ ] 推理服务部署
  • [ ] HPA 自动扩缩容配置
  • [ ] Ingress + HTTPS 配置
  • [ ] 健康检查和 PDB 配置
  • [ ] Staging 环境镜像同步

Phase 3: CI/CD + 监控(第 5-6 周)

目标:自动化发布和可观测性

代码仓库
    │ Push / Merge

GitHub Actions / GitLab CI
    │ 构建镜像 → 推送 ACR
    │ 更新 Helm values / Kustomize

ArgoCD (持续部署)
    │ 监听 Git manifests 变更
    │ 自动同步到 K8s

K8s 集群
    │ 部署 → 健康检查 → 就绪

Prometheus + Grafana (监控)
Loki (日志)
AlertManager → 飞书/钉钉 通知
bash
# 安装 ArgoCD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

# 安装监控栈
helm install monitoring prometheus-community/kube-prometheus-stack \
  -n infra \
  --set grafana.adminPassword=<secret>

# 安装 Loki
helm install loki grafana/loki-stack -n infra

交付物

  • [ ] CI Pipeline(构建+测试+推送镜像)
  • [ ] ArgoCD 部署 + Git 仓库绑定
  • [ ] Prometheus + Grafana 仪表盘
  • [ ] 日志收集(Loki)
  • [ ] 告警通知(飞书/钉钉 webhook)

Phase 4: 训练平台(第 7-8 周)

目标:支持模型训练和仿真

bash
# 创建 GPU 训练节点池
# ACK 控制台 → 节点池 → 创建
# 实例:ecs.gn7-c12g1.3xlarge (V100 × 1)
# 弹性伸缩:0-4 节点

# 创建 Spot 训练节点池
# 实例类型:抢占式实例
# 弹性伸缩:0-8 节点

# 安装 Training Operator
kubectl apply -k "github.com/kubeflow/training-operator/manifests/overlays/standalone"

# 创建共享存储
kubectl apply -f - <<EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: training-data
  namespace: ml-training
spec:
  accessModes: [ReadWriteMany]
  storageClassName: alicloud-nas
  resources:
    requests:
      storage: 1Ti
EOF

交付物

  • [ ] GPU 训练节点池(按需 + Spot)
  • [ ] Kubeflow Training Operator
  • [ ] NAS 共享存储
  • [ ] 训练任务模板(PyTorchJob)
  • [ ] Checkpoint 自动保存策略
  • [ ] TensorBoard 部署
  • [ ] GPU 监控仪表盘(DCGM)

Phase 5: 数据平台 + 安全加固(第 9-10 周)

目标:数据管理和安全体系

yaml
# NetworkPolicy:零信任网络
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny
  namespace: production
spec:
  podSelector: {}
  policyTypes: [Ingress, Egress]
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-api-to-db
  namespace: production
spec:
  podSelector:
    matchLabels:
      app: postgresql
  ingress:
  - from:
    - podSelector:
        matchLabels:
          app: robot-api
    ports:
    - port: 5432
  - from:
    - podSelector:
        matchLabels:
          app: data-service
    ports:
    - port: 5432

交付物

  • [ ] 数据采集服务部署
  • [ ] 标注平台部署
  • [ ] RBAC 权限配置(研发/运维/只读)
  • [ ] NetworkPolicy 网络隔离
  • [ ] Secret 管理(阿里云 KMS / External Secrets)
  • [ ] 镜像安全扫描流水线
  • [ ] Pod Security Admission 配置

Phase 6: 优化与规模化(持续)

目标:成本优化、弹性扩展

优化项措施预期效果
GPU 利用率cGPU 共享 + 推理混部GPU 利用率 30%→70%
训练成本Spot 实例 + Checkpoint节约 60-70%
弹性HPA + Cluster Autoscaler自动应对流量峰值
推理延迟模型量化 + TensorRTP99 延迟降低 50%
存储成本冷热分层(NAS→OSS)节约 40%

四、团队分工建议(5-10 人初创团队)

┌──────────────────────────────────────────────────┐
│  CTO / 技术负责人                                  │
│  - 架构决策、技术选型                               │
│  - K8s 集群规划                                    │
│                                                    │
│  ┌──────────────┐  ┌──────────────────────────┐   │
│  │ 后端/平台组   │  │ AI/算法组                 │   │
│  │ 1-2 人       │  │ 2-4 人                   │   │
│  │              │  │                          │   │
│  │ - K8s 运维   │  │ - 模型训练               │   │
│  │ - CI/CD      │  │ - 推理优化               │   │
│  │ - API 开发   │  │ - 数据处理               │   │
│  │ - 监控告警   │  │ - 仿真测试               │   │
│  └──────────────┘  └──────────────────────────┘   │
│                                                    │
│  ┌──────────────┐  ┌──────────────────────────┐   │
│  │ 前端/产品组   │  │ 硬件/嵌入式组             │   │
│  │ 1-2 人       │  │ 1-2 人                   │   │
│  │              │  │                          │   │
│  │ - 管理后台   │  │ - 机器人端软件            │   │
│  │ - 标注平台   │  │ - OTA 更新              │   │
│  │ - 监控面板   │  │ - 边缘推理              │   │
│  └──────────────┘  └──────────────────────────┘   │
└──────────────────────────────────────────────────┘

K8s 能力要求

角色K8s 技能要求
后端/平台工程师熟练:集群管理、Helm、CI/CD、监控、故障排查
AI 工程师了解:PyTorchJob、GPU 调度、Dockerfile 编写
前端工程师基础:编写 Dockerfile、理解 Deployment
嵌入式工程师基础:了解 OTA 服务的 API

五、成本预估(月度)

初期(Phase 1-2,10 台以内机器人)

资源规格数量月费(元)
ACK 托管版免费10
CPU 节点4C8G3~900
GPU 推理节点A10 × 12~6,000
NAS 存储500GB1~500
SLB按量2~200
总计~7,600

训练成本(按需使用,非固定月费):

任务GPU时长/月费用
视觉模型训练V100 × 4 (Spot)40 小时~800
语言模型微调A100 × 2 (Spot)20 小时~1,200
仿真测试V100 × 1 (Spot)60 小时~300
训练总计~2,300

成长期(100+ 台机器人)

按比例扩展 CPU/GPU 节点池,启用 Cluster Autoscaler 实现弹性。 推理服务 HPA 根据请求量自动扩缩。


六、关键决策点

1. 自建 vs 托管

强烈推荐 ACK 托管版——初创公司不要花时间在集群运维上。

2. 单集群 vs 多集群

初期单集群即可(通过 Namespace 隔离)。当满足以下条件再考虑多集群:

  • 需要多地域部署
  • 单集群节点超过 100
  • 合规要求强隔离

3. 推理服务方案选择

方案适用场景
vLLM纯文本 LLM(对话、指令理解)
Triton多框架混合(视觉+语言+控制)
自建 FastAPI + PyTorch简单模型、快速迭代

初创公司建议:先用 FastAPI 快速验证,规模化后切换 Triton/vLLM。

4. 边缘与云端的分工

云端(K8s)                    边缘(机器人端)
┌──────────────────┐          ┌──────────────────┐
│ 大模型推理        │ ◄────── │ 请求云端推理      │
│ (LLM, VLM)      │          │ (复杂任务)       │
│                  │          │                  │
│ 模型训练         │ ────────►│ 模型下载 (OTA)   │
│                  │          │                  │
│ 数据存储/处理     │ ◄────── │ 数据上传         │
│                  │          │                  │
│ 远程监控/诊断     │ ◄────── │ 状态上报         │
└──────────────────┘          ├──────────────────┤
                              │ 本地推理          │
                              │ (小模型, 低延迟)  │
                              │ 运动控制          │
                              │ 安全保护          │
                              └──────────────────┘

原则

  • 低延迟、安全关键的放边缘
  • 大模型、数据密集的放云端
  • 通过 OTA 持续更新边缘模型

七、风险与应对

风险概率影响应对措施
GPU 资源不足训练延迟多地域 Spot + 预留实例
推理延迟过高用户体验差模型量化 + 边缘推理分流
集群故障服务中断多 AZ + PDB + 自动修复
成本超支资金压力资源监控告警 + 定期优化
数据泄露合规风险加密 + RBAC + 审计日志
人员流动知识断层文档化 + GitOps + IaC

下一步

07 - AI 公司 PV/PVC 存储规划