Установка Metrics Provider
Metrics Provider — связующий элемент между объектом в кластере Managed Service for Kubernetes и сервисом Yandex Monitoring.
Провайдер преобразует запрос на получение внешних метрик от объекта в кластере Kubernetes в нужный Yandex Monitoring формат, а также выполняет обратное преобразование — от Yandex Monitoring до объекта кластера.
Создание сервисного аккаунта и статического ключа доступа
Для работы провайдера нужно создать сервисный аккаунт и получить для него ключ.
-
Установите утилиту потоковой обработки JSON-файлов
jq
:sudo apt update && sudo apt install jq
-
Создайте сервисный аккаунт с ролью
monitoring.viewer
. -
Создайте ключ для сервисного аккаунта и сохраните его на локальный компьютер:
yc iam key create \ --service-account-id <идентификатор сервисного аккаунта> \ --folder-id <идентификатор каталога> \ --cloud-id <идентификатор облака> \ --description metrics-provider \ --format json \ -o key.json
Результат:
{ "id": "<идентификатор ключа сервисного аккаунта>", "service_account_id": "<идентификатор сервисного аккаунта>", "created_at": "2022-01-27T03:29:45.139311367Z", "description": "metrics-provider", "key_algorithm": "RSA_2048" }
Примечание
Сохраните идентификаторы сервисного аккаунта и его ключа — они понадобятся при дальнейшей установке.
-
Сохраните ключ сервисного аккаунта в формате Base64:
jq -r .private_key key.json > key.pem
Установка с помощью Yandex Cloud Marketplace
- Перейдите на страницу каталога и выберите сервис Managed Service for Kubernetes.
- Нажмите на имя нужного кластера и выберите вкладку Marketplace.
- В разделе Доступные для установки приложения выберите Metrics Provider и нажмите кнопку Использовать.
- Задайте настройки приложения:
-
Пространство имен — выберите пространство имен или создайте новое.
-
Название приложения — укажите название приложения.
-
Идентификатор каталога — укажите идентификатор каталога, в котором будет работать Metrics Provider.
-
Ширина временного окна — укажите ширину временного окна, за которую будут собираться метрики (в формате
DdHhMmSs
, например,5d10h30m20s
). -
(опционально) Отключение прореживания — выберите эту опцию, чтобы не применять к данным функцию прореживания.
-
(опционально) Функция агрегации — выберите функцию агрегации данных. Значение по умолчанию —
AVG
. -
(опционально) Заполнение данных — выберите настройки заполнения пропусков в данных:
NULL
— возвращаетnull
в качестве значения метрики иtimestamp
в качестве временной метки. Значение по умолчанию.NONE
— не возвращает значений.PREVIOUS
— возвращает значение из предыдущей точки.
-
(опционально) Максимальное количество точек — укажите максимальное количество точек, которое будет получено в ответе на запрос. Значение параметра должно быть больше
10
. -
(опционально) Ширина временного окна прореживания — укажите ширину временного окна (сетки) в миллисекундах. Используется для прореживания: точки внутри окна объединяются в одну при помощи функции агрегации. Значение параметра должно быть больше
0
.Примечание
Выберите только одну из настроек Максимальное количество точек или Ширина временного окна прореживания. Чтобы не использовать эти настройки, оставьте оба поля пустыми. Подробнее см. в документации API.
-
ID сервисного аккаунта — укажите идентификатор созданного ранее сервисного аккаунта.
-
ID ключа сервисного аккаунта — укажите идентификатор ключа сервисного аккаунта.
-
Приватный ключ сервисного аккаунта — скопируйте в это поле содержимое файла
key.pem
.
-
- Нажмите кнопку Установить.
Установка с помощью Helm-чарта
-
Установите менеджер пакетов Helm версии не ниже 3.7.0.
-
Установите kubectl и настройте его на работу с созданным кластером.
-
Добавьте репозиторий
metric-provider
:export HELM_EXPERIMENTAL_OCI=1 && \ cat sa-key.json | helm registry login cr.yandex --username 'json_key' --password-stdin && \ helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/marketplace/metric-provider \ --version=<версия Helm-чарта> \ --untar
Актуальную версию Helm-чарта можно посмотреть на странице приложения.
-
Настройте и установите Metrics Provider:
helm install \ --namespace <пространство имен> \ --create-namespace \ --set folderId=<идентификатор каталога> \ --set window=<ширина временного окна> \ --set-file saKeySecretKey=key.json \ --set gridAggregation=<функция агрегации> \ --set gapFilling=<заполнение данных> \ --set maxPoints=<максимальное количество точек> \ --set gridInterval=<ширина временного окна прореживания> \ --set disabled=<true или false> \ metric-provider ./metric-provider/
Обязательные параметры:
namespace
— пространство имен, где будет развернут провайдер.folderId
— идентификатор каталога, в котором будет работать провайдер.window
— ширина временного окна, за которую будут собираться метрики (в форматеDdHhMmSs
, например5d10h30m20s
).
Параметры прореживания (
downsampling
). Для работы провайдера нужно выбрать хотя бы один из параметров:-
gridAggregation
— функция агрегации данных. Значение по умолчанию —AVG
. -
gapFilling
— настройки заполнения пропусков в данных:NULL
— возвращаетnull
в качестве значения метрики иtimestamp
в качестве временной метки.NONE
— не возвращает значений.PREVIOUS
— возвращает значение из предыдущей точки.
-
maxPoints
— максимальное количество точек, которое будет получено в ответе на запрос. Значение параметра должно быть больше10
. -
gridInterval
— ширину временного окна (сетки) в миллисекундах. Используется для прореживания: точки внутри окна объединяются в одну при помощи функции агрегации. Значение параметра должно быть больше0
. -
disabled
— отключение прореживания данных.Примечание
Используйте только один из параметров
maxPoints
,gridInterval
илиdisabled
. Подробнее о параметрах прореживания см. в документации API.