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

Aufrüstung von Milvus Standalone mit Milvus Operator

Dieser Leitfaden beschreibt, wie Sie Ihren Milvus Standalone mit Milvus Operator aufrüsten können.

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 "Rolling Upgrade" 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 ihrer 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.4.17

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 ein Rolling Upgrade für Koordinatoren in geordneter Weise durch, wobei 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.4.17

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-older-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
labels:
    app: milvus
spec:
  # Omit other fields ...
  components:
   image: milvusdb/milvus:v2.4.17

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 v2.4.17 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.4.17 gesetzt. Dies bedeutet, dass Ihre Milvus-Instanz von v2.1.4 auf v2.4.17 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.4.17"
  # below are some omit default values:
  # targetImage: "milvusdb/milvus:v2.4.17"
  # 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 anzuwenden.

$ kubectl create -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvusupgrade.yaml

3. Prü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 vonDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

War diese Seite hilfreich?