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_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/
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.
Mit Helm
Sie können den ServiceMonitor aktivieren, indem Sie den Parameter metrics.serviceMonitor.enabled=true wie folgt setzen, wenn Sie Milvus Helm chart installiert haben.
```
$ 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.
Mit Milvus Operator
Sie können den ServiceMonitor wie folgt aktivieren, wenn Sie Milvus mit dem Milvus Operator installiert haben.
Führen Sie den folgenden Befehl aus, um die benutzerdefinierte MIlvus-Ressource zu bearbeiten. Der folgende Befehl geht davon aus, dass die benutzerdefinierte Ressource den Namen
my-releaseträgt.$ kubectl edit milvus my-releaseÄndern Sie das Feld
spec.components.disableMetricinfalse.... spec: components: disableMetric: false # set to true to disable metrics ...Speichern Sie und beenden Sie den Editor.
Warten Sie, bis der Operator die Änderungen abgeglichen hat. Sie können den Status der benutzerdefinierten Milvus-Ressource überprüfen, indem Sie den folgenden Befehl ausführen.
$ kubectl get milvus my-release -o yaml
Das Feld status.components.metrics.serviceMonitor.enabled sollte true lauten.
3. Prüfen Sie die Metriken
Nachdem Sie den ServiceMonitor aktiviert haben, können Sie das Prometheus-Dashboard unter http://localhost:9090/ aufrufen.
Klicken Sie auf die Registerkarte Status und dann auf Targets. Sie sollten die Ziele der Milvus-Komponenten sehen.
Prometheus_Ziele
Klicken Sie auf die Registerkarte Graph und geben Sie den Ausdruck up{job="default/my-release"} in das Eingabefeld für den Ausdruck ein. Sie sollten die Metriken der Milvus-Komponenten sehen.
Prometheus_Grafik
4. Prüfen Sie den ServiceMonitor
$ kubectl get servicemonitor
NAME AGE
my-release-milvus 54s
Der nächste Schritt
- Wenn Sie Überwachungsdienste für den Milvus-Cluster implementiert haben, möchten Sie vielleicht auch lernen, wie das geht:
- Wenn Sie nach Informationen zur Skalierung eines Milvus-Clusters suchen:
- Lernen Sie einen Milvus-Cluster zu skalieren
- Wenn Sie an einem Upgrade der Milvus-Version interessiert sind,
- Lesen Sie den Leitfaden für das Upgrade von Milvus-Cluster und den Leitfaden für das Upgrade von Milvus Standalone.