Upgrade von Milvus Standalone mit Helm Chart
Diese Anleitung beschreibt, wie Sie Ihr Milvus Standalone mit Milvus Helm Charts aufrüsten.
Voraussetzungen
- Helm-Version >= 3.14.0
- Kubernetes-Version >= 1.20.0
Seit Milvus-Helm Chart Version 4.2.21 haben wir pulsar-v3.x Chart als Abhängigkeit eingeführt. Aus Gründen der Abwärtskompatibilität aktualisieren Sie bitte Ihren Helm auf v3.14 oder eine neuere Version und fügen Sie unbedingt die Option --reset-then-reuse-values
hinzu, wenn Sie helm upgrade
verwenden.
Prüfen Sie die Milvus-Version
Führen Sie die folgenden Befehle aus, um neue Milvus-Versionen zu überprüfen.
$ helm repo update
$ helm search repo zilliztech/milvus --versions
Das Milvus Helm Charts Repo unter https://milvus-io.github.io/milvus-helm/
wurde archiviert und Sie können weitere Updates von https://zilliztech.github.io/milvus-helm/
wie folgt erhalten:
helm repo add zilliztech https://zilliztech.github.io/milvus-helm
helm repo update zilliztech
# upgrade existing helm release
helm upgrade my-release zilliztech/milvus --reset-then-reuse-values
Das archivierte Repo ist immer noch für die Charts bis 4.0.31 verfügbar. Für spätere Versionen verwenden Sie stattdessen das neue Repo.
NAME CHART VERSION APP VERSION DESCRIPTION
zilliztech/milvus 4.1.34 2.4.5 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.33 2.4.4 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.32 2.4.3 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.31 2.4.1 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.30 2.4.1 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.29 2.4.0 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.24 2.3.11 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.23 2.3.10 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.22 2.3.10 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.21 2.3.10 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.20 2.3.10 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.18 2.3.10 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.18 2.3.9 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.17 2.3.8 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.16 2.3.7 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.15 2.3.5 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.14 2.3.6 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.13 2.3.5 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.12 2.3.5 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.11 2.3.4 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.10 2.3.3 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.9 2.3.3 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.8 2.3.2 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.7 2.3.2 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.6 2.3.1 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.5 2.3.1 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.4 2.3.1 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.3 2.3.1 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.2 2.3.1 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.1 2.3.0 Milvus is an open-source vector database built ...
zilliztech/milvus 4.1.0 2.3.0 Milvus is an open-source vector database built ...
Sie können den Upgrade-Pfad für Ihren Milvus wie folgt wählen:
Führen Sie ein Upgrade von Milvus mit Helm für ein Upgrade von einer Nebenversion vor v2.2.3 auf v2.5.0-betadurch.
Migrieren Sie die Metadaten vor dem Upgrade von Milvus v2.1.x auf v2.5.0-beta.
Upgrade von Milvus mit Helm
Um Milvus von einer Nebenversion vor v2.2.3 auf die neueste Version zu aktualisieren, führen Sie die folgenden Befehle aus:
helm repo update
helm upgrade my-release milvus/milvus --reset-then-reuse-values --version=4.1.24 # use the helm chart version here
Verwenden Sie die Helm-Diagrammversion im vorangegangenen Befehl. Einzelheiten dazu, wie Sie die Helm-Chart-Version erhalten, finden Sie unter Prüfen der Milvus-Version.
Migrieren Sie die Metadaten
Seit Milvus 2.2.0 sind die Metadaten nicht mehr mit denen früherer Versionen kompatibel. Die folgenden Beispielausschnitte gehen von einem Upgrade von Milvus 2.1.4 auf Milvus 2.2.0 aus.
1. Prüfen Sie die Milvus-Version
Führen Sie $ helm list
aus, um die Version Ihrer Milvus-Anwendung zu überprüfen. Sie können sehen, dass APP VERSION
2.1.4 ist.
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
my-release default 1 2022-11-21 15:41:25.51539 +0800 CST deployed milvus-3.2.18 2.1.4
2. Prüfen Sie die laufenden Pods
Führen Sie $ kubectl get pods
aus, um die laufenden Pods zu überprüfen. Sie können die folgende Ausgabe sehen.
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 84s
my-release-milvus-standalone-75c599fffc-6rwlj 1/1 Running 0 84s
my-release-minio-744dd9586f-qngzv 1/1 Running 0 84s
3. Überprüfen Sie das Image-Tag
Überprüfen Sie das Image-Tag für den Pod my-release-milvus-proxy-6c548f787f-scspp
. Sie können sehen, dass die Version Ihres Milvus-Clusters v2.1.4 ist.
$ kubectl get pods my-release-milvus-proxy-6c548f787f-scspp -o=jsonpath='{$.spec.containers[0].image}'
# milvusdb/milvus:v2.1.4
4. Migrieren Sie die Metadaten
Eine wichtige Änderung in Milvus 2.2 ist die Metadatenstruktur der Segmentindizes. Daher müssen Sie Helm verwenden, um die Metadaten beim Upgrade von Milvus von v2.1.x auf v2.2.0 zu migrieren. Hier finden Sie ein Skript, mit dem Sie Ihre Metadaten sicher migrieren können.
Dieses Skript gilt nur für Milvus, das auf einem K8s-Cluster installiert ist. Wenn während des Prozesses ein Fehler auftritt, sollten Sie zunächst mit der Rollback-Operation auf die vorherige Version zurückkehren.
In der folgenden Tabelle sind die Operationen aufgeführt, die Sie für die Metamigration durchführen können.
Parameter | Beschreibung | Standardwert | Erforderlich |
---|---|---|---|
i | Der Name der Milvus-Instanz. | None | True |
n | Der Namespace, in dem Milvus installiert ist. | default | Falsch |
s | Die Quellversion von Milvus. | None | True |
t | Die Zielversion von Milvus. | None | Wahr |
r | Der Wurzelpfad von Milvus meta. | by-dev | False |
w | Das neue Milvus-Bild-Tag. | milvusdb/milvus:v2.2.0 | False |
m | Das Meta-Migrationsbild-Tag. | milvusdb/meta-migration:v2.2.0 | False |
o | Der Meta-Migrationsvorgang. | migrate | False |
d | Ob der Migrations-Pod nach Abschluss der Migration gelöscht werden soll. | false | False |
c | Die Speicherklasse für die Metamigration pvc. | default storage class | False |
e | Der von milvus verwendete etcd enpoint. | etcd svc installed with milvus | False |
1. Migrieren Sie die Metadaten
- Laden Sie das Migrationsskript herunter.
- Stoppen Sie die Milvus-Komponenten. Jede Live-Sitzung im Milvus etcd kann einen Migrationsfehler verursachen.
- Erstellen Sie ein Backup für die Milvus-Metadaten.
- Migrieren Sie die Milvus-Metadaten.
- Starten Sie die Milvus-Komponenten mit einem neuen Image.
2. Upgrade von Milvus von v2.1.x auf 2.5.0-beta
Die folgenden Befehle gehen davon aus, dass Sie Milvus von v2.1.4 auf 2.5.0-beta aktualisieren. Ändern Sie sie auf die Versionen, die Ihren Bedürfnissen entsprechen.
Geben Sie den Namen der Milvus-Instanz, die Quell-Milvus-Version und die Ziel-Milvus-Version an.
./migrate.sh -i my-release -s 2.1.4 -t 2.5.0-beta
Geben Sie den Namespace mit
-n
an, wenn Ihr Milvus nicht im Standard-Namespace von K8s installiert ist../migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.0-beta
Geben Sie den Wurzelpfad mit
-r
an, wenn Ihr Milvus mit dem benutzerdefiniertenrootpath
installiert ist../migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.0-beta -r by-dev
Geben Sie das Bild-Tag mit
-w
an, wenn Ihr Milvus mit einem benutzerdefiniertenimage
installiert ist../migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.0-beta -r by-dev -w milvusdb/milvus:v2.5.0-beta
Legen Sie
-d true
fest, wenn Sie den Migrations-Pod automatisch entfernen möchten, nachdem die Migration abgeschlossen ist../migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.0-beta -w milvusdb/milvus:v2.5.0-beta -d true
Machen Sie einen Rollback und migrieren Sie erneut, wenn die Migration fehlschlägt.
./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.0-beta -r by-dev -o rollback -w milvusdb/milvus:v2.1.1 ./migrate.sh -i my-release -n milvus -s 2.1.4 -t 2.5.0-beta -r by-dev -o migrate -w milvusdb/milvus:v2.5.0-beta