Развертывание служб мониторинга на Kubernetes
В этой теме описывается, как использовать Prometheus для развертывания служб мониторинга для кластера Milvus на Kubernetes.
Мониторинг метрик с помощью Prometheus
Метрики - это индикаторы, предоставляющие информацию о состоянии работы вашей системы. Например, с помощью метрик вы можете понять, сколько памяти или ресурсов процессора потребляет узел данных в Milvus. Знание производительности и состояния компонентов вашего кластера Milvus позволяет вам быть хорошо информированным, а значит, принимать лучшие решения и своевременно корректировать распределение ресурсов.
Обычно метрики хранятся в базе данных временных рядов (TSDB), например в Prometheus, и метрики записываются с меткой времени. В случае мониторинга служб Milvus вы можете использовать Prometheus для получения данных из конечных точек, установленных экспортерами. Затем Prometheus экспортирует метрики каждого компонента Milvus по адресу http://<component-host>:9091/metrics
.
Однако у вас может быть несколько реплик для одного компонента, что делает ручную настройку Prometheus слишком сложной. Поэтому вы можете использовать Prometheus Operator, расширение для Kubernetes, для автоматического и эффективного управления экземплярами мониторинга Prometheus. Использование Prometheus Operator избавит вас от необходимости вручную добавлять метрические цели и поставщиков услуг.
ServiceMonitor Custom Resource Definition (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
По умолчанию ServiceMonitor не включен в Milvus Helm. После установки Prometheus Operator в кластере Kubernetes вы можете включить его, добавив параметр 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
- Если вы заинтересованы в обновлении версии Milvus,