Вступление

Вступление

Наряду с отслеживанием и регистрацией, мониторинг и оповещение являются важными компонентами стека наблюдаемости Kubernetes. Настройка мониторинга для вашего кластера DigitalOcean Kubernetes позволяет отслеживать использование ресурсов, а также анализировать и отлаживать ошибки приложений.

Система мониторинга обычно состоит из базы данных временных рядов, в которой хранятся метрические данные, и уровня визуализации. Кроме того, слой оповещений создает и управляет оповещениями, передавая их по мере необходимости интеграциям и внешним службам. Наконец, один или несколько компонентов генерируют или предоставляют метрические данные, которые будут храниться, визуализироваться и обрабатываться для предупреждений стеком.

Одним из популярных решений для мониторинга является стек Prometheus с открытым исходным кодом, Grafana и Alertmanager, развернуты вместе с kube-state-metrics и node_exporter для предоставления метрик объекта Kubernetes на уровне кластера, а также метрики машинного уровня, такие как загрузка процессора и памяти.

Для развертывания этого стека мониторинга в кластере Kubernetes требуется настройка отдельных компонентов, манифестов, метрик Prometheus и информационных панелей Grafana, что может занять некоторое время. Https://github.com/do-community/doks-monitoring[DigitalOcean Быстрый запуск мониторинга кластера Kubernetes], выпущенный командой по обучению разработчиков сообщества DigitalOcean, содержит полностью определенные манифесты для стека мониторинга кластера Prometheus-Grafana-Alertmanager, а также как набор предварительно настроенных оповещений и панелей Grafana. Он может помочь вам быстро приступить к работе и создать прочную основу для построения стека наблюдаемости.

В этом руководстве мы развернем этот предварительно настроенный стек в DigitalOcean Kubernetes, получим доступ к интерфейсам Prometheus, Grafana и Alertmanager и опишем, как его настроить.

Предпосылки

Прежде чем начать, вам потребуется DigitalOcean Kubernetes cluster и следующие инструменты, установленные в вашей локальной среде разработки:

  • Интерфейс командной строки + kubectl + установлен на вашем локальном компьютере и настроен для подключения к вашему кластеру. Вы можете прочитать больше об установке и настройке + kubectl + in его официальной документации.

  • Https://git-scm.com/book/en/v2/Getting-Started-Install-Git[git] Система контроля версий установлена ​​на вашем локальном компьютере. Чтобы узнать, как установить git на Ubuntu 18.04, обратитесь к Как установить Git на Ubuntu 18.04.

  • Кореутилс base64 инструмент, установленный на вашем локальном компьютере. Если вы используете компьютер с Linux, скорее всего, он уже установлен. Если вы используете OS X, вы можете использовать + openssl base64 +, который устанавливается по умолчанию.

[[step-1-—-cloning-the-github-repository-and-configuring-environment-variables]] === Шаг 1 - Клонирование репозитория GitHub и настройка переменных среды

Для начала клонируйте мониторинг кластера DigitalOcean Kubernetes GitHub repository на свой локальный компьютер с помощью git:

git clone [email protected]:do-community/doks-monitoring.git

Затем перейдите в репо:

cd doks-monitoring

Вы должны увидеть следующую структуру каталогов:

ls
OutputLICENSE
README.md
changes.txt
manifest

Каталог + manifest + содержит манифесты Kubernetes для всех компонентов стека мониторинга, включая Service Accounts, https: / /kubernetes.io/docs/concepts/workloads/controllers/deployment/[Deployments], StatefulSets, https://kubernetes.io/docs / tasks / configure-pod-container / configure-pod-configmap / [ConfigMaps] и т. д. Чтобы узнать больше об этих файлах манифеста и о том, как их настроить, перейдите по ссылке https://www.digitalocean.com/community/tutorials/how-to-set-up-a-prometheus-grafana-and-alertmanager-monitoring- stack-on-digitalocean-kubernetes # step-6-% E2% 80% 94-configing-the-monitor-stack-option [Настройка стека мониторинга].

