Milvus升级

2025-02-06 484
Milvus

类型:向量数据库

简介:存储、索引和管理由深度神经网络和机器学习(ML)模型生成的大规模嵌入向量。

本文将介绍如何使用Milvus Operator升级Milvus集群以及Milvus Standalone。随着Milvus的不断更新,用户需要保持系统的最新版本,以确保性能和兼容性。

一、使用Milvus Operator升级Milvus集群

1、升级Milvus操作符

首先需要升级Milvus操作符。运行以下命令将操作符版本升级到 v1.0.1。

Milvus升级

升级Milvus操作符后,可以选择以下几种升级方法:

(1)滚动升级

如果当前的Milvus版本是v2.2.3或更高版本,可以选择进行滚动升级,以便在升级过程中尽量减少服务停机时间。

(2)通过更改映像进行升级

如果Milvus版本是v2.2.3之前的次版本,建议直接通过更改映像版本来进行升级。此方式会有短暂的停机时间,但操作较为简单。

(3)迁移元数据并升级

如果版本是v2.1.x,迁移元数据是升级到v2.5.1前的必要步骤。

2、滚动升级

自Milvus 2.2.3版本起,Milvus支持协调器处于主动待机模式,启用滚动升级功能。在协调器升级时,Milvus能够继续响应传入请求。相比于早期版本,升级过程将不再需要完全移除协调器,减少了停机时间。

由于滚动升级默认是禁用的,需要在配置文件中明确启用此功能。

Milvus升级

(1)启用滚动升级

在配置文件中,将spec.components.enableRollingUpdate设置为true,并确保spec.components.image设置为目标Milvus版本。

例如,修改如下:

Milvus升级

(2)配置并执行升级

如果希望缩短升级时间,可以将spec.components.imageUpdateMode设置为all,这将使Milvus同时更新所有pod的映像。还可以选择将spec.components.imageUpdateMode设置为rollingDowngrade,以便将协调器pod映像替换为较低版本。

Milvus升级

配置文件修改完成后,保存为 milvusupgrade.yml,并使用以下命令执行补丁:

kubectl patch -f milvusupgrade.yml

3、通过更改映像升级

如果希望通过更改映像进行升级,可以按照以下步骤操作:

创建并编辑milvusupgrade.配置文件,指定新的Milvus映像版本。

Milvus升级

执行升级命令:

kubectl patch -f milvusupgrade.

这种方法适用于快速升级,但会造成短暂的服务停机。

4、迁移元数据

自Milvus 2.2.0起,Milvus的元数据与早期版本不兼容。因此升级到v2.5.1之前需要进行元数据迁移。假设正在将Milvus从v2.1.4 升级到v2.5.1,以下是迁移的步骤。

(1)创建迁移配置文件

创建一个 . 配置文件,设置name、sourceVersion和targetVersion。例如以下配置将Milvus从v2.1.4升级到v2.5.1:

Milvus升级

(2)应用新配置

运行以下命令应用新配置:

Milvus升级

(3)检查迁移状态

执行以下命令检查迁移状态:

kubectl describe milvus release-name

如果输出中的状态为ready,则表示迁移成功。也可以使用以下命令检查所有pod状态是否为ready,以确保迁移过程无误:

kubectl get pod

(4)删除迁移文件

升级成功后,记得删除 文件中的my-release-upgrade,以清理不再需要的配置。

二、使用Milvus Operator升级Milvus Standalone

1、升级Milvus操作符

升级Milvus操作符与上文介绍的集群升级相同,执行以下命令:

Milvus升级

将Milvus操作符升级到最新版本后,有以下选择:

(1)将Milvus从v2.2.3或更高版本升级到2.5.1,可以进行滚动升级。

(2)将Milvus从v2.2.3之前的次版本升级到2.5.1,建议你通过更改映像版本来升级Milvus。

(3)将Milvus从v2.1.x升级到2.5.1,需要在实际升级前迁移元数据。

2、进行滚动升级

自Milvus 2.2.3起,你可以将Milvus协调器配置为主动待机模式工作,并为它们启用滚动升级功能,这样Milvus就能在协调器升级期间响应传入的请求。在以前的版本中,升级时需要移除协调器,然后再创建协调器,这可能会导致服务出现一定的停机时间。

基于Kubernetes提供的滚动更新功能,Milvus操作符会根据部署的依赖关系强制执行有序更新。此外,Milvus还实施了一种机制,确保其组件在升级期间与依赖于它们的组件保持兼容,从而大大减少了潜在的服务停机时间。

滚动升级功能默认为禁用。你需要通过配置文件明确启用它。

Milvus升级

在上述配置文件中,将spec.components.enableRollingUpdate设置为true ,将spec.components.image设置为所需的Milvus版本。

默认情况下,Milvus会以有序的方式对协调器进行滚动升级,即逐个替换协调器pod映像。要缩短升级时间,可以考虑将spec.components.imageUpdateMode设置为all ,这样Milvus就会同时替换所有pod映像。

Milvus升级

可以将spec.components.imageUpdateMode设置为rollingDowngrade ,让Milvus用较低的版本替换协调器pod映像。

Milvus升级

然后将配置保存为YAML文件(例如milvusupgrade.yml ),并将此配置文件修补到Milvus实例中,如下所示:

kubectl patch -f milvusupgrade.yml

3、通过更改映像升级Milvus

在正常情况下,可以通过更改映像将你的Milvus升级到最新版本。但要注意的是,用这种方法升级Milvus时会有一定的停机时间。

编写如下配置文件,并将其保存为milvusupgrade.yaml:

Milvus升级

然后运行以下命令执行升级:

kubectl patch -f milvusupgrade.yaml

4、迁移元数据

自Milvus 2.2.0起,元数据与以前版本的元数据不兼容。以下示例片段假定从Milvus 2.1.4升级到Milvus v2.5.1。

(1)创建用于元数据迁移的.yaml 文件

创建元数据迁移文件。下面是一个示例。需要在配置文件中指定name 、sourceVersion和targetVersion 。下面的示例将name设置为my-release-upgrade ,将sourceVersion设置为v2.1.4 ,将targetVersion 设置为v2.5.1 。Milvus实例将从v2.1.4升级到 v2.5.1。

Milvus升级

(2)应用新配置

运行以下命令应用新配置。

Milvus升级

(3)检查元数据迁移状态

运行以下命令检查元数据迁移的状态。

kubectl describe milvus release-name

输出中的状态为ready意味着元数据迁移成功。或者也可以运行kubectl get pod检查所有pod。如果所有pod都是ready ,则元数据迁移成功。

(4)删除my-release-upgrade

升级成功后需要删除YAML文件中的my-release-upgrade 。

  • 广告合作

  • QQ群号:4114653

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。
MindNow
上一篇: MindNow账号注销
MediaWiki
下一篇: Milvus数据安全