🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Руководство по администрированию
  • Home
  • Docs
  • Руководство по администрированию

  • Мониторинг, оповещения и журналы

  • Мониторинг

  • Развертывание служб мониторинга

Развертывание служб мониторинга на 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_architecture Архитектура 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/
Кластерроль по умолчанию prometheus-k8s не может перехватывать метрики milvus, необходимо внести исправления:
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

Что дальше

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?