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

Bereitstellen von Überwachungsdiensten auf Kubernetes

In diesem Thema wird beschrieben, wie Sie Prometheus verwenden, um Überwachungsdienste für einen Milvus-Cluster auf Kubernetes bereitzustellen.

Überwachen von Metriken mit Prometheus

Metriken sind Indikatoren, die Informationen über den Betriebsstatus Ihres Systems liefern. Mit Metriken können Sie beispielsweise nachvollziehen, wie viel Arbeitsspeicher oder CPU-Ressourcen von einem Datenknoten in Milvus verbraucht werden. Wenn Sie die Leistung und den Status der Komponenten in Ihrem Milvus-Cluster kennen, sind Sie gut informiert und können daher bessere Entscheidungen treffen und die Ressourcenzuweisung rechtzeitig anpassen.

Im Allgemeinen werden die Metriken in einer Zeitseriendatenbank (TSDB) wie Prometheus gespeichert und mit einem Zeitstempel versehen. Bei der Überwachung von Milvus-Diensten können Sie Prometheus verwenden, um Daten von Endpunkten zu beziehen, die von Exporteuren festgelegt wurden. Prometheus exportiert dann die Metriken der einzelnen Milvus-Komponenten unter http://<component-host>:9091/metrics.

Es kann jedoch sein, dass Sie mehrere Repliken für eine Komponente haben, was die manuelle Konfiguration von Prometheus zu kompliziert macht. Daher können Sie Prometheus Operator, eine Erweiterung für Kubernetes, für die automatisierte und effektive Verwaltung von Prometheus-Überwachungsinstanzen verwenden. Die Verwendung von Prometheus Operator erspart Ihnen das manuelle Hinzufügen von metrischen Zielen und Dienstanbietern.

Mit der benutzerdefinierten Ressourcendefinition (CRD) von ServiceMonitor können Sie deklarativ festlegen, wie eine dynamische Gruppe von Diensten überwacht wird. Sie ermöglicht auch die Auswahl der zu überwachenden Dienste mit der gewünschten Konfiguration unter Verwendung von Labels. Mit Prometheus Operator können Sie Konventionen einführen, die festlegen, wie Metriken dargestellt werden. Neue Dienste können automatisch gemäß der von Ihnen festgelegten Konvention erkannt werden, ohne dass eine manuelle Neukonfiguration erforderlich ist.

Die folgende Abbildung veranschaulicht den Prometheus-Workflow.

Prometheus_architecture Prometheus_Architektur

Voraussetzungen

Dieses Tutorial verwendet kube-prometheus, um Ihnen die Installation und manuelle Konfiguration jeder Überwachungs- und Alarmierungskomponente zu ersparen.

Kube-prometheus sammelt Kubernetes-Manifeste, Grafana-Dashboards und Prometheus-Regeln in Kombination mit Dokumentation und Skripten.

Bevor Sie Überwachungsdienste bereitstellen, müssen Sie einen Überwachungsstapel erstellen, indem Sie die Konfiguration im Verzeichnis kube-prometheus manifests verwenden.

$ git clone https://github.com/prometheus-operator/kube-prometheus.git
$ cd kube-prometheus
$ kubectl apply --server-side -f manifests/setup
$ kubectl wait \
        --for condition=Established \
        --all CustomResourceDefinition \
        --namespace=monitoring
$ kubectl apply -f manifests/
Die standardmäßige prometheus-k8s-Clusterrole kann die Metriken von milvus nicht erfassen und muss gepatcht werden:
kubectl patch clusterrole prometheus-k8s --type=json -p='[{"op": "add", "path": "/rules/-", "value": {"apiGroups": [""], "resources": ["pods", "services", "endpoints"], "verbs": ["get", "watch", "list"]}}]'

Um einen Stack zu löschen, führen Sie kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup aus.

Bereitstellen von Überwachungsdiensten auf Kubernetes

1. Zugriff auf die Dashboards

Leiten Sie den Prometheus-Dienst an den Port 9090 und den Grafana-Dienst an den Port 3000 weiter.

$ kubectl --namespace monitoring --address 0.0.0.0 port-forward svc/prometheus-k8s 9090
$ kubectl --namespace monitoring --address 0.0.0.0 port-forward svc/grafana 3000

2. Aktivieren Sie den ServiceMonitor

Der ServiceMonitor ist für Milvus Helm standardmäßig nicht aktiviert. Nach der Installation des Prometheus Operator im Kubernetes-Cluster können Sie ihn durch Hinzufügen des Parameters metrics.serviceMonitor.enabled=true aktivieren.

$ helm upgrade my-release milvus/milvus --set metrics.serviceMonitor.enabled=true --reuse-values

Wenn die Installation abgeschlossen ist, verwenden Sie kubectl, um die ServiceMonitor-Ressource zu überprüfen.

$ kubectl get servicemonitor
NAME                           AGE
my-release-milvus              54s

Wie geht es weiter?

Ü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?