milvus-logo
LFAI
Casa
  • Guida all'amministrazione

Distribuzione dei servizi di monitoraggio su Kubernetes

Questo argomento descrive come utilizzare Prometheus per distribuire i servizi di monitoraggio per un cluster Milvus su Kubernetes.

Monitorare le metriche con Prometheus

Le metriche sono indicatori che forniscono informazioni sullo stato di funzionamento del sistema. Ad esempio, con le metriche è possibile capire quante risorse di memoria o di CPU sono consumate da un nodo dati in Milvus. Essere consapevoli delle prestazioni e dello stato dei componenti del vostro cluster Milvus vi rende ben informati e quindi in grado di prendere decisioni migliori e di regolare l'allocazione delle risorse in modo più tempestivo.

In genere, le metriche sono memorizzate in un database di serie temporali (TSDB), come Prometheus, e le metriche sono registrate con un timestamp. Nel caso del monitoraggio dei servizi Milvus, è possibile utilizzare Prometheus per estrarre i dati dagli endpoint impostati dagli esportatori. Prometheus esporta quindi le metriche di ciascun componente Milvus all'indirizzo http://<component-host>:9091/metrics.

Tuttavia, è possibile avere diverse repliche per un componente, il che rende troppo complicata la configurazione manuale di Prometheus. Pertanto, è possibile utilizzare Prometheus Operator, un'estensione di Kubernetes, per una gestione automatizzata ed efficace delle istanze di monitoraggio di Prometheus. L'uso di Prometheus Operator evita di aggiungere manualmente i target metrici e i service provider.

La ServiceMonitor Custom Resource Definition (CRD) consente di definire in modo dichiarativo il monitoraggio di un insieme dinamico di servizi. Inoltre, consente di selezionare i servizi da monitorare con la configurazione desiderata utilizzando le selezioni delle etichette. Con Prometheus Operator, è possibile introdurre convenzioni che specificano come vengono esposte le metriche. I nuovi servizi possono essere scoperti automaticamente seguendo le convenzioni impostate, senza bisogno di riconfigurazioni manuali.

L'immagine seguente illustra il flusso di lavoro di Prometheus.

Prometheus_architecture Architettura_Prometheus

Prerequisiti

Questa esercitazione utilizza kube-prometheus per risparmiare la fatica di installare e configurare manualmente ogni componente di monitoraggio e avviso.

Kube-prometheus raccoglie i manifesti di Kubernetes, le dashboard di Grafana e le regole di Prometheus, insieme a documentazione e script.

Prima di distribuire i servizi di monitoraggio, è necessario creare uno stack di monitoraggio utilizzando la configurazione nella directory 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/
Il clusterrole predefinito prometheus-k8s non è in grado di catturare le metriche di milvus; è necessario applicare una patch:
kubectl patch clusterrole prometheus-k8s --type=json -p='[{"op": "add", "path": "/rules/-", "value": {"apiGroups": [""], "resources": ["pods", "services", "endpoints"], "verbs": ["get", "watch", "list"]}}]'

Per eliminare uno stack, eseguire kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup.

Distribuire i servizi di monitoraggio su Kubernetes

1. Accedere ai cruscotti

Inoltrare il servizio Prometheus alla porta 9090 e il servizio Grafana alla porta 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. Abilitare ServiceMonitor

Il ServiceMonitor non è abilitato per Milvus Helm per impostazione predefinita. Dopo aver installato Prometheus Operator nel cluster Kubernetes, è possibile abilitarlo aggiungendo il parametro metrics.serviceMonitor.enabled=true.

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

Al termine dell'installazione, utilizzare kubectl per controllare la risorsa ServiceMonitor.

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

Cosa succede dopo

Tradotto daDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Questa pagina è stata utile?