🚀 Try Zilliz Cloud, the fully managed Milvus, for free—experience 10x faster performance! Try Now>>

Milvus in Kubernetes mit Helm starten

Diese Seite veranschaulicht, wie man eine Milvus-Instanz in Kubernetes mithilfe von Milvus Helm-Diagrammen startet.

Übersicht

Helm verwendet ein Paketierungsformat namens Charts. Ein Diagramm ist eine Sammlung von Dateien, die einen zusammenhängenden Satz von Kubernetes-Ressourcen beschreiben. Milvus bietet eine Reihe von Diagrammen, die Sie bei der Bereitstellung von Milvus-Abhängigkeiten und -Komponenten unterstützen.

Voraussetzungen

  • Installieren Sie Helm CLI.

  • Erstellen Sie einen K8s-Cluster.

  • Installieren Sie eine StorageClass. Sie können die installierte StorageClass wie folgt überprüfen.

    $ kubectl get sc
    
    NAME                  PROVISIONER                  RECLAIMPOLICY    VOLUMEBIINDINGMODE    ALLOWVOLUMEEXPANSION     AGE
    standard (default)    k8s.io/minikube-hostpath     Delete           Immediate             false 
    
  • Überprüfen Sie vor der Installation die Hardware- und Softwareanforderungen.

  • Es wird empfohlen, vor der Installation von Milvus das Milvus Sizing Tool zu verwenden, um die Hardware-Anforderungen auf der Grundlage Ihrer Datengröße abzuschätzen. Dies hilft, eine optimale Leistung und Ressourcenzuweisung für Ihre Milvus-Installation zu gewährleisten.

Sollten Sie beim Ziehen des Images auf Probleme stoßen, wenden Sie sich bitte an community@zilliz.com und schildern Sie das Problem, damit wir Ihnen die notwendige Unterstützung bieten können.

Milvus Helm Chart installieren

Bevor Sie Milvus Helm Charts installieren, müssen Sie das Milvus Helm Repository hinzufügen.

$ helm repo add milvus https://zilliztech.github.io/milvus-helm/

Das Milvus Helm Charts-Repository unter https://github.com/milvus-io/milvus-helm wurde archiviert und Sie können weitere Aktualisierungen wie folgt von https://github.com/zilliztech/milvus-helm erhalten:

helm repo add zilliztech https://zilliztech.github.io/milvus-helm/
helm repo update
# upgrade existing helm release
helm upgrade my-release zilliztech/milvus

Das archivierte Repository ist weiterhin für die Diagramme bis 4.0.31 verfügbar. Für spätere Versionen verwenden Sie stattdessen das neue Repo.

Holen Sie sich dann die Milvus-Charts wie folgt aus dem Repository:

$ helm repo update

Sie können diesen Befehl jederzeit ausführen, um die neuesten Milvus Helm-Diagramme abzurufen.

Online-Installation

1. Bereitstellen eines Milvus-Clusters

Sobald Sie das Helm-Diagramm installiert haben, können Sie Milvus auf Kubernetes starten. Dieser Abschnitt führt Sie durch die Schritte zum Starten von Milvus.

$ helm install my-release milvus/milvus

Im obigen Befehl ist my-release der Versionsname und milvus/milvus ist das lokal installierte Diagramm-Repository. Wenn Sie einen anderen Namen verwenden möchten, ersetzen Sie my-release mit dem Namen, den Sie für geeignet halten.

Mit dem obigen Befehl wird ein Milvus-Cluster mit seinen Komponenten und Abhängigkeiten unter Verwendung von Standardkonfigurationen bereitgestellt. Um diese Einstellungen anzupassen, empfehlen wir Ihnen, das Milvus Sizing Tool zu verwenden, um die Konfigurationen basierend auf Ihrer tatsächlichen Datengröße anzupassen und dann die entsprechende YAML-Datei herunterzuladen. Weitere Informationen zu den Konfigurationsparametern finden Sie in der Milvus System Configurations Checklist.

  • Der Versionsname sollte nur Buchstaben, Zahlen und Bindestriche enthalten. Punkte sind im Versionsnamen nicht erlaubt.
  • Die Standard-Befehlszeile installiert die Cluster-Version von Milvus bei der Installation von Milvus mit Helm. Bei der Installation von Milvus als Einzelplatzversion sind weitere Einstellungen erforderlich.
  • Gemäß dem veralteten API-Migrationsleitfaden von Kubernetes wird die API-Version policy/v1beta1 von PodDisruptionBudget ab v1.25 nicht mehr unterstützt. Es wird empfohlen, Manifeste und API-Clients zu migrieren, um stattdessen die policy/v1-API-Version zu verwenden.
    Als Abhilfe für Benutzer, die noch die API-Version policy/v1beta1 von PodDisruptionBudget auf Kubernetes v1.25 und später verwenden, können Sie stattdessen den folgenden Befehl ausführen, um Milvus zu installieren:
    helm install my-release milvus/milvus --set pulsar.bookkeeper.pdb.usePolicy=false,pulsar.broker.pdb.usePolicy=false,pulsar.proxy.pdb.usePolicy=false,pulsar.zookeeper.pdb.usePolicy=false
  • Siehe Milvus Helm Chart und Helm für weitere Informationen.

