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


анализ затрат Службы Azure Kubernetes (AKS)

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

О анализе затрат

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

При включении анализа затрат в кластере AKS можно просмотреть подробные области распределения затрат, связанные с конструкциями Kubernetes, такими как кластеры и пространства имен, а также ресурсы вычислений, сети и хранилища Azure. Надстройка построена на основе OpenCost, проекта с открытым исходным кодом Cloud Native Computing Foundation Incubating для сбора данных об использовании. Данные об использовании сопоставляются с данными счета Azure, чтобы предоставить полное представление о затратах на кластер AKS непосредственно в представлениях Cost Management в портале Azure.

Дополнительные сведения об управлении затратами Майкрософт см. в статье "Начало анализа затрат в Azure".

После включения надстройки анализа затрат и предоставления времени сбора данных можно использовать сведения в разделе "Общие сведения об использовании и затратах AKS", которые помогут вам понять данные.

Предварительные условия

  • Кластер должен использовать Standard уровень или Premium уровень, а не Free уровень.
  • Чтобы просмотреть сведения об анализе затрат, необходимо иметь одну из следующих ролей в подписке, в которой размещен кластер: Owner, Contributor, Reader, Cost Management Contributor или Cost Management Reader.
  • Управляемое удостоверение настроено на вашем кластере.
  • Если используется Azure CLI, вам нужна версия 2.61.0 или более поздняя версия.
  • После включения анализа затрат вы не сможете понижать кластер до Free уровня, не отключив анализ затрат.
  • Доступ к API Azure, включая API Azure Resource Manager (ARM). Для списка необходимых полных доменных имен (FQDN) см. Требуемые FQDN для анализа затрат AKS.

Ограничения

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

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

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

  • Создание кластера AKS уровня Standard или Premium.
  • Обновление существующего Standard или Premium многоуровневого кластера AKS.
  • Обновление кластера Free до Standard или Premium.
  • Обновление кластера Standard до Premium.
  • Понижение Premium уровня кластера на Standard уровень.

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

Включите анализ затрат в новом кластере az aks create с помощью команды с флагом --enable-cost-analysis . В следующем примере создается новый кластер AKS на Standard уровне с включенным анализом затрат:

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="AKSCostRG$RANDOM_SUFFIX"
export CLUSTER_NAME="AKSCostCluster$RANDOM_SUFFIX"
export LOCATION="WestUS2"
az group create --resource-group $RESOURCE_GROUP --location $LOCATION
az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --location $LOCATION --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis

Результаты:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx",
    "location": "WestUS2",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null,
    "type": "Microsoft.ContainerService/managedClusters"
}

Включение анализа затрат в существующем кластере

Включите анализ затрат в существующем кластере az aks update с помощью команды с флагом --enable-cost-analysis . В следующем примере обновляется существующий кластер AKS на Standard уровне, чтобы включить анализ затрат:

az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-cost-analysis

Результаты:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

Примечание.

Агент развертывается в кластере при включении надстройки. Агент потребляет небольшое количество ресурсов ЦП и памяти.

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

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

Примечание.

Включение анализа затрат также создает управляемое удостоверениеcost-analysis-identity с именем с доступом на чтение к группе ресурсов узла кластера и назначает его пулам узлов в кластере. Он используется для сбора идентификаторов ARM ресурсов кластера для создания отчетов.

Так как для самого пула узлов уже есть управляемое удостоверение, все команды на узле, использующие управляемые удостоверения, должны указывать удостоверение, которое следует использовать , а не полагаться на значение по умолчанию.

Например: az login --identity --resource-id <resource ID of identity>.

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

Отключите анализ затрат с помощью az aks update команды с флагом --disable-cost-analysis .

az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --disable-cost-analysis

Результаты:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

Примечание.

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

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

Данные о выделении затрат можно просмотреть на портале Azure. Дополнительные сведения см. в разделе "Просмотр затрат AKS" в службе "Управление затратами Майкрософт".

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

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

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

Примечание.

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

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

Если вы сталкиваетесь с проблемами, такими как cost-agent сбой OOMKilled или зависание pod в Pending состоянии, см. статью "Устранение неполадок с надстройкой анализа затрат AKS".

Следующие шаги

Дополнительные сведения о затратах в AKS см. в статье "Понимание использования и затрат Службы Azure Kubernetes (AKS)".