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.
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/
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
- Si vous avez déployé des services de surveillance pour le cluster Milvus, vous pouvez également apprendre à :
- Si vous recherchez des informations sur la manière de faire évoluer un cluster Milvus :
- Apprendre à faire évoluer un cluster Milvus
- Si vous souhaitez mettre à niveau la version de Milvus,
- Lisez le guide de mise à niveau du cluster Milvus et celui de mise à niveau de Milvus standalone.