2. Prüfen Sie den Status des Milvus-Clusters

Führen Sie den folgenden Befehl aus, um den Status aller Pods in Ihrem Milvus-Cluster zu überprüfen.

$ kubectl get pods

Wenn alle Pods laufen, sollte die Ausgabe des obigen Befehls ähnlich wie die folgende aussehen:

NAME                                             READY  STATUS   RESTARTS  AGE
my-release-etcd-0                                1/1    Running   0        3m23s
my-release-etcd-1                                1/1    Running   0        3m23s
my-release-etcd-2                                1/1    Running   0        3m23s
my-release-milvus-datanode-68cb87dcbd-4khpm      1/1    Running   0        3m23s
my-release-milvus-indexnode-5c5f7b5bd9-l8hjg     1/1    Running   0        3m24s
my-release-milvus-mixcoord-7fb9488465-dmbbj      1/1    Running   0        3m23s
my-release-milvus-proxy-6bd7f5587-ds2xv          1/1    Running   0        3m24s
my-release-milvus-querynode-5cd8fff495-k6gtg     1/1    Running   0        3m24s
my-release-minio-0                               1/1    Running   0        3m23s
my-release-minio-1                               1/1    Running   0        3m23s
my-release-minio-2                               1/1    Running   0        3m23s
my-release-minio-3                               1/1    Running   0        3m23s
my-release-pulsar-autorecovery-86f5dbdf77-lchpc  1/1    Running   0        3m24s
my-release-pulsar-bookkeeper-0                   1/1    Running   0        3m23s
my-release-pulsar-bookkeeper-1                   1/1    Running   0        98s
my-release-pulsar-broker-556ff89d4c-2m29m        1/1    Running   0        3m23s
my-release-pulsar-proxy-6fbd75db75-nhg4v         1/1    Running   0        3m23s
my-release-pulsar-zookeeper-0                    1/1    Running   0        3m23s
my-release-pulsar-zookeeper-metadata-98zbr       0/1   Completed  0        3m24s

Sie können auch auf die Milvus-WebUI unter http://127.0.0.1:9091/webui/ zugreifen, um mehr über Ihre Milvus-Instanz zu erfahren. Einzelheiten finden Sie unter Milvus WebUI.

3. Weiterleitung eines lokalen Ports an Milvus

Führen Sie den folgenden Befehl aus, um den Port abzurufen, an dem Ihr Milvus-Cluster arbeitet.

$ kubectl get pod my-release-milvus-proxy-6bd7f5587-ds2xv --template
='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
19530

Die Ausgabe zeigt, dass die Milvus-Instanz auf dem Standardport 19530 arbeitet.

Wenn Sie Milvus im Standalone-Modus eingesetzt haben, ändern Sie den Pod-Namen von my-release-milvus-proxy-xxxxxxxxxx-xxxxx in my-release-milvus-xxxxxxxxxx-xxxxx.

Führen Sie dann den folgenden Befehl aus, um einen lokalen Port an den Port weiterzuleiten, an dem Milvus arbeitet.

$ kubectl port-forward service/my-release-milvus 27017:19530
Forwarding from 127.0.0.1:27017 -> 19530

Optional können Sie :19530 anstelle von 27017:19530 im obigen Befehl verwenden, um kubectl einen lokalen Port für Sie zuweisen zu lassen, so dass Sie sich nicht um Portkonflikte kümmern müssen.

Standardmäßig lauscht die Port-Weiterleitung von kubectl nur auf localhost. Verwenden Sie das address Flag, wenn Sie möchten, dass Milvus die ausgewählten oder alle IP-Adressen abhört. Der folgende Befehl sorgt dafür, dass port-forward auf allen IP-Adressen des Host-Rechners lauscht.

Nun können Sie sich mit Milvus über den weitergeleiteten Port verbinden.

Zugriff auf Milvus WebUI

Milvus wird mit einem integrierten GUI-Tool namens Milvus WebUI geliefert, auf das Sie über Ihren Browser zugreifen können. Milvus Web UI verbessert die Beobachtbarkeit des Systems durch eine einfache und intuitive Schnittstelle. Sie können Milvus Web UI verwenden, um die Statistiken und Metriken der Komponenten und Abhängigkeiten von Milvus zu beobachten, Datenbank- und Sammlungsdetails zu überprüfen und detaillierte Milvus-Konfigurationen aufzulisten. Für Details über Milvus Web UI, siehe Milvus WebUI

