Назначение
Функциональность Биллинг и управление расходами предназначена для учёта, тарификации и анализа используемых ресурсов. Он собирает данные о потреблении ресурсов (CPU, память, хранилище) по всем управляемым кластерам и рабочим пространствам.
Основные возможности:
- просмотр стоимости инфраструктуры в динамике с использованием фильтров и различных срезов (Дашборд)
- детализация расходов по рабочим пространствам, кластерам, неймспейсам, контроллерам и ресурсам, а также меткам
- создание и настройка тарифов для расчёта стоимости
- генерация мгновенных и регулярных отчётов
- экспорт данных в формате CSV
Для полноценной работы функционала, необходимо:
Модели расчёта и агрегации
На текущий момент реализовано 2 модели расчёта:
- По реквестам — учитываются resource requests, указанные для пода
- По реальному использованию — учитывается фактическое потребление ресурсов подами
Также доступны 2 агрегации:
- По среднему - метрики агрегируются по среднему значению за час
- По среднему — метрики агрегируются по среднему значению за час
- 95 процентиль — метрики агрегируются по 95 процентили за час
Минимальная временная единица, использующаяся в расчетах — 1 час.
Включение и отключение функциональности
Включение
По умолчанию функциональность Биллинг и управление расходами отключён. Для включения используйте команду:
kubectl patch mc commander --type merge --patch '{"spec":{"settings":{"featureFlags":{"billingEnabled":true}}}}'
После включения, в управляемых кластерах будет настроена отправка данных о потреблении ресурсов (CPU, память, хранилище) в централизованное хранилище в управляющем кластере Deckhouse Commander.
Раздел “Биллинг” станет доступен в верхней панели навигации на экране со списком рабочих пространств или по URL {АДРЕС_COMMANDER}/billing/
Если раздел биллинга не отображается, убедитесь в наличии доступа к разделу
Отключение
Для отключения функциональности используйте команду:
kubectl patch mc commander --type merge --patch '{"spec":{"settings":{"featureFlags":{"billingEnabled":false}}}}'
При необходимости, удалите вручную ресурсы, оставшиеся после отключения функциональности:
kubectl -n d8-commander delete pvc -l app=billing-reports
kubectl -n d8-commander delete pvc -l app=billing-prometheus
Управление доступом
Доступ к функциональности Биллинг и управление расходами настраивается в разделе «Пользователи и права» с возможностью разграничить права к внутренним разделам. В боковом меню отображаются только те разделы, для которых у текущего пользователя есть права доступа.
Имена ресурсов
Для контроля доступа используются следующие ресурсы:
billingdashboard
- для доступа к разделу “Дашборд” и просмотру аналитикиbillingtariffs
— для доступа к управлению тарифамиbillingreports
— для доступа к управлению отчётами
Создание тарифной метки
Связь между тарифом и метриками осуществляется при помощи метки billing.commander.deckhouse.io/name
для вычислительных ресурсов и storageclass
для хранилища. Метка для каждого узла назначается в конфигурации группы узлов, а её значение используется как ключ при указании стоимости за ресурс в тарифе.
Пример:
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
name: worker
spec:
cloudInstances:
classReference:
kind: YandexInstanceClass
name: worker
# Максимальное количество инстансов в каждой зоне (используется при масштабировании).
maxPerZone: 1
# Минимальное количество инстансов в каждой зоне.
minPerZone: 1
# Список зон, в которых создаются инстансы.
zones:
- ru-central1-a
disruptions:
approvalMode: Automatic
nodeTemplate:
labels:
node-role/worker: ""
billing.commander.deckhouse.io/name: a1.large
nodeType: CloudEphemeral
Навигация
Раздел «Дашборд»
Раздел предназначен для анализа расходов в реальном времени.
Основные элементы интерфейса:
- Фильтры и измерения — Рабочее пространство, Кластер, Неймспейсы, Контроллеры, Ресурсы
- Период — выбор даты и диапазона анализа
- Группировка — по дням, неделям или месяцам
- Графики и таблицы — отображают затраты по выбранным параметрам
- Итоговая стоимость — агрегированная по текущему фильтру
Особенности:
- Все значения фильтров формируются только из доступных ресурсов.
Раздел «Тарифы»
Раздел для администраторов и менеджеров.
Позволяет:
- создавать новые тарифы на ресурсы (ЦПУ, Память, Хранилище)
- задавать дату начала действия тарифа
- редактировать или удалять существующие тарифы
Каждый тариф содержит:
- имя тарифа
- модель расчёта
- привязку к нодгруппе и классу хранилища (лейблы
billing.commander.deckhouse.io/name
иstorageclass
) - стоимость ресурса
- статус (активен/неактивен)
Особенности:
- Привязка стоимости ресурса осуществляется при помощи метки назначенной на нодгруппу либо к классу хранилища
- В один момент времени может быть активен только один тариф
- Дата начала тарифа может быть изменена на любую как в прошлом, так и в будущем
Создание тарифа
Важно!
Прежде чем приступать к созданию тарифа, необходимо убедиться, что на все нодгруппы назначен лейбл billing.commander.deckhouse.io/name
, значения которого будут использоваться в качестве ключа для привязки к тарифу, а для хранилищ определён их storageclass
- Нажмите на кнопку создать
- Укажите имя тарифа
- Выберите желаемую модель расчёта и агрегацию
- Для вычислительных ресурсов выберите значение метки
billing.commander.deckhouse.io/name
- Укажите стоимость за единицу ЦПУ и Памяти
- Нажмите на ссылку “Добавить метку” и укажите стоимости для каждой метки
- Повоторите операцию для каждой метки
storageclass
в разделе Хранилище - Нажмите кнопку Создать тариф
Данные станут доступны с момента создания тарифа.
Раздел «Отчёты»
Используется для генерации аналитических отчётов по запросу, а также для создания расписания для периодической генерации отчётов.
Основные элементы интерфейса:
- Вкладка Все отчёты — список доступных для скачивания отчётов.
- Вкладка Управление регулярными отчётами — список расписаний, по которым создаются регулярные отчёты. Каждое расписание можно отредактировать и удалить.
- Модальное окно для настройки параметров отчёта.
Создание мгновенного отчёта
- Нажмите кнопку Создать.
- Укажите имя отчёта
- Укажите тип Мгновенный
- Укажите период
- Выберите вложенные колонки для детализации (например: Рабочее пространство, Кластер, Неймспейс)
- Для детализации расходов по каждому типу ресурса поставьте галку Детализировать по ресурсам
- Нажмите Сохранить. Отчёт отобразится в списке и начнёт создаваться
- После завершения генерации отчёт будет доступен для скачивания в формате CSV (разделитель “,”, первая строка — название колонок)
Создание регулярного отчёта
- Нажмите кнопку Создать.
- Укажите имя отчёта
- Укажите тип Регулярный
- Укажите дату начала и периодичность
- Выберите вложенные колонки для детализации (например: Рабочее пространство, Кластер, Неймспейс)
- Для детализации расходов по каждому типу ресурса поставьте галку Детализировать по ресурсам
- Нажмите Сохранить. Расписание сохранится на вкладке Управление регулярными отчётами
Отчёт будет автоматически создаваться по расписанию и отображаться в разделе Все отчёты