milvus-logo
LFAI
Home
  • Guide d'administration

Déploiement de services de surveillance sur Kubernetes

Cette rubrique décrit comment utiliser Prometheus pour déployer des services de surveillance pour un cluster Milvus sur Kubernetes.

Surveiller les métriques avec Prometheus

Les métriques sont des indicateurs qui fournissent des informations sur l'état de fonctionnement de votre système. Par exemple, avec les métriques, vous pouvez comprendre combien de ressources mémoire ou CPU sont consommées par un nœud de données dans Milvus. Le fait de connaître les performances et l'état des composants de votre cluster Milvus vous permet d'être bien informé et donc de prendre de meilleures décisions et d'ajuster l'allocation des ressources de manière plus opportune.

En général, les mesures sont stockées dans une base de données de séries temporelles (TSDB), comme Prometheus, et les mesures sont enregistrées avec un horodatage. Dans le cas de la surveillance des services Milvus, vous pouvez utiliser Prometheus pour extraire des données des points d'extrémité définis par les exportateurs. Prometheus exporte ensuite les métriques de chaque composant Milvus à l'adresse http://<component-host>:9091/metrics.

Cependant, vous pouvez avoir plusieurs répliques pour un composant, ce qui rend la configuration manuelle de Prometheus trop compliquée. Vous pouvez donc utiliser Prometheus Operator, une extension de Kubernetes, pour une gestion automatisée et efficace des instances de surveillance Prometheus. L'utilisation de Prometheus Operator vous évite d'ajouter manuellement des cibles métriques et des fournisseurs de services.

La définition de ressource personnalisée (CRD) ServiceMonitor vous permet de définir de manière déclarative la manière dont un ensemble dynamique de services est surveillé. Il permet également de sélectionner les services à surveiller avec la configuration souhaitée à l'aide de sélections d'étiquettes. Avec Prometheus Operator, vous pouvez introduire des conventions spécifiant comment les métriques sont exposées. Les nouveaux services peuvent être automatiquement découverts en suivant la convention que vous avez définie, sans qu'il soit nécessaire de procéder à une reconfiguration manuelle.

L'image suivante illustre le flux de travail de Prometheus.

Prometheus_architecture Architecture de Prometheus

Conditions préalables

Ce tutoriel utilise kube-prometheus pour vous éviter d'installer et de configurer manuellement chaque composant de surveillance et d'alerte.

Kube-prometheus rassemble les manifestes Kubernetes, les tableaux de bord Grafana et les règles Prometheus combinés à la documentation et aux scripts.

Avant de déployer des services de surveillance, vous devez créer une pile de surveillance en utilisant la configuration dans le répertoire 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/
Le rôle de cluster prometheus-k8s par défaut ne peut pas capturer les métriques de milvus, il est nécessaire de le corriger :
kubectl patch clusterrole prometheus-k8s --type=json -p='[{"op": "add", "path": "/rules/-", "value": {"apiGroups": [""], "resources": ["pods", "services", "endpoints"], "verbs": ["get", "watch", "list"]}}]'

Pour supprimer une pile, exécutez kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setup.

Déployer des services de surveillance sur Kubernetes

1. Accéder aux tableaux de bord

Transférer le service Prometheus vers le port 9090, et le service Grafana vers le port 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. Activer ServiceMonitor

Le ServiceMonitor n'est pas activé par défaut pour Milvus Helm. Après avoir installé l'opérateur Prometheus dans le cluster Kubernetes, vous pouvez l'activer en ajoutant le paramètre metrics.serviceMonitor.enabled=true.

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

Une fois l'installation terminée, utilisez kubectl pour vérifier la ressource ServiceMonitor.

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

Prochaines étapes

Traduit parDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

Cette page a-t - elle été utile ?