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


анализ затрат Служба 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.

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

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

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

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

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

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

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

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

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

  • При использовании Azure CLI необходимо установить версию или более позднюю версию 2.61.0 .

Включение анализа затрат в кластере 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 контейнеров на кластер. Эти оценки могут быть более или менее в зависимости от различных факторов и подвержены изменениям.

Если возникают проблемы, такие как получение OOMKilled или зависание Pending в состоянии надстройки, обратитесь к руководству по устранению неполадок , связанных с анализом затрат AKS.

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

Вы можете отключить анализ затрат в любое время с помощью 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.