Partilhar via


Análise de custos do Serviço Kubernetes do Azure (AKS)

Neste artigo, você aprenderá a habilitar a análise de custos no Serviço Kubernetes do Azure (AKS) para exibir dados de custo detalhados para recursos de cluster.

Sobre a análise de custos

Os clusters AKS dependem de recursos do Azure, como máquinas virtuais (VMs), discos virtuais, balanceadores de carga e endereços IP públicos. Vários aplicativos podem usar esses recursos. Os padrões de consumo de recursos geralmente diferem para cada aplicativo, portanto, sua contribuição para o custo total de recursos do cluster também pode variar. Alguns aplicativos podem ter pegadas em vários clusters, o que pode representar um desafio ao executar a atribuição de custos e o gerenciamento de custos.

Ao habilitar a análise de custos em seu cluster AKS, você pode exibir a alocação de custos detalhada com escopo para construções do Kubernetes, como clusters e namespaces, e recursos de computação, rede e armazenamento do Azure. O complemento é construído sobre o OpenCost, um projeto de incubação da Cloud Native Computing Foundation de código aberto para coleta de dados de uso. Os dados de utilização são reconciliados com os dados da fatura do Azure para fornecer uma vista abrangente dos custos do cluster AKS diretamente nas vistas de Gestão de Custos do portal do Azure.

Para obter mais informações sobre o Microsoft Cost Management, consulte Começar a analisar custos no Azure.

Depois de habilitar o complemento de análise de custos e dar tempo para que os dados sejam coletados, você pode usar as informações em Entender o uso e os custos do AKS para ajudá-lo a entender seus dados.

Pré-requisitos

  • O cluster deve usar a Standard camada ou Premium e não a Free camada.
  • Para exibir informações de análise de custo, você deve ter uma das seguintes funções na assinatura que hospeda o cluster: Owner, Contributor, Reader, Cost Management Contributorou Cost Management Reader.
  • Identidade gerenciada configurada em seu cluster.
  • Se estiver usando a CLI do Azure, você precisará da versão 2.61.0 ou posterior instalada.
  • Depois de ativar a análise de custos, não é possível rebaixar o cluster para a camada Free sem antes desativar a análise de custos.
  • Acesso à API do Azure, incluindo a API do Azure Resource Manager (ARM). Para obter uma lista de nomes de domínio totalmente qualificados (FQDNs) necessários, consulte FQDN necessário para Análise de Custos AKS.

Limitações

  • As visualizações de custo do Kubernetes estão disponíveis apenas para os tipos de oferta, Enterprise Agreement e Microsoft Customer Agreement, Microsoft Azure. Para obter mais informações, consulte Ofertas suportadas do Microsoft Azure.
  • Atualmente, os nós virtuais não são suportados.

Habilite a análise de custos em seu cluster AKS

Você pode habilitar a análise de custos com o --enable-cost-analysis sinalizador durante uma das seguintes operações:

  • Criação de um cluster AKS de Standard ou de Premium nível.
  • Atualização de um cluster AKS de camada existente Standard ou Premium.
  • Atualizando um Free cluster para Standard ou Premium.
  • Atualizando um Standard cluster para Premium.
  • O downgrade de um Premium cluster para o nível Standard.

Habilitar a análise de custos em um novo cluster

Ative a análise de custos em um novo cluster usando o comando az aks create com o flag --enable-cost-analysis. O exemplo a seguir cria um novo cluster AKS na camada Standard com a análise de custos ativada.

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

Resultados:

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

Habilitar a análise de custos em um cluster existente

Habilite a análise de custos em um agrupamento existente usando o comando az aks update com o --enable-cost-analysis flag. O exemplo seguinte atualiza um cluster AKS existente na camada Standard para permitir a análise de custos:

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

Resultados:

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

Nota

Um agente é implantado no cluster quando você habilita o complemento. O agente consome uma pequena quantidade de recursos de CPU e memória.

Aviso

O uso de memória do complemento de análise de custos do AKS depende do número de contentores implantados. Você pode aproximadamente aproximar o consumo de memória usando 200 MB + 0,5 MB por contêiner. O limite de memória atual é definido como 4 GB, que suporta aproximadamente 7000 contêineres por cluster. Estas estimativas estão sujeitas a alterações.

Nota

A habilitação da análise de custos também cria uma identidade gerida nomeada cost-analysis-identity com acesso de leitura ao grupo de recursos dos nós do cluster e atribui-a aos grupos de nós no cluster. Isso é usado para coletar os identificadores ARM de ativos de cluster para relatórios.

Como já existe uma identidade gerenciada para o próprio pool de nós, todos os comandos no nó que usam identidades gerenciadas precisarão especificar a identidade a ser usada em vez de depender do padrão.

Por exemplo, az login --identity --resource-id <resource ID of identity>.

Desative a análise de custos no seu cluster AKS

Desative a análise de custos usando o comando az aks update com o flag --disable-cost-analysis.

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

Resultados:

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

Nota

Se quiser fazer o downgrade do cluster da camada Standard ou Premium para a camada Free enquanto a análise de custos estiver habilitada, deve primeiro desativar a análise de custos.

Ver os dados de custo

Você pode exibir dados de alocação de custos no portal do Azure. Para obter mais informações, consulte Exibir custos AKS no Microsoft Cost Management.

Definições de custos

Nas visualizações de namespaces e ativos do Kubernetes, poderá ver quaisquer das seguintes cobranças:

  • Cobranças inativas representam o custo da capacidade de recursos disponíveis que não é utilizada por nenhuma carga de trabalho.
  • As taxas de serviço representam as cobranças associadas ao serviço, como o SLA de tempo de atividade, o Microsoft Defender for Containers, etc.
  • As cobranças do sistema representam o custo da capacidade reservada pelo AKS em cada nó para executar os processos do sistema exigidos pelo cluster, incluindo o kubelet e o tempo de execução do contêiner. Mais informações.
  • Os encargos não alocados representam o custo dos recursos que não puderam ser alocados para namespaces.

Nota

Pode levar até um dia para que os dados sejam finalizados. Após 24 horas, quaisquer flutuações nos custos do dia anterior terão estabilizado.

Resolução de Problemas

Se estiveres a enfrentar problemas, como o cost-agent pod ficar OOMKilled ou preso num estado de Pending, consulta Resolução de problemas do complemento de análise de custos do AKS.

Próximos passos

Para obter mais informações sobre o custo no AKS, consulte Compreender o uso e os custos do Serviço Kubernetes do Azure (AKS).