milvus-logo
LFAI
Home
  • Leitfaden für die Verwaltung
    • Upgrade

Milvus Cluster mit Milvus Operator aufrüsten

Diese Anleitung beschreibt, wie Sie Ihren Milvus-Cluster mit Milvus Operator aktualisieren.

Aktualisieren Sie Ihren Milvus Operator

Führen Sie den folgenden Befehl aus, um die Version Ihres Milvus Operators auf v1.0.1 zu aktualisieren.

helm repo add zilliztech-milvus-operator https://zilliztech.github.io/milvus-operator/
helm repo update zilliztech-milvus-operator
helm -n milvus-operator upgrade milvus-operator zilliztech-milvus-operator/milvus-operator

Sobald Sie Ihren Milvus-Operator auf die neueste Version aktualisiert haben, haben Sie die folgenden Möglichkeiten:

Durchführen eines rollenden Upgrades

Seit Milvus 2.2.3 können Sie Milvus-Koordinatoren so konfigurieren, dass sie im Aktiv-Standby-Modus arbeiten und die Funktion des rollenden Upgrades für sie aktivieren, so dass Milvus auf eingehende Anfragen während der Koordinator-Upgrades reagieren kann. In früheren Versionen müssen die Koordinatoren während eines Upgrades entfernt und neu erstellt werden, was zu einer gewissen Ausfallzeit des Dienstes führen kann.

Auf der Grundlage der von Kubernetes bereitgestellten rollierenden Aktualisierungsfunktionen erzwingt der Milvus-Operator eine geordnete Aktualisierung der Bereitstellungen entsprechend ihren Abhängigkeiten. Darüber hinaus implementiert Milvus einen Mechanismus, der sicherstellt, dass seine Komponenten während des Upgrades mit den von ihnen abhängigen Komponenten kompatibel bleiben, wodurch potenzielle Ausfallzeiten des Dienstes erheblich reduziert werden.

Die Funktion "Rolling Upgrade" ist standardmäßig deaktiviert. Sie müssen sie explizit über eine Konfigurationsdatei aktivieren.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  components:
    enableRollingUpdate: true
    imageUpdateMode: rollingUpgrade # Default value, can be omitted
    image: milvusdb/milvus:v2.5.0-beta

In der obigen Konfigurationsdatei setzen Sie spec.components.enableRollingUpdate auf true und spec.components.image auf die gewünschte Milvus-Version.

Standardmäßig führt Milvus rollende Upgrades für Koordinatoren in einer geordneten Weise durch, bei der die Pod-Images der Koordinatoren nacheinander ersetzt werden. Um die Upgrade-Zeit zu verkürzen, sollten Sie spec.components.imageUpdateMode auf all setzen, damit Milvus alle Pod-Images gleichzeitig ersetzt.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  components:
    enableRollingUpdate: true
    imageUpdateMode: all
    image: milvusdb/milvus:v2.5.0-beta

Sie können spec.components.imageUpdateMode auf rollingDowngrade setzen, damit Milvus die Coordinator-Pod-Images durch eine niedrigere Version ersetzt.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  components:
    enableRollingUpdate: true
    imageUpdateMode: rollingDowngrade
    image: milvusdb/milvus:<some-old-version>

Speichern Sie dann Ihre Konfiguration als YAML-Datei (z.B. milvusupgrade.yml) und patchen Sie diese Konfigurationsdatei wie folgt in Ihre Milvus-Instanz:

kubectl patch -f milvusupgrade.yml

Upgrade von Milvus durch Änderung des Images

Im Normalfall können Sie Ihr Milvus einfach auf die neueste Version aktualisieren, indem Sie sein Image ändern. Beachten Sie jedoch, dass es zu einer gewissen Ausfallzeit kommt, wenn Sie Milvus auf diese Weise aktualisieren.

Stellen Sie eine Konfigurationsdatei wie folgt zusammen und speichern Sie sie als milvusupgrade.yaml:

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: my-release
spec:
  # Omit other fields ...
  components:
   image: milvusdb/milvus:v2.5.0-beta

Führen Sie dann das Folgende aus, um das Upgrade durchzuführen:

kubectl patch -f milvusupgrade.yaml

Migrieren Sie die Metadaten

Seit Milvus 2.2.0 sind die Metadaten nicht mehr mit denen früherer Versionen kompatibel. Die folgenden Beispielschnipsel gehen von einem Upgrade von Milvus 2.1.4 auf Milvus 2.5.0-beta aus.

1. Erstellen Sie eine .yaml Datei für die Migration von Metadaten

Erstellen Sie eine Metadaten-Migrationsdatei. Im Folgenden finden Sie ein Beispiel. Sie müssen name, sourceVersion und targetVersion in der Konfigurationsdatei angeben. Im folgenden Beispiel wird name auf my-release-upgrade, sourceVersion auf v2.1.4 und targetVersion auf v2.5.0-beta gesetzt. Dies bedeutet, dass Ihr Milvus-Cluster von v2.1.4 auf v2.5.0-beta aktualisiert wird.

apiVersion: milvus.io/v1beta1
kind: MilvusUpgrade
metadata:
  name: my-release-upgrade
spec:
  milvus:
    namespace: default
    name: my-release
  sourceVersion: "v2.1.4"
  targetVersion: "v2.5.0-beta"
  # below are some omit default values:
  # targetImage: "milvusdb/milvus:v2.5.0-beta"
  # toolImage: "milvusdb/meta-migration:v2.2.0"
  # operation: upgrade
  # rollbackIfFailed: true
  # backupPVC: ""
  # maxRetry: 3

2. Übernehmen Sie die neue Konfiguration

Führen Sie den folgenden Befehl aus, um die neue Konfiguration zu erstellen.

$ kubectl create -f https://github.com/zilliztech/milvus-operator/blob/main/config/samples/beta/milvusupgrade.yaml

3. Überprüfen Sie den Status der Metadaten-Migration

Führen Sie den folgenden Befehl aus, um den Status Ihrer Metadaten-Migration zu überprüfen.

kubectl describe milvus release-name

Der Status ready in der Ausgabe bedeutet, dass die Metadaten-Migration erfolgreich war.

Sie können auch kubectl get pod ausführen, um alle Pods zu überprüfen. Wenn alle Pods ready sind, ist die Metadaten-Migration erfolgreich.

4. Löschen Sie my-release-upgrade

Wenn das Upgrade erfolgreich ist, löschen Sie my-release-upgrade in der YAML-Datei.

Übersetzt vonDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

War diese Seite hilfreich?