анализ затрат Служба Azure Kubernetes

Кластер Служба Azure Kubernetes (AKS) зависит от ресурсов Azure, таких как виртуальные машины, виртуальные диски, подсистемы балансировки нагрузки и общедоступные IP-адреса. Несколько приложений могут использовать эти ресурсы, которые могут поддерживаться различными командами в вашей организации. Шаблоны потребления ресурсов для этих приложений часто являются переменными, поэтому их вклад в общую стоимость ресурсов кластера также может отличаться. Некоторые приложения также могут иметь места в нескольких кластерах, что может представлять проблему при выполнении управления затратами и затратами.

Ранее управление затратами Майкрософт (MCM) агрегировало потребление ресурсов кластера в группе ресурсов кластера. Вы можете использовать MCM для анализа затрат, но существовали несколько проблем:

  • Не было собственной возможности Azure отображать использование ресурсов кластера на уровне более детально, чем кластер. Не было разбивки на дискретные категории, такие как вычисления (включая ядра ЦП и память), хранилище и сеть.

  • Нет собственных функций Azure, чтобы различать типы затрат, например между отдельными затратами приложения и общими затратами. MCM сообщил о затратах на ресурсы, но не было никаких сведений о том, сколько ресурсов было использовано для запуска отдельных приложений, сколько было зарезервировано для системных процессов, необходимых кластеру, или какие расходы были неактивными, связанными с кластером.

  • В одной подписке нет собственного механизма для анализа затрат в нескольких кластерах в одной подписке область.

В результате, возможно, вы использовали сторонние решения для сбора и анализа потребления ресурсов и затрат на уровне детализации Kubernetes, таких как пространство имен или pod. Однако сторонние решения требуют усилий по развертыванию, настройке и обслуживанию для каждого кластера AKS. В некоторых случаях вы даже должны платить за расширенные функции, увеличивая общую стоимость владения кластера.

Для решения этой проблемы AKS интегрирована с MCM для предоставления подробных область детализации затрат в конструкции Kubernetes, таких как кластер и пространство имен, в дополнение к вычислительным ресурсам Azure, сети и служба хранилища категориям.

Надстройка анализа затрат AKS построена на основе OpenCost, проекта песочницы Cloud Native Computing Foundation с открытым исходным кодом для сбора данных об использовании. Анализ затрат согласован с данными счета Azure. Данные после обработки отображаются непосредственно на портале MCM Cost Analysis.

Предварительные требования и ограничения

  • Кластер должен быть либо StandardPremium уровнем, а не Free уровнем.

  • Чтобы просмотреть сведения о анализе затрат, необходимо иметь одну из следующих ролей в подписке, в которых размещен кластер: владелец, участник, читатель, управление затратами участник или средство чтения управления затратами.

  • После включения анализа затрат вы не сможете перейти на Free уровень, не отключив анализ затрат.

  • Кластер должен быть развернут с настроенным Идентификация рабочей нагрузки Microsoft Entra.

  • Представления затрат Kubernetes доступны только для следующих типов предложений Microsoft Azure. Дополнительные сведения о типах предложений см. в статье "Поддерживаемые предложения Microsoft Azure".

    • Соглашение Enterprise
    • Клиентское соглашение Майкрософт
  • Доступ к API Azure, включая API Azure Resource Manager (ARM). Список полных доменных имен (FQDN) см. в разделе "Анализ затрат AKS" требуется полное доменное имя.

  • Виртуальные узлы в настоящее время не поддерживаются.

  • AkS Automatic в настоящее время не поддерживается.

  • При использовании Azure CLI необходимо установить версию или более позднюю версию 2.44.0 , а aks-preview также версию расширения Azure CLI или более позднюю версию 0.5.155 .

Установка или обновление aks-preview расширения Azure CLI

aks-preview Установите расширение Azure CLI с помощью az extension add команды.

az extension add --name aks-preview

Если необходимо обновить версию расширения, это можно сделать с помощью az extension update команды.

az extension update --name aks-preview

Включение анализа затрат в кластере AKS

Вы можете включить анализ затрат с флагом --enable-cost-analysis во время одной из следующих операций:

  • Standard Создайте кластер AKS или Premium уровень.

  • Обновите кластер AKS, который уже находится на уровне или Premium на Standard уровне.

  • Free Обновление кластера до Standard или Premium.

  • Standard Обновление кластера до Premium.

  • Понижение Premium уровня кластера на Standard уровень.

В следующем примере создается новый кластер AKS на Standard уровне с включенным анализом затрат:

az aks create --resource-group <resource-group> --name <cluster-name> --location <location> --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis

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

az aks update --resource-group <resource-group> --name <cluster-name> --enable-cost-analysis

Предупреждение

Использование памяти для анализа затрат AKS зависит от количества развернутых контейнеров. Потребление памяти может быть примерно приблизительно приблизительно к 200 МБ + 0,5 МБ на контейнер. Текущее ограничение памяти имеет значение 4 ГБ, которое будет поддерживать примерно 7000 контейнеров на кластер, но может быть более или менее в зависимости от различных факторов. Эти оценки могут быть изменены.

Отключение анализа затрат

Вы можете отключить анализ затрат в любое время с помощью az aks update.

az aks update --name myAKSCluster --resource-group myResourceGroup --disable-cost-analysis

Примечание.

Если вы планируете уменьшить уровень кластера с Standard уровня или Premium уровня Free , пока включен анализ затрат, необходимо сначала явно отключить анализ затрат, как показано здесь.

Просмотр данных о затратах

Данные о выделении затрат можно просмотреть в портал Azure. Дополнительные сведения о том, как перейти к представлению пользовательского интерфейса анализа затрат, см. в документации по управлению затратами.

Определения затрат

В пространствах имен Kubernetes и представлениях ресурсов вы увидите следующие расходы:

  • Плата за простой: представляет стоимость доступной емкости ресурсов, которая не использовалась ни одной рабочей нагрузкой.
  • Плата за обслуживание: представляет расходы, связанные с службой, такими как соглашение об уровне обслуживания простоя, Microsoft Defender для контейнеров и т. д.
  • Системные расходы: представляет стоимость емкости, зарезервированной AKS на каждом узле для запуска системных процессов, необходимых кластеру, включая среду выполнения kubelet и контейнер. Подробнее.
  • Нераспределенные расходы: представляет стоимость ресурсов, которые не могут быть выделены пространствам имен.

Примечание.

Для завершения обработки данных может потребоваться до одного дня. Через 24 часа все колебания затрат за предыдущий день будут стабилизироваться.

Устранение неполадок

См. следующее руководство по устранению неполадок, связанных с анализом затрат AKS.

Подробнее

Видимость — это один из элементов управления затратами. Ознакомьтесь с рекомендациями по оптимизации затрат в Служба Azure Kubernetes (AKS) для получения контроля над затратами kubernetes.