Если вы просто хотите начать работу, начните с установки переменных окружения + APP_INSTANCE_NAME + и + NAMESPACE +, которые будут использоваться для настройки уникального имени для компонентов стека и настройки https://kubernetes.io. / документы / концепции / обзор / работа с объектами / пространства имен / [пространство имен], в котором будет развернут стек:

export APP_INSTANCE_NAME=
export NAMESPACE=

В этом уроке мы установили для + APP_INSTANCE_NAME + значение + sammy-cluster-мониторинг +, что будет предшествовать всем именам объектов Kubernetes стека мониторинга. Вы должны заменить уникальный описательный префикс для вашего стека мониторинга. Мы также устанавливаем для пространства имен значение + default +. Если вы хотите развернуть стек мониторинга в Пространстве имен *, отличном от * + default + `, убедитесь, что вы сначала создали его в своем кластере:

kubectl create namespace "$NAMESPACE"

Вы должны увидеть следующий вывод:

Outputnamespace/ created

В этом случае переменная окружения + NAMESPACE + была установлена ​​в + sammy +. В оставшейся части урока мы будем предполагать, что для + NAMESPACE + было установлено значение + default +.

Теперь используйте команду + base64 + для кодирования base64 безопасного пароля Grafana. Обязательно замените выбранный вами пароль на ++:

export GRAFANA_GENERATED_PASSWORD="$(echo -n '' | base64)"

Если вы используете macOS, вы можете заменить команду + openssl base64 +, которая устанавливается по умолчанию.

К этому моменту вы получили стеки Kubernetes манифестов и сконфигурировали необходимые переменные среды, так что теперь вы готовы подставить сконфигурированные переменные в файлы манифестов Kubernetes и создать стек в вашем кластере Kubernetes.

[[step-2-—-creating-the-monitoring-stack]] === Шаг 2 - Создание стека мониторинга

Репозиторий QuickOstart для DigitalOcean Kubernetes Monitoring содержит манифесты для следующих компонентов мониторинга, очистки и визуализации:

  • * Prometheus * - это база данных и инструмент мониторинга временных рядов, который работает путем опроса конечных точек метрик, а также очистки и обработки данных, представленных этими конечными точками. Он позволяет запрашивать эти данные, используя PromQL, язык запросов данных временных рядов. Прометей будет развернут в кластере как StatefulSet с двумя репликами, использующими https://kubernetes.io/docs/concepts/storage/persistent -volumes / [Постоянные тома] с DigitalOcean Block Storage. Кроме того, предварительно настроенный набор предупреждений, правил и заданий Prometheus будет храниться как ConfigMap. Чтобы узнать больше об этом, перейдите к https://www.digitalocean.com/community/tutorials/how-to-set-up-a-prometheus-grafana-and-alertmanager-monitoring-stack-on-digitalocean- kubernetes # prometheus Раздел [Prometheus] Настройка стека мониторинга.

  • * Alertmanager *, обычно развернутый рядом с Прометеем, образует слой предупреждений в стеке, обработка предупреждений, генерируемых Prometheus, и их дедупликация, группировка и маршрутизация в интеграции, такие как электронная почта или PagerDuty. Alertmanager будет установлен как StatefulSet с 2 репликами. Чтобы узнать больше об Alertmanager, обратитесь к Alerting из документации Prometheus.

  • * Grafana * - инструмент для визуализации и анализа данных, который позволяет вам строить панели мониторинга и графики для ваших данных метрик. Графана будет установлена ​​как StatefulSet с одной репликой. Кроме того, предварительно сконфигурированный набор панелей мониторинга, созданный kubernetes-mixin, будет сохранен как ConfigMap.

  • * kube-state-metrics * - дополнительный агент, который слушает Kubernetes Сервер API и генерирует метрики о состоянии объектов Kubernetes, таких как Deployments и Pod. Эти метрики служат открытым текстом на конечных точках HTTP и используются Прометеем. kube-state-metrics будет установлен как автоматически масштабируемый Deployment с одной репликой.

  • * node-exporter *, экспортер Prometheus, который работает на узлах кластера и предоставляет метрики ОС и аппаратного обеспечения, такие как загрузка процессора и памяти, Prometheus. Эти метрики также служат открытым текстом на конечных точках HTTP и используются Прометеем. Узел-экспортер будет установлен как DaemonSet.

По умолчанию, наряду со соскребаемыми метриками, сгенерированными узлами-экспортерами, kube-state-metrics и другими компонентами, перечисленными выше, Prometheus будет настроен для очистки метрик от следующих компонентов:

  • куб-аписервер Kubernetes API server.

  • kubelet, агент основного узла, который взаимодействует с kube-apiserver для управления модулями и контейнерами на узле.

  • cAdvisor, агент узла, который обнаруживает запущенные контейнеры и собирает их показатели использования ЦП, памяти, файловой системы и сети.

Чтобы узнать больше о настройке этих компонентов и заданиях на очистку Prometheus, перейдите к https://www.digitalocean.com/community/tutorials/how-to-set-up-a-prometheus-grafana-and-alertmanager-monitoring-stack -on-digitalocean-kubernetes # step-6-% E2% 80% 94-configing-the-monitor-stack-необязательный [Конфигурирование стека мониторинга]. Теперь мы подставим переменные среды, определенные на предыдущем шаге, в файлы манифеста репозитория и объединим отдельные манифесты в один мастер-файл.

Начните с использования + awk + и + envsubst +, чтобы заполнить переменные + APP_INSTANCE_NAME +, + NAMESPACE + и + GRAFANA_GENERATED_PASSWORD + в файлах манифеста репо. После подстановки в значения переменных файлы будут объединены и сохранены в главный файл манифеста с именем + _manifest.yaml +.

awk 'FNR==1 {print "---"}{print}' manifest/* \
| envsubst '$APP_INSTANCE_NAME $NAMESPACE $GRAFANA_GENERATED_PASSWORD' \
> "${APP_INSTANCE_NAME}_manifest.yaml"

Следует рассмотреть возможность сохранения этого файла в системе управления версиями, чтобы можно было отслеживать изменения в стеке мониторинга и выполнять откат к предыдущим версиям. Если вы это сделаете, обязательно удалите переменную + admin-password + из файла, чтобы вы не проверяли свой пароль Grafana в управлении версиями.

Теперь, когда вы сгенерировали главный файл манифеста, используйте + kubectl apply -f +, чтобы применить манифест и создать стек в настроенном вами пространстве имен:

kubectl apply -f "${APP_INSTANCE_NAME}_manifest.yaml" --namespace "${NAMESPACE}"

Вы должны увидеть вывод, похожий на следующий:

Outputserviceaccount/alertmanager created
configmap/-alertmanager-config created
service/-alertmanager-operated created
service/-alertmanager created

. . .

clusterrolebinding.rbac.authorization.k8s.io/prometheus created
configmap/-prometheus-config created
service/-prometheus created
statefulset.apps/-prometheus created

Вы можете отслеживать ход развертывания стека, используя + kubectl get all +. Как только все компоненты стека будут + RUNNING +, вы сможете получить доступ к предварительно сконфигурированным панелям мониторинга Grafana через веб-интерфейс Grafana.

[[step-3-—-accessing-grafana-and-exploring-metrics-data]] === Шаг 3 - Доступ к Grafana и изучение данных метрик

Манифест службы Grafana представляет Grafana как службу + ClusterIP +, что означает, что она доступна только через внутренний IP-адрес кластера. Чтобы получить доступ к Grafana вне вашего кластера Kubernetes, вы можете либо использовать + kubectl patch +, чтобы обновить сервис на месте для общедоступного типа, такого как + NodePort + или + LoadBalancer +, либо + kubectl port-forward + перенаправить локальный порт в порт Grafana Pod. В этом руководстве мы перенаправим порты, поэтому вы можете перейти к https://www.digitalocean.com/community/tutorials/how-to-set-up-a-prometheus-grafana-and-alertmanager-monitoring-stack -on-digitalocean-kubernetes # forwarding-a-local-port-to-access-the-grafana-service [Пересылка локального порта для доступа к услуге Grafana]. Следующий раздел о внешнем воздействии Grafana включен для справочных целей.

Предоставление сервиса Grafana с использованием балансировщика нагрузки (необязательно)

Если вы хотите создать балансировщик нагрузки DigitalOcean для Grafana с внешним публичным IP-адресом, используйте + kubectl patch +, чтобы обновить существующую службу Grafana на месте с типом службы + LoadBalancer +:

kubectl patch svc "$APP_INSTANCE_NAME-grafana" \
 --namespace "$NAMESPACE" \
 -p '{"spec": {"type": "LoadBalancer"}}'

Команда kubectl + patch + позволяет вам обновлять объекты Kubernetes на месте, чтобы вносить изменения без необходимости повторного развертывания объектов. Вы также можете изменить основной файл манифеста напрямую, добавив параметр + type: LoadBalancer + в https://github.com/do-community/doks-monitoring/blob/master/manifest/grafana-service.yaml#L9 [Графана Сервис Спец]. Чтобы узнать больше о типах + kubectl patch + и сервисах Kubernetes, вы можете обратиться к имеющимся API-объектам Update Использование kubectl patch и Services ресурсов в официальных документах Kubernetes.

После выполнения вышеуказанной команды вы должны увидеть следующее:

Outputservice/-grafana patched

Создание балансировщика нагрузки и назначение ему общедоступного IP-адреса может занять несколько минут. Вы можете отслеживать его прогресс, используя следующую команду с флагом + -w +, чтобы отслеживать изменения:

kubectl get service "$APP_INSTANCE_NAME-grafana" -w

После того, как DigitalOcean Load Balancer был создан и назначен внешний IP-адрес, вы можете получить его внешний IP-адрес, используя следующие команды:

=$(kubectl get svc $APP_INSTANCE_NAME-grafana \
 --namespace $NAMESPACE \
 --output jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo "http://${}/"

Теперь вы можете получить доступ к интерфейсу Grafana, перейдя к + http: /// +.

Переадресация локального порта для доступа к сервису Grafana

Если вы не хотите предоставлять сервис Grafana извне, вы также можете перенаправить локальный порт «+ 3000 » в кластер непосредственно на модуль Grafana, используя « kubectl port-forward +».

kubectl port-forward --namespace ${NAMESPACE} ${APP_INSTANCE_NAME}-grafana-0 3000

Вы должны увидеть следующий вывод:

OutputForwarding from 127.0.0.1:3000 -> 3000
Forwarding from [::1]:3000 -> 3000

Это перенаправит локальный порт + 3000 + в + containerPort + + 3000 + графического модуля + -grafana-0 +. Чтобы узнать больше о переадресации портов в кластер Kubernetes, обратитесь к Use Переадресация портов для доступа к приложениям в кластере .

Посетите + http: // localhost: 3000 + в вашем веб-браузере. Вы должны увидеть следующую страницу входа Grafana:

изображение: https: //assets.digitalocean.com/articles/doks_helm_monitoring/grafana_login.png [Страница входа в Grafana]

Чтобы войти в систему, используйте имя пользователя по умолчанию + admin (если вы не изменили параметр` + admin-user`) и пароль, который вы настроили в шаге 1.

Вы попадете на следующую * Домашнюю панель управления *:

изображение: https: //assets.digitalocean.com/articles/doks_helm_monitoring/grafana_home.png [Домашняя страница Графана]

В левой навигационной панели выберите кнопку * Dashboards *, затем нажмите * Manage *:

изображение: https: //assets.digitalocean.com/articles/doks_helm_monitoring/grafana_dashboard.png [вкладка «Панель инструментов Grafana»]

Вы перейдете к следующему интерфейсу управления панелью мониторинга, в котором перечислены панели, сконфигурированные в `+dashboards. -configmap.yaml + ` manifest:

изображение: https: //assets.digitalocean.com/articles/doks_helm_monitoring/grafana_dashboard_list.png [Список панели Grafana]

Эти инструментальные панели генерируются с помощью + kubernetes-mixin +, проекта с открытым исходным кодом, который позволяет создавать стандартизированный набор мониторинга кластеров инструментальных панелей Grafana и предупреждений Prometheus. Чтобы узнать больше, обратитесь к kubernetes-mixin репозиторий GitHub.

Нажмите на панель управления * Kubernetes / Nodes *, которая отображает использование процессора, памяти, диска и сети для данного узла:

изображение: https: //assets.digitalocean.com/articles/doks_helm_monitoring/grafana_nodes_dash.png [Панель инструментов узлов Grafana]

Описание использования этих сводных панелей выходит за рамки данного руководства, но вы можете обратиться к следующим ресурсам, чтобы узнать больше:

На следующем шаге мы будем следовать аналогичному процессу подключения и изучения системы мониторинга Prometheus.

[[step-4-—-accessing-prometheus-and-alertmanager]] === Шаг 4 - Доступ к Prometheus и Alertmanager

Чтобы подключиться к модулю Prometheus, мы можем использовать + kubectl port-forward + для пересылки локального порта. Если вы закончили изучение Grafana, вы можете закрыть туннель переадресации портов, нажав + CTRL-C +. Кроме того, вы можете открыть новую оболочку и создать новое соединение с переадресацией портов.

Начнем с перечисления запущенных модулей в пространстве имен + default +:

kubectl get pod -n

Вы должны увидеть следующие стручки:

Outputsammy-cluster-monitoring-alertmanager-0                      1/1     Running   0          17m
sammy-cluster-monitoring-alertmanager-1                      1/1     Running   0          15m
sammy-cluster-monitoring-grafana-0                           1/1     Running   0          16m
sammy-cluster-monitoring-kube-state-metrics-d68bb884-gmgxt   2/2     Running   0          16m
sammy-cluster-monitoring-node-exporter-7hvb7                 1/1     Running   0          16m
sammy-cluster-monitoring-node-exporter-c2rvj                 1/1     Running   0          16m
sammy-cluster-monitoring-node-exporter-w8j74                 1/1     Running   0          16m
sammy-cluster-monitoring-prometheus-0                        1/1     Running   0          16m
sammy-cluster-monitoring-prometheus-1                        1/1     Running   0          16m

Мы собираемся перенаправить локальный порт + 9090 + в порт + 9090 + модуля + -prometheus-0 +:

kubectl port-forward --namespace ${NAMESPACE} -prometheus-0 9090

Вы должны увидеть следующий вывод:

OutputForwarding from 127.0.0.1:9090 -> 9090
Forwarding from [::1]:9090 -> 9090

Это указывает на то, что локальный порт + 9090 + успешно перенаправляется в модуль Prometheus.

Посетите + http: // localhost: 9090 + в вашем веб-браузере. Вы должны увидеть следующую страницу Prometheus * Graph *:

изображение: https: //assets.digitalocean.com/articles/doks_monitoring_quickstart/prometheus.png [Страница с графиком Прометея]

Отсюда вы можете использовать PromQL, язык запросов Prometheus, для выбора и агрегирования метрик временных рядов, хранящихся в его базе данных. Чтобы узнать больше о PromQL, обратитесь к Querying Prometheus в официальных документах Prometheus.

В поле * Выражение * введите + kubelet_node_name + и нажмите * Выполнить *. Вы должны увидеть список временных рядов с метрикой + kubelet_node_name +, которая сообщает об Узлах в вашем кластере Kubernetes. Вы можете увидеть, какой узел сгенерировал метрику, и какое задание удалило метрику в метках метрики:

изображение: https: //assets.digitalocean.com/articles/doks_monitoring_quickstart/prometheus_results.png [Результаты запроса Prometheus]

Наконец, в верхней панели навигации нажмите * Status *, а затем * Targets *, чтобы увидеть список целей, которые Prometheus настроил для очистки. Вы должны увидеть список целей, соответствующих списку конечных точек мониторинга, описанному в начале https://www.digitalocean.com/community/tutorials/how-to-set-up-a-prometheus-grafana-and-alertmanager -monitoring-stack-on-digitalocean-kubernetes # step-2-% E2% 80% 94-создание-стека мониторинга [Шаг 2].

Чтобы узнать больше о Prometheus и о том, как запрашивать показатели кластера, обратитесь к официальным документам Prometheus.

Чтобы подключиться к Alertmanager, который управляет оповещениями, генерируемыми Prometheus, мы будем следовать процессу, аналогичному тому, который мы использовали для подключения к Prometheus. , В общем, вы можете исследовать оповещения Alertmanager, щелкнув по * Alerts * в верхней панели навигации Prometheus.

Чтобы подключиться к блокам Alertmanager, мы снова будем использовать + kubectl port-forward + для пересылки локального порта. Если вы ознакомились с Prometheus, вы можете закрыть туннель переадресации портов, нажав + CTRL-C +, или открыть новую оболочку, чтобы создать новое соединение. .

Мы собираемся перенаправить локальный порт + 9093 + в порт + 9093 + модуля + -alertmanager-0 +:

kubectl port-forward --namespace ${NAMESPACE} -alertmanager-0 9093

Вы должны увидеть следующий вывод:

OutputForwarding from 127.0.0.1:9093 -> 9093
Forwarding from [::1]:9093 -> 9093

Это указывает на то, что локальный порт + 9093 + успешно перенаправляется в модуль Alertmanager.

Посетите + http: // localhost: 9093 + в своем веб-браузере. Вы должны увидеть следующую страницу Alertmanager * Alerts *:

изображение: https: //assets.digitalocean.com/articles/doks_monitoring_quickstart/alertmanager.png [страница оповещений Alertmanager]

Отсюда вы можете изучить оповещения об увольнении и, при необходимости, отключить их. Чтобы узнать больше о Alertmanager, обратитесь к документации official Alertmanager.

На следующем шаге вы узнаете, как дополнительно настраивать и масштабировать некоторые компоненты стека мониторинга.

[[step-6-—-configuring-the-monitoring-stack-optional]] === Шаг 6 - Настройка стека мониторинга (необязательно)

Манифесты, включенные в репозиторий Quickstart для мониторинга кластера DigitalOcean Kubernetes, можно изменить, чтобы использовать разные образы контейнеров, разное количество реплик Pod, разные порты и настраиваемые файлы конфигурации.

На этом этапе мы предоставим общий обзор цели каждого манифеста, а затем продемонстрируем, как масштабировать Prometheus до 3-х реплик, изменяя основной файл манифеста.

Для начала перейдите в подкаталог + manifest + в репозитории и перечислите содержимое каталога:

cd manifest
ls
Outputalertmanager-0serviceaccount.yaml
alertmanager-configmap.yaml
alertmanager-operated-service.yaml
alertmanager-service.yaml
. . .
node-exporter-ds.yaml
prometheus-0serviceaccount.yaml
prometheus-configmap.yaml
prometheus-service.yaml
prometheus-statefulset.yaml

Здесь вы найдете манифесты для различных компонентов стека мониторинга. Чтобы узнать больше о конкретных параметрах в манифестах, перейдите по ссылкам и просмотрите комментарии, содержащиеся в файлах YAML:

Alertmanager

графана

Кубэ-состояние-метрика

Узел-экспортер

Прометей

  • https://github.com/do-community/doks-monitoring/blob/master/manifest/prometheus-0serviceaccount.yaml [ '+ ПРОМЕТЕЙ-0serviceaccount.yaml + `]: Учетная запись службы Prometheus, ClusterRole и ClusterRoleBinding.

  • https://github.com/do-community/doks-monitoring/blob/master/manifest/prometheus-configmap.yaml [ '+ ПРОМЕТЕЙ-configmap.yaml + `]: ConfigMap, который содержит три файла конфигурации:

  • + alerts.yaml +: содержит предварительно настроенный набор оповещений, сгенерированных + kubernetes-mixin + (который также использовался для генерации информационных панелей Grafana). Чтобы узнать больше о настройке правил оповещения, обратитесь к Alerting Rules из документации Prometheus.

  • + prometheus.yaml +: основной файл конфигурации Prometheus. Прометей был предварительно настроен для очистки всех компонентов, перечисленных в начале https://www.digitalocean.com/community/tutorials/how-to-set-up-a-prometheus-grafana-and-alertmanager-monitoring-stack-on -digitalocean-kubernetes # step-2-% E2% 80% 94-создание-стека мониторинга [Шаг 2]. Настройка Prometheus выходит за рамки этой статьи, но чтобы узнать больше, вы можете обратиться к Configuration в официальных документах Prometheus.

  • + rules.yaml +: набор правил записи Prometheus, которые позволяют Прометей для вычисления часто необходимых или вычислительно дорогих выражений и сохранения их результатов в виде нового набора временных рядов. Они также генерируются + kubernetes-mixin +, и их настройка выходит за рамки этой статьи. Чтобы узнать больше, вы можете обратиться к Recording Rules из официальной документации Prometheus.

  • https://github.com/do-community/doks-monitoring/blob/master/manifest/prometheus-service.yaml [ '+ ПРОМЕТЕЙ-service.yaml + `]: Сервис, который предоставляет Prometheus StatefulSet.

  • https://github.com/do-community/doks-monitoring/blob/master/manifest/prometheus-statefulset.yaml [ '+ ПРОМЕТЕЙ-statefulset.yaml + `]: Prometheus StatefulSet, настроенный с 2 ​​репликами. Этот параметр можно масштабировать в зависимости от ваших потребностей.