Um den Zugriff auf die Milvus Web UI zu ermöglichen, müssen Sie den Proxy-Pod auf einen lokalen Port weiterleiten.

$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27018:9091
Forwarding from 0.0.0.0:27018 -> 9091

Jetzt können Sie auf Milvus Web UI unter http://localhost:27018 zugreifen.

$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530
Forwarding from 0.0.0.0:27017 -> 19530

Nun können Sie sich über den weitergeleiteten Port mit Milvus verbinden.

Zugriff auf Milvus WebUI

Milvus wird mit einem integrierten GUI-Tool namens Milvus WebUI ausgeliefert, auf das Sie über Ihren Browser zugreifen können. Milvus Web UI verbessert die Beobachtbarkeit des Systems durch eine einfache und intuitive Schnittstelle. Sie können Milvus Web UI verwenden, um die Statistiken und Metriken der Komponenten und Abhängigkeiten von Milvus zu beobachten, Datenbank- und Sammlungsdetails zu überprüfen und detaillierte Milvus-Konfigurationen aufzulisten. Für Details über Milvus Web UI, siehe Milvus WebUI

Um den Zugriff auf die Milvus Web UI zu ermöglichen, müssen Sie den Proxy-Pod auf einen lokalen Port weiterleiten.

$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27018:9091
Forwarding from 0.0.0.0:27018 -> 9091

Nun können Sie auf die Milvus Web UI unter http://localhost:27018 zugreifen.

Offline-Installation

Wenn Sie sich in einer Umgebung mit Netzwerkbeschränkungen befinden, befolgen Sie das Verfahren in diesem Abschnitt, um einen Milvus-Cluster zu starten.

1. Milvus-Manifest abrufen

Führen Sie den folgenden Befehl aus, um das Milvus-Manifest abzurufen.

$ helm template my-release milvus/milvus > milvus_manifest.yaml

Der obige Befehl rendert Diagrammvorlagen für einen Milvus-Cluster und speichert die Ausgabe in einer Manifestdatei namens milvus_manifest.yaml. Mit diesem Manifest können Sie einen Milvus-Cluster mit seinen Komponenten und Abhängigkeiten in separaten Pods installieren.

  • Um eine Milvus-Instanz im Standalone-Modus zu installieren, bei dem alle Milvus-Komponenten in einem einzigen Pod enthalten sind, sollten Sie stattdessen helm template my-release --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsar.enabled=false milvus/milvus > milvus_manifest.yaml ausführen, um Diagrammvorlagen für eine Milvus-Instanz im Standalone-Modus zu rendern.
  • Um Milvus-Konfigurationen zu ändern, laden Sie die value.yaml Vorlage herunter, fügen Sie die gewünschten Einstellungen hinzu, und verwenden Sie helm template -f values.yaml my-release milvus/milvus > milvus_manifest.yaml, um das Manifest entsprechend zu rendern.

2. Download des Image-Pulling-Skripts

Das Image-Pulling-Skript ist in Python entwickelt. Sie sollten das Skript zusammen mit seinen Abhängigkeiten in der Datei requirement.txt herunterladen.

$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/requirements.txt
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/save_image.py

3. Bilder abrufen und speichern

Führen Sie den folgenden Befehl aus, um die benötigten Bilder zu laden und zu speichern.

$ pip3 install -r requirements.txt
$ python3 save_image.py --manifest milvus_manifest.yaml

Die Bilder werden in einem Unterordner namens images im aktuellen Verzeichnis gespeichert.

4. Bilder laden

Sie können nun die Bilder wie folgt auf die Hosts in der netzbeschränkten Umgebung laden:

$ for image in $(find . -type f -name "*.tar.gz") ; do gunzip -c $image | docker load; done

5. Milvus bereitstellen

$ kubectl apply -f milvus_manifest.yaml

Bis zu diesem Zeitpunkt können Sie die Schritte 2 und 3 der Online-Installation ausführen, um den Cluster-Status zu überprüfen und einen lokalen Port an Milvus weiterzuleiten.

Upgrade des laufenden Milvus-Clusters

Führen Sie den folgenden Befehl aus, um Ihren laufenden Milvus-Cluster auf die neueste Version zu aktualisieren:

$ helm repo update
$ helm upgrade my-release zilliztech/milvus

Milvus deinstallieren

Führen Sie den folgenden Befehl aus, um Milvus zu deinstallieren.

$ helm uninstall my-release

Wie geht es weiter?

Nachdem Sie Milvus in Docker installiert haben, können Sie:

How we use cookies

This website stores cookies on your computer. By continuing to browse or by clicking ‘Accept’, you agree to the storing of cookies on your device to enhance your site experience and for analytical purposes.