MicrocosmWorks创新与构建数字宇宙
关于我们联系我们
MicrocosmWorks创新与构建数字宇宙

提供重要的IT解决方案。我们热衷于技术、安全,并通过可靠、创新的IT基础设施帮助企业成长。

[email protected]
+91 7011868196
New Delhi, India

AI增长中心

AI中心初创创新企业加速器

解决方案

所有解决方案健康与健身应用AI视频平台AI代理开发

资源

见解行业指南用例蓝图架构模式案例研究

公司

关于我们联系我们我们的工作

服务

数字咨询云基础设施SaaS 开发AI 开发视频技术
ERP 开发Zoho 定制Odoo 开发Salesforce 集成定制 CRM 开发
QuickBooks 集成物联网解决方案区块链开发
网络安全咨询IT 支持 - L3

© 2026 MicrocosmWorks. 保留所有权利。

隐私政策服务条款
返回案例研究
Vector Databases发布于 June 22, 2026 · 更新于 June 22, 2026

基于 Kubernetes 的 Milvus 自动扩缩容,使用 EC2 和 S3 支持的持久存储

一个拥有快速增长向量数据(用于搜索、推荐和 RAG 的 embeddings)的 AI 平台,需要其 Milvus 向量数据库能够根据查询负载和数据量自动扩缩容,并使用持久、经济高效的存储,即使 Pod 重启或节点被替换也不会丢失数据。

讨论您的项目
milvus-autoscaling-kubernetes-s3.webp
Vector Databases
Domain
11
Technologies
6
Key Results
Delivered
Status

挑战

在生产环境中大规模运行 Milvus 带来了多项基础设施挑战:

  • 固定容量 — 静态 Milvus 部署无法应对高峰时段 10 倍的查询负载峰值
  • 数据丢失风险 — 临时存储上的 Pod 重启会导致大型集合的索引重建耗时数小时
  • 成本效益低下 — 为峰值负载过度预配意味着 70% 的时间都在为闲置计算付费
  • 存储成本 — 绑定到实例的块存储卷对于多 TB 的向量数据集而言成本高昂
  • 索引重建 — 节点替换后重新索引数百万个向量会造成数小时的停机时间
  • 多可用区 (Multi-AZ) 持久性 — 单可用区 (Single-AZ) 存储无法在可用区故障中幸存

我们的解决方案

我们部署了基于 Kubernetes (EKS) 的 Milvus,为查询节点配置了水平 Pod 自动扩缩容 (Horizontal Pod Autoscaling),为计算配置了集群自动扩缩容 (Cluster Autoscaler),并使用 Amazon S3 作为持久存储后端——从而消除了数据丢失风险,并将存储成本降低了约 80%。

架构

  • 编排: Amazon EKS (Elastic Kubernetes Service)
  • 计算: 由 Cluster Autoscaler 管理的 EC2 实例(混合实例类型)
  • 向量数据库: 通过 Helm chart 以分布式模式部署的 Milvus
  • 对象存储: Amazon S3,用于段文件、索引文件和 binlog 持久化
  • 元数据: etcd 集群,用于 Milvus 协调和元数据
  • 消息队列: 用于 Milvus 日志管道的消息流
  • 监控: Prometheus + Grafana,用于 Milvus 指标和自动扩缩容信号

Kubernetes 上的 Milvus 分布式架构

组件部署

Milvus 以分布式模式运行,具有专用节点类型,每个类型都作为具有独立扩缩容能力的 Kubernetes 工作负载进行部署:

  • 代理节点 (Proxy Nodes) — 处理客户端连接和请求路由
  • 查询节点 (Query Nodes) — 执行向量搜索并将段加载到内存中
  • 数据节点 (Data Nodes) — 处理写入路径并将段刷新到 S3
  • 索引节点 (Index Nodes) — 构建向量索引并写入 S3
  • 协调器 (Coordinator) — 集群协调和时间戳分配
  • etcd — 元数据存储和服务发现
  • 消息队列 (Message Queue) — 日志流和预写日志

水平 Pod 自动扩缩容 (HPA)

查询节点自动扩缩容

查询节点是主要的扩缩容目标——它们将向量段加载到内存中并执行搜索。扩缩容由多种指标驱动,包括 CPU 利用率、内存利用率、查询队列深度和 P99 查询延迟。HPA 配置了适当的最小/最大副本数、用于处理峰值的快速扩容以及避免抖动的逐步缩容。

索引节点自动扩缩容

索引节点根据待处理的索引构建作业进行扩缩容——当构建队列有待处理项时扩容,空闲时缩容。

EC2 集群自动扩缩容

实例策略

  • 节点组: 多个具有不同实例类型的节点组,用于成本优化
  • 查询工作负载: 内存优化型实例,用于内存中的向量段
  • 索引工作负载: 计算优化型实例,用于 CPU 密集型索引构建
  • Spot 实例: 索引节点和非关键数据节点在 Spot 实例上运行,以实现显著节省
  • 按需实例 (On-Demand): 查询节点和协调器在按需实例上运行以确保稳定性

扩缩容行为

当 HPA 创建无法调度的 Pod 时,Cluster Autoscaler 会在适当的节点组中预置新的 EC2 实例。新的查询节点随后将它们分配的段从 S3 加载到内存中并开始提供查询服务,整个扩容过程在数分钟内完成。

S3 支持的持久存储

为什么选择 S3 而不是块存储

S3 为 Milvus 提供了优于块存储的显著优势:

  • 大型数据集的存储成本降低约 80%
  • 具有内置多可用区 (Multi-AZ) 复制功能的11个9的持久性
  • 无限扩容,无需手动调整卷大小
  • Pod 独立性 — 数据始终可用,不受 Pod 或节点生命周期的影响
  • 无可用区 (AZ) 锁定 — 数据可从任何可用区访问

S3 数据流

  1. 写入路径: 数据节点在内存中缓冲插入,然后将密封段刷新到 S3
  2. 索引构建: 索引节点从 S3 读取段,构建索引,然后将索引文件写回 S3
  3. 查询路径: 查询节点从 S3 下载段和索引,加载到内存中,并提供查询服务
  4. 恢复: Pod 重启时,查询节点从 S3 重新下载分配的段(无数据丢失)

S3 性能优化

  • 段大小调整 平衡 S3 请求成本与数据新鲜度
  • 本地 SSD 缓存 在 NVMe 实例存储上,避免了对热点段的重复 S3 读取
  • 并行下载 实现查询节点的快速启动
  • 生命周期策略 将旧数据归档到更便宜的存储层

监控与可观测性

部署通过 Prometheus 和 Grafana 提供了全面的监控:

  • 查询性能 — 延迟分布、QPS、缓存命中率
  • 集群概览 — 节点数量、Pod 状态、资源利用率
  • 存储健康 — S3 使用情况、段计数、刷新率
  • 自动扩缩容事件 — HPA 事件、节点扩缩容、Pod 调度延迟
  • 告警 — 针对高延迟、OOM 风险、刷新失败和容量限制的自动化告警

主要特点

  1. 查询节点 HPA — 基于 CPU、内存、延迟和队列深度的自动扩缩容
  2. EC2 Cluster Autoscaler — 混合实例类型的动态节点预置
  3. S3 持久性 — 11个9的持久性,比块存储便宜约 80%,可抵御 AZ 故障
  4. Spot 实例 — 索引和数据节点在 Spot 实例上运行,显著节省计算成本
  5. 本地 SSD 缓存 — NVMe 缓存消除了对热点段的重复 S3 读取
  6. 零停机恢复 — Pod 重启时从 S3 重新加载段,无数据丢失
  7. 多可用区 (Multi-AZ) — S3 存储 + 多可用区节点组,实现全面的 AZ 故障容忍
  8. 可观测性 — Prometheus + Grafana,提供 Milvus 特定指标和自动扩缩容可见性

成果

存储成本:相比块存储部署降低约 80%
计算成本:通过 Spot 实例和合理规模的自动扩缩容降低约 40%
查询延迟:在 10 倍负载峰值期间,P99 保持在 200ms 以下
恢复时间:Pod 重启到开始提供查询服务在 30-90 秒内(S3 段重新加载)

技术栈

MilvusAmazon EKSKubernetes HPACluster AutoscalerAmazon EC2Amazon S3etcdPrometheusGrafanaHelmNVMe Instance Storage

caseStudyDetail.more 案例研究

探索更多我们的技术实施案例

Web Scraping

AI驱动的博客内容抓取与生成平台

一家媒体公司需要一个智能内容平台,能够通过抓取现有网页内容、使用 AI 进行分析,并从提取的数据中生成原创的、SEO优化的博客文章,从而实现博客内容创建的自动化。

阅读案例研究
Web Scraping

自动化 B2B 供应商数据采集平台,具备反检测与 IP 轮换功能

一个采购团队需要通过大规模、可靠且不被屏蔽地从 B2B 交易平台收集结构化商业数据,以构建一个涵盖 19 多个产品类别和 50 多个国家的全面供应商数据库。

阅读案例研究

常见问题

MicrocosmWorks configured horizontal pod autoscaling with custom metrics from Milvus's built-in memory usage exporter, triggering scale-out events when any query node exceeds 75% memory utilization. Collection segments are automatically redistributed across new nodes using Milvus's segment manager, preventing any single node from becoming a bottleneck.

MicrocosmWorks selected S3-backed storage using MinIO as the object storage layer because it decouples storage from compute, allowing query nodes to scale independently without provisioning new EBS volumes. This architecture reduces storage costs by approximately 60% compared to gp3 EBS volumes while maintaining sub-100ms segment load times from S3.

MicrocosmWorks configured the deployment with replica sets for each Milvus component, including query nodes, index nodes, and data nodes, with pod disruption budgets ensuring minimum availability during rolling updates. Since all persistent data resides in S3, a failed node's replacement can immediately access all segments without data migration.

MicrocosmWorks found that r6i.2xlarge instances provide the optimal cost-to-performance ratio for Milvus query workloads, offering 64GB of memory for in-memory segment caching at a competitive spot price. For GPU-accelerated index building, g5.xlarge instances with NVIDIA A10G GPUs reduced index build times by 8x compared to CPU-only builds.

MicrocosmWorks delivers Kubernetes infrastructure projects at rates of $30-$50/hr, with a Milvus autoscaling deployment including Helm chart customization, HPA configuration, S3 integration, and monitoring setup typically requiring 150-250 hours. Ongoing managed support for cluster optimization and upgrades is available at the same hourly rates.

准备好转型您的业务了吗?

让我们讨论如何将类似的解决方案应用到您的挑战中。

联系我们caseStudyDetail.viewAllCaseStudies
持久性:在多次节点替换和 AZ 故障转移中实现零数据丢失
规模:处理了 50M+ 向量,查询节点从 2 个自动扩缩容到 20 个
Web Development

自定义 WordPress 主题重新开发

Krystelis 需要将其现有的 WordPress 网站从预制主题重建为完全自定义的 WordPress 主题,在保持原有设计的同时,获得对代码库的完全控制,以实现更好的定制性、性能和可维护性。

阅读案例研究