在 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 架構
先決條件
本教程使用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/
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 叢集部署了監控服務,您也許還想學一下
- 如果您正在尋找關於如何擴充 Milvus 叢集的資訊:
- 如果您有興趣升級 Milvus 版本、