使用 Helm Chart 升级 Milvus 集群
本指南介绍了如何使用 Helm 图表将您的 Milvus 集群从 v2.5.x 升级到 v3.0-beta。
开始之前
v3.0-beta 的新功能
从 Milvus 2.5.x 升级到 3.0-beta 涉及重大的架构变更:
- 协调器整合:旧版中独立的协调器(
dataCoord、queryCoord、indexCoord)已整合为单一mixCoord - 新组件:引入流式处理节点(Streaming Node)以增强数据处理能力
- 组件移除:已移除并整合
indexNode
此升级流程可确保顺利迁移至新架构。有关架构变更的更多信息,请参阅《Milvus 架构概述》。
系统要求
系统要求:
- Helm 版本 >= 3.14.0
- Kubernetes 版本 >= 1.20.0
- 通过 Helm Chart 部署的 Milvus 集群
兼容性要求:
- Milvus v2.6.0-rc1 与 v3.0-beta不兼容。不支持从候选版本直接升级。
- 如果您当前正在运行 v2.6.0-rc1 且需要保留数据,请参考此社区指南获取迁移帮助。
- 在升级至 v3.0-beta 之前,您必须先升级至 v2.5.16 或更高版本,并启用
mixCoordinator功能。
消息队列限制:升级至 Milvus v3.0-beta 时,您必须保留当前的消息队列选择。升级过程中不支持在不同的消息队列系统之间切换。未来版本将支持更改消息队列系统。
自 Milvus Helm 图表版本 4.2.21 起,我们引入了 pulsar-v3.x 图表作为依赖项。为确保向后兼容性,请将您的 Helm 升级至 v3.14 或更高版本,并且每次使用 `
helm upgrade` 时,请务必添加 `--reset-then-reuse-values ` 选项。
升级流程
步骤 1:升级 Helm Chart
首先,将您的 Milvus Helm 图表升级至 5.0.22 版本:
helm repo add zilliztech https://zilliztech.github.io/milvus-helm
helm repo update zilliztech
位于
https://milvus-io.github.io/milvus-helm/ 的 Milvus Helm Charts 仓库现已归档。请使用新仓库https://zilliztech.github.io/milvus-helm/ 获取 4.0.31 及更高版本的图表。
要检查 Helm Chart 版本与 Milvus 版本的兼容性:
helm search repo zilliztech/milvus --versions
本指南假设您正在安装最新版本。如果您需要安装特定版本,请相应地指定--version 参数。
步骤 2:使用 mixCoordinator 升级至 v2.5.16
检查您的集群当前是否使用独立的协调器:
kubectl get pods
若看到独立的协调器 Pod(datacoord 、querycoord 、indexcoord ),请升级至 v2.5.16 并启用mixCoordinator :
helm upgrade my-release zilliztech/milvus \
--set image.all.tag="v2.5.16" \
--set mixCoordinator.enabled=true \
--set rootCoordinator.enabled=false \
--set indexCoordinator.enabled=false \
--set queryCoordinator.enabled=false \
--set dataCoordinator.enabled=false \
--reset-then-reuse-values \
--version=4.2.58
如果您的集群已经使用mixCoordinator ,只需升级镜像:
helm upgrade my-release zilliztech/milvus \
--set image.all.tag="v2.5.16" \
--reset-then-reuse-values \
--version=4.2.58
等待升级完成:
# Verify all pods are ready
kubectl get pods
步骤 3:升级至 v3.0-beta
当 v2.5.16 成功运行并启用mixCoordinator 后,请升级至 v3.0-beta:
helm upgrade my-release zilliztech/milvus \
--set image.all.tag="v3.0-beta" \
--set streaming.enabled=true \
--set indexNode.enabled=false \
--reset-then-reuse-values \
--version=5.0.22
验证升级
确认您的集群正在运行新版本:
# Check pod status
kubectl get pods
# Verify Helm release
helm list