Установка Metrics Provider
Metrics Provider транслирует метрики объектов кластера Managed Service for Kubernetes в системы мониторинга и системы автоматического масштабирования. Метрики можно транслировать и в обратную сторону: например, объекты кластера могут получать метрики сервиса Yandex Monitoring.
Провайдер преобразует запрос на получение внешних метрик от объекта кластера Managed Service for Kubernetes в нужный Monitoring формат, а также выполняет обратное преобразование — от Monitoring до объекта кластера.
Перед началом работы
-
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра
--folder-name
или--folder-id
. -
Создайте сервисный аккаунт с ролью
monitoring.viewer
. -
Создайте авторизованный ключ доступа для сервисного аккаунта в формате JSON и сохраните его в файл
sa-key.json
:yc iam key create \ --service-account-name=<имя_сервисного_аккаунта> \ --output=sa-key.json
-
Убедитесь, что группы безопасности для кластера Managed Service for Kubernetes и его групп узлов настроены корректно. Если отсутствует какое-либо из правил — добавьте его.
Важно
От настройки групп безопасности зависит работоспособность и доступность кластера, а также запущенных в нем сервисов и приложений.
Установка с помощью Yandex Cloud Marketplace
- Перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
- Нажмите на имя нужного кластера Managed Service for Kubernetes и выберите вкладку Marketplace.
- В разделе Доступные для установки приложения выберите Metrics Provider и нажмите кнопку Перейти к установке.
- Задайте настройки приложения:
-
Пространство имен — выберите пространство имен или создайте новое.
-
Название приложения — укажите название приложения.
-
Идентификатор каталога — укажите идентификатор каталога, в котором будет работать Metrics Provider.
-
Ширина временного окна — укажите ширину временного окна, за которую будут собираться метрики (в формате
DdHhMmSs
, например,5d10h30m20s
). -
(Опционально) Отключение прореживания — выберите эту опцию, чтобы не применять к данным функцию прореживания.
-
(Опционально) Функция агрегации — выберите функцию агрегации данных. Значение по умолчанию —
AVG
. -
(Опционально) Заполнение данных — выберите настройки заполнения пропусков в данных:
NULL
— возвращаетnull
в качестве значения метрики иtimestamp
в качестве временной метки. Значение по умолчанию.NONE
— не возвращает значений.PREVIOUS
— возвращает значение из предыдущей точки.
-
(Опционально) Максимальное количество точек — укажите максимальное количество точек, которое будет получено в ответе на запрос. Значение параметра должно быть больше
10
. -
(Опционально) Ширина временного окна прореживания — укажите ширину временного окна (сетки) в миллисекундах. Используется для прореживания: точки внутри окна объединяются в одну при помощи функции агрегации. Значение параметра должно быть больше
0
.Примечание
Выберите только одну из настроек Максимальное количество точек или Ширина временного окна прореживания. Чтобы не использовать эти настройки, оставьте оба поля пустыми. Подробнее см. в документации API.
-
Secret Key — скопируйте содержимое файла
sa-key.json
или создайте новый ключ доступа для сервисного аккаунта. Сервисный аккаунт должен иметь рольmonitoring.viewer
.
-
- Нажмите кнопку Установить.
- Дождитесь перехода приложения в статус
Deployed
.
Установка с помощью Helm-чарта
-
Установите менеджер пакетов Helm
версии не ниже 3.8.0. -
Установите kubectl
и настройте его на работу с созданным кластером. -
Добавьте репозиторий
metric-provider
:cat sa-key.json | helm registry login cr.yandex --username 'json_key' --password-stdin && \ helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/metric-provider/chart/metric-provider \ --version 0.1.12 \ --untar
Примечание
Если вы используете версию Helm ниже 3.8.0, добавьте в начало команды строку
export HELM_EXPERIMENTAL_OCI=1 && \
, чтобы включить поддержку Open Container Initiative (OCI) в клиенте Helm. -
Настройте и установите Metrics Provider:
helm install \ --namespace <пространство_имен> \ --create-namespace \ --set yandexMetrics.folderId=<идентификатор_каталога> \ --set window=<ширина_временного_окна> \ --set-file yandexMetrics.token.serviceAccountJson=<путь_к_файлу_с_авторизованным_ключом_сервисного_аккаунта> \ --set yandexMetrics.downsampling.gridAggregation=<функция_агрегации> \ --set yandexMetrics.downsampling.gapFilling=<заполнение_данных> \ --set yandexMetrics.downsampling.maxPoints=<максимальное_количество_точек> \ --set yandexMetrics.downsampling.gridInterval=<ширина_временного_окна_прореживания> \ --set yandexMetrics.downsampling.disabled=<режим_прореживания_данных> \ metric-provider ./metric-provider/
Обязательные параметры:
--namespace
— пространство имен, где будет развернут провайдер.yandexMetrics.folderId
— идентификатор каталога, в котором будет работать провайдер.window
— ширина временного окна, за которую будут собираться метрики (в форматеDdHhMmSs
, например5d10h30m20s
).yandexMetrics.token.serviceAccountJson
— путь к файлу с авторизованным ключом сервисного аккаунта с рольюmonitoring.viewer
.
Параметры прореживания (
downsampling
). Для работы провайдера нужно выбрать хотя бы один из параметров:-
yandexMetrics.downsampling.gridAggregation
— функция агрегации данных. Значение по умолчанию —AVG
. -
yandexMetrics.downsampling.gapFilling
— настройки заполнения пропусков в данных:NULL
— возвращаетnull
в качестве значения метрики иtimestamp
в качестве временной метки.NONE
— не возвращает значений.PREVIOUS
— возвращает значение из предыдущей точки.
-
yandexMetrics.downsampling.maxPoints
— максимальное количество точек, которое будет получено в ответе на запрос. Значение параметра должно быть больше10
. -
yandexMetrics.downsampling.gridInterval
— ширину временного окна (сетки) в миллисекундах. Используется для прореживания: точки внутри окна объединяются в одну при помощи функции агрегации. Значение параметра должно быть больше0
. -
yandexMetrics.downsampling.disabled
— отключение прореживания данных. Возможные значения:true
илиfalse
.Примечание
Используйте только один из параметров
yandexMetrics.downsampling.maxPoints
,yandexMetrics.downsampling.gridInterval
илиyandexMetrics.downsampling.disabled
. Подробнее о параметрах прореживания см. в документации API.