Milvus Semantic Cache
本指南涵盖在 Kubernetes 中部署 Milvus 作为 Semantic Router 的 Semantic Cache 后端。与默认的 memory cache 相比,Milvus 提供了持久化、可扩展的向量存储。
Milvus 是可选的。Router 开箱即用,默认使用 memory backend。当您需要持久化、水平扩展或在 Router 副本之间共享缓存时,请使用 Milvus。
部署选项
有两种方法可用:
- Helm: 快速启动和参数化部署
- Milvus Operator: 生产级生命周期管理、滚动升级、健康检查和依赖编排
前提条件
- 配置了
kubectl的 Kubernetes 集群 - 可用的默认
StorageClass - 安装了 Helm 3.x
默认 Helm 值启用了 ServiceMonitor 以进行 Prometheus 指标收集,这需要先安装 Prometheus Operator。
对于没有 Prometheus Operator 的测试,请使用 --set metrics.serviceMonitor.enabled=false 禁用 ServiceMonitor(参见下面的部署命令)。
使用 Helm 部署
单机模式 (Standalone Mode)
适用于开发和小规模部署:
helm repo add milvus https://zilliztech.github.io/milvus-helm/
helm repo update
无 Prometheus Operator (用于测试/开发):
helm install milvus-semantic-cache milvus/milvus \
--set cluster.enabled=false \
--set etcd.replicaCount=1 \
--set minio.mode=standalone \
--set pulsar.enabled=false \
--set metrics.serviceMonitor.enabled=false \
--namespace vllm-semantic-router-system --create-namespace
有 Prometheus Operator (用于带监控的生产环境):
helm install milvus-semantic-cache milvus/milvus \
--set cluster.enabled=false \
--set etcd.replicaCount=1 \
--set minio.mode=standalone \
--set pulsar.enabled=false \
--namespace vllm-semantic-router-system --create-namespace
集群模式 (Cluster Mode)
推荐用于具有高可用性的生产环境:
helm repo add milvus https://zilliztech.github.io/milvus-helm/
helm repo update
Milvus 2.4+ 默认使用 Pulsar v3 。下面的值禁用了旧版 Pulsar 以避免冲突。
无 Prometheus Operator (用于测试):
helm install milvus-semantic-cache milvus/milvus \
--set cluster.enabled=true \
--set etcd.replicaCount=3 \
--set minio.mode=distributed \
--set pulsar.enabled=false \
--set pulsarv3.enabled=true \
--set metrics.serviceMonitor.enabled=false \
--namespace vllm-semantic-router-system --create-namespace
有 Prometheus Operator (用于带监控的生产环境):
helm install milvus-semantic-cache milvus/milvus \
--set cluster.enabled=true \
--set etcd.replicaCount=3 \
--set minio.mode=distributed \
--set pulsar.enabled=false \
--set pulsarv3.enabled=true \
--namespace vllm-semantic-router-system --create-namespace
使用 Milvus Operator 部署
-
按照 官方说明 安装 Milvus Operator
-
应用自定义资源 (Custom Resource):
单机 (Standalone):
kubectl apply -n vllm-semantic-router-system -f - <<EOF
apiversion: milvus.io/v1beta1
kind: Milvus
metadata:
name: milvus-standalone
spec:
mode: standalone
components:
disableMetrics: false
dependencies:
storage:
inCluster:
values:
mode: standalone
deletionPolicy: Delete
pvcDeletion: true
etcd:
inCluster:
values:
replicaCount: 1
config: {}
EOF
集群 (Cluster):
kubectl apply -n vllm-semantic-router-system -f - <<EOF
apiversion: milvus.io/v1beta1
kind: Milvus
metadata:
name: milvus-cluster
spec:
mode: cluster
components:
disableMetrics: false
dependencies:
storage:
inCluster:
values:
mode: distributed
deletionPolicy: Retain
pvcDeletion: false
etcd:
inCluster:
values:
replicaCount: 3
pulsar:
inCluster:
values:
broker:
replicaCount: 1
config: {}
EOF