Поделиться через


Управление затратами с помощью Kubecost

Управление затратами — это непрерывный процесс реализации политик для управления затратами. В контексте Kubernetes существует несколько способов управления затратами и оптимизации затрат. К ним относятся собственные средства Kubernetes для управления использованием ресурсов и потребления ресурсов, а также упреждающего мониторинга и оптимизации базовой инфраструктуры.

В этом разделе показано, как использовать Kubecost для управления затратами на кластер Azure Kubernetes (AKS). Вы можете определить рамки выделения затрат на развертывание, службу, метку, pod или пространство имен, что обеспечивает гибкость при выставлении счетов или демонстрации для пользователей кластера.

Установка Kubecost

Существует несколько вариантов установки Kubecost. Дополнительные сведения см. в разделе "Установка Kubecost".

Рекомендуемый метод установки — это диаграмма Helm 3. Чтобы установить базовую конфигурацию Kubecost с помощью Helm 3, выполните следующие команды:

helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm repo update
helm upgrade --install kubecost kubecost/cost-analyzer --namespace kubecost --create-namespace

Через несколько минут проверьте, запущен ли Kubecost:

kubectl get pods -n kubecost

# Connect to the Kubecost dashboard UI

kubectl port-forward -n kubecost svc/kubecost-cost-analyzer 9090:9090

Теперь вы можете открыть браузер и перейти по адресу http://127.0.0.1:9090, чтобы открыть пользовательский интерфейс Kubecost. В пользовательском интерфейсе Kubecost выберите кластер для просмотра сведений о выделении затрат.

Настройка Kubecost для интеграции с облаком Azure

Чтобы завершить установку Kubecost, необходимо настроить облачную интеграцию Azure и конфигурацию карты скорости Azure.

С помощью экспорта затрат Майкрософт можно создать повторяющуюся задачу, которая автоматически экспортирует данные управления затратами в учетную запись хранения Azure ежедневно. Kubecost настроен для доступа к данным в этой учетной записи хранения, что позволяет отображать общую стоимость ресурсов Azure на панели мониторинга, а не только данные, поступающие из кластера AKS. Чтобы убедиться, что Kubecost создает точные панели мониторинга, следует пометить ресурсы Azure, как описано в документации Kubecost для добавления тегов ресурсов Azure. Некоторые ресурсы Azure создаются кластером AKS, это относится к созданию службы типа LoadBalancer или типа PersistentVolume. Чтобы правильно отслеживать затраты на эти ресурсы, можно использовать заметки в ресурсах Kubernetes для добавления соответствующих тегов Azure, как примеры в статье "Использование тегов Azure в службе Azure Kubernetes".

Конфигурация тарифной карты Azure необходима для точного учета цен в вашей панели мониторинга. Вам потребуется создать субъект-службу с настраиваемой ролью, как описано на странице документации и настроить Kubecost, чтобы использовать субъект-службу для запроса API карты выставления счетов Azure.

Kubecost разбивает ресурсы на следующие категории:

  • Ежемесячная стоимость кластера
  • Стоимость пространства имен
  • Затраты на ресурсы развертывания
  • Рентабельность

Выберите кластер, чтобы просмотреть обзор, например следующую панель мониторинга:

Снимок экрана: панель мониторинга Kubecost.

Выберите распределение слева, чтобы углубиться в стоимость использования пространства имен ваших ресурсов. Выделение показывает затраты на центральный процессор, память, постоянные диски и сеть. Kubecost получает данные из цен Azure, но вы также можете задать пользовательские издержки на ресурсы.

Снимок экрана, показывающий экран распределения Kubecost.

Выберите Сбережения слева, чтобы подробно изучить экономию затрат для недоиспользуемых ресурсов. Экономия дает сведения о недоиспользуемых нодах и подах, заброшенных ресурсах, и определяет чрезмерные запросы ресурсов в кластере. На следующем снимке экрана показан пример обзора экономии:

Снимок экрана, показывающий экран экономии Kubecost.

Исследуйте некоторое время разнообразные представления и функции, найденные в Kubecost.