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 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 Siehelm 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:
Überprüfen Sie Hello Milvus, um zu sehen, was Milvus tun kann.
Lernen Sie die Grundfunktionen von Milvus kennen:
Verteilen Sie Ihren Milvus-Cluster auf Clouds:
Entdecken Sie Milvus WebUI, eine intuitive Webschnittstelle für die Beobachtung und Verwaltung von Milvus.
Erkunden Sie Milvus Backup, ein Open-Source-Tool für Milvus-Datensicherungen.
Birdwatcher, ein Open-Source-Tool zur Fehlersuche in Milvus und zur dynamischen Konfigurationsaktualisierung.
Entdecken Sie Attu, ein Open-Source-GUI-Tool für intuitives Milvus-Management.