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


Управление затратами с помощью 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.

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

Снимок экрана: экран экономии Kubecost.

Уделите время ознакомлению с различными представлениями и функциями, предоставляемыми Kubecost.