🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

milvus-logo
LFAI
主頁
  • 管理指南
  • Home
  • Docs
  • 管理指南

  • 監控、警示與日誌

  • 監控

  • 部署監控服務

在 Kubernetes 上部署監控服務

本主題描述如何使用 Prometheus 為 Kubernetes 上的 Milvus 叢集部署監控服務。

使用 Prometheus 監控指標

度量指標是提供系統運行狀態資訊的指標。例如,透過度量指標,您可以瞭解 Milvus 的資料節點消耗了多少記憶體或 CPU 資源。瞭解 Milvus 叢集中各元件的效能和狀態,可以讓您充分掌握資訊,從而做出更好的決策,並更及時地調整資源分配。

一般而言,度量指標會儲存於時間序列資料庫(TSDB),例如Prometheus,並記錄有時間戳記的度量指標。在監控 Milvus 服務的情況下,您可以使用 Prometheus 從出口商設定的端點抽取資料。然後,Prometheus 在http://<component-host>:9091/metrics 匯出每個 Milvus 元件的度量指標。

但是,您可能會為一個元件設置多個副本,這使得 Prometheus 的手動設定變得過於複雜。因此,您可以使用 Kubernetes 的擴充套件Prometheus Operator,自動且有效地管理 Prometheus 監控實體。使用 Prometheus Operator 可省去手動新增度量目標和服務提供者的麻煩。

ServiceMonitor 自訂資源定義 (CRD) 可讓您宣告性地定義如何監控動態服務集。它還允許使用標籤選擇使用所需的組態來監控哪些服務。使用 Prometheus Operator,您可以引入慣例,指定如何暴露度量。新服務可以按照您設定的慣例自動發現,而無需手動重新配置。

下圖說明 Prometheus 工作流程。

Prometheus_architecture Prometheus 架構

先決條件

本教程使用Kube-prometheus,以省去您安裝和手動設定每個監控和警示元件的麻煩。

Kube-prometheus 收集 Kubernetes 清单、Grafana面板和Prometheus 规则,并结合文档和脚本。

在部署監控服務之前,您需要使用 kube-prometheus manifests 目錄中的組態來建立監控堆疊。

$ 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/
預設的 prometheus-k8s clusterrole 無法捕捉 milvus 的指標,需要修補:
kubectl patch clusterrole prometheus-k8s --type=json -p='[{"op": "add", "path": "/rules/-", "value": {"apiGroups": [""], "resources": ["pods", "services", "endpoints"], "verbs": ["get", "watch", "list"]}}]'

要刪除堆疊,請執行kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup

在 Kubernetes 上部署監控服務

1.存取儀表板

將 Prometheus 服務轉發至9090 連接埠,並將 Grafana 服務轉發至3000 連接埠。

$ 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.啟用 ServiceMonitor

Milvus Helm 預設未啟用 ServiceMonitor。在 Kubernetes 群集中安裝 Prometheus Operator 之後,您可以透過新增參數metrics.serviceMonitor.enabled=true 來啟用它。

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

安裝完成後,使用kubectl 檢查 ServiceMonitor 資源。

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

下一步

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?