Архитектура микросервисов будет одним из основных функций разработки программного обеспечения в ближайшие годы. Упаковка большого монолита в небольшие контейнеры представляет различные преимущества. Одним из ключевых преимуществ, о которых я могу подумать, является то, что если определенные вещи не удаются, то часть приложения будет опущена, и она может автоматически заживить, а не сбивающую всю приложение. Это одна из причин, по которым, когда Instagram, Facebook и WhatsApp сбивает, только определенные функции прекращают работать. Приложение, в целом, все еще работает. Это служит большое преимущество. Кроме того, когда спрос на конкретное обслуживание или компонент увеличивается, количество компонентов можно легко увеличить или уменьшаться. Небольшие контейнеры, которые я имею в виду здесь, являются контейнеры Docker, и приложение развернуто на Kubernetes. Kubernetes — это программное обеспечение для оркестографии контейнера, которое управляет контейнерами на разных уровнях и позволяет управлять соединениями и конечными точками этих контейнеров.
Кубернаны Или K8S — это самовосцеленное приложение с открытым исходным кодом, который управляет развертыванием, масштабированием и эксплуатацией этих контейнеров. Это было первоначально разработано Google, но позже, пожертвовано CNCF. Поскольку Kubernetes предоставляет тонны услуг, существует более простой способ следить за мероприятиями в кластере Kubernetes. Это возможно по Prometheus Отказ Это решение с открытым исходным кодом для мониторинга метрик и управления предупреждениями в системе. Он был разработан SoundCloud, но позже присоединился к CNCF в качестве второго размещенного проекта после Kubernetes. PROMETHEUS предоставил богатым набором мониторинга метрики и системы управления оповещениями, которые помогают разработчикам мониторировать и получать уведомления о какой-либо необычной деятельности или потреблении.
Оператор Прометея
Кореос запустил Оператор Прометея Чтобы облегчить процесс интеграции K8S с Prometheus. Он сохраняет конфигурацию как K8S, так и PROMETHEUS при установке и настройке кластера. Он обеспечивает легкий мониторинг для услуг и развертываний K8S, а также управление конфигурацией PROMETHEUS, GRAFANA и ALERTMANGER. Когда новая версия приложения развернута, K8S управляет созданием нового POD и удаляет более старше. Прометеус, с другой стороны, постоянно наблюдает за API K8S и создает новую конфигурацию PROMETHEUS, когда она обнаруживает изменения, основанные на изменениях/стручках. Он использует SERVICEMONITHER, CRD (CUSFORMENT RESOMENT CESTING), чтобы аннотация конфигурации к цели.
Установка
Предварительные условия
- Кубернеты
- Helm (Установщик упаковки для K8S)
Шаги
Установите оператор PROMETHEUS в другом пространстве имен. Предпочтительно сохранить ваши контейнеры мониторинга в отдельном пространстве имен.
$ helm install stable/prometheus-operator --name prometheus-operator --namespace monitor
Если все установлено отлично, вы можете увидеть эти стручки:
$ kubectl get pods -n monitor NAME READY STATUS RESTARTS AGE alertmanager-prometheus-operator-alertmanager-0 2/2 Running 0 13d prometheus-operator-grafana-749b598b6c-t4r48 2/2 Running 0 13d prometheus-operator-kube-state-metrics-d7b8b7666-zfqg5 1/1 Running 0 13d prometheus-operator-operator-667dd7cbb7-hjbl6 1/1 Running 0 13d prometheus-operator-prometheus-node-exporter-mgsqb 1/1 Running 0 13d prometheus-prometheus-operator-prometheus-0 3/3 Running 1 13d
Чтобы запустить приборную панель, введите следующую команду и перейдите в http://localhost: 9000
Отказ
$ kubectl port-forward -n monitor prometheus-prometheus-operator-prometheus-0 9090
Приборная панель PROMETHEUS
Вы можете ввести свой запрос, чтобы получить результаты о каком-либо конкретном экземпляре или даже графике его, как показано на рисунке выше. Чтобы увидеть визуальное представление на каждом уровне, мы используем Grafana. Это обеспечивает большие визуальные идеи в отношении использования, здоровья и других метрик. Мы также можем добавить больше пользовательских метрик. Мы получим анализ в реальном времени данных.
$ kubectl port-forward $(kubectl get pods --selector=app=grafana -n monitor --output=jsonpath="{.items..metadata.name}") -n monitor 3000
Перейти к http://localhost: 3000
и введите «admin» как имя пользователя и «PROM-оператор» в качестве пароля. Это доступные варианты:
Вы можете получить визуальные графики, выбрав любой из вариантов. Здесь показаны метрики узла: Мы можем настроить оповещения во многих отношениях. Мы можем получить доступ к приборной панели, чтобы настроить AlertManager, перейдя на http://localhost: 9093
После выполнения этой команды:
$ kubectl port-forward -n monitor alertmanager-prometheus-operator-alertmanager-0 9093
Это будет выглядеть так. Здесь вы можете добавить больше предупреждений и увидите URL SLIC API под вкладкой «Состояние». Мы можем установить уведомления о Slack, Hipchat или даже по электронной почте. Некоторые шаблоны доступны здесь Отказ
Заключение
Использование микросервисов в ближайшее время увеличится, и мониторинг метрик и уведомления о предупреждениях будет неотъемлемая часть этого. PROMETHEUS обеспечивает оптимальные службы мониторинга с помощью удобных монтажных услуг.
Оригинал: «https://dev.to/rayandasoriya/kubernetes-monitoring-with-prometheus-2l7k»