Пример: масштабирование Прометея

Чтобы продемонстрировать, как изменить стек мониторинга, мы масштабируем количество реплик Prometheus с 2 до 3.

Откройте файл мастер-манифеста + _manifest.yaml + с помощью выбранного вами редактора:

nano _manifest.yaml

Прокрутите вниз до раздела Prometheus StatefulSet манифеста:

Output. . .
apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
 name: sammy-cluster-monitoring-prometheus
 labels: &Labels
   k8s-app: prometheus
   app.kubernetes.io/name: sammy-cluster-monitoring
   app.kubernetes.io/component: prometheus
spec:
 serviceName: "sammy-cluster-monitoring-prometheus"
 replicas: 2
 podManagementPolicy: "Parallel"
 updateStrategy:
   type: "RollingUpdate"
 selector:
   matchLabels: *Labels
 template:
   metadata:
     labels: *Labels
   spec:
. . .

Измените количество реплик с 2 на 3:

Output. . .
apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
 name: sammy-cluster-monitoring-prometheus
 labels: &Labels
   k8s-app: prometheus
   app.kubernetes.io/name: sammy-cluster-monitoring
   app.kubernetes.io/component: prometheus
spec:
 serviceName: "sammy-cluster-monitoring-prometheus"
 replicas:
 podManagementPolicy: "Parallel"
 updateStrategy:
   type: "RollingUpdate"
 selector:
   matchLabels: *Labels
 template:
   metadata:
     labels: *Labels
   spec:
. . .

Когда вы закончите, сохраните и закройте файл.

Примените изменения, используя + kubectl apply -f +:

kubectl apply -f _manifest.yaml --namespace default

Вы можете отслеживать прогресс, используя + kubectl get pods +. Используя эту же технику, вы можете обновить многие параметры Kubernetes и большую часть конфигурации для этого стека наблюдаемости.

Заключение

В этом руководстве вы установили стек мониторинга Prometheus, Grafana и Alertmanager в свой кластер DigitalOcean Kubernetes со стандартным набором панелей мониторинга, правил Prometheus и предупреждений.

Вы также можете развернуть этот стек мониторинга с помощью диспетчера пакетов Kubernetes Helm. Чтобы узнать больше, обратитесь к How для установки DigitalOcean Мониторинг кластера Кубернетеса с помощью шлема и прометея. Еще один способ установить и запустить этот стек - это использовать DigitalOcean Marketplace https://marketplace.digitalocean.com/apps/kubernetes-monitoring-stack-beta[Kubernetes Solution Stack Solution, который в настоящее время находится в стадии бета-тестирования.

Хранилище быстрого запуска DigitalOcean Kubernetes Cluster Monitoring в значительной степени основано на решении click-to-deploy Prometheus и изменено с него. Полный манифест изменений и изменений из исходного репозитория можно найти в https://github.com/do-community/doks-monitoring/blob/master/changes.md [+ changes.md + file быстрого репозитория репозитория. ,

Related