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.

Visão geral da análise de custos do AKS

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 seus dados de faturas do Azure para fornecer uma visão abrangente dos custos do seu cluster AKS diretamente no portal Azure.

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

Depois de ativar o complemento de análise de custos e permitir até 24 horas para recolha de dados, pode usar a informação em Compreender o uso e custos do AKS para o ajudar a compreender os 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.
  • O driver Azure Disk Container Storage Interface (CSI) ativado no 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 pode rebaixar o seu cluster para o Free nível 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 Contrato de Cliente Microsoft, Microsoft Azure. Para obter mais informações, consulte Ofertas suportadas do Microsoft Azure.
  • Atualmente, os nós virtuais não são suportados.
  • O suplemento não está disponível nas regiões usnateast, usnatwest, usseceast ou ussecwest. Para mais informações, consulte questões adicionais e resolução de problemas de análise de custos do AKS.
  • O complemento de análise de custos AKS suporta cerca de 7.000 contentores por cluster, com base no limite atual de 4 GB de memória e sujeito a alterações.

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/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "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 nesse Standard nível para permitir a análise de custos. Substitui $RESOURCE_GROUP e $CLUSTER_NAME com os nomes dos teus grupos de recursos e clusters, ou define-os como variáveis de ambiente.

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

Resultados:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "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 atual de memória está definido para 4 GB, o que suporta aproximadamente 7.000 contentores 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 o pool de nós já tem uma identidade gerida, quaisquer comandos no nó que utilizem identidades geridas precisam de especificar a identidade a usar em vez de dependerem da identidade gerida do pool de nós.

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/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "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.

No portal Azure, aceda à subscrição do Azure que aloja o seu cluster AKS. Em Gestão de Custos, selecione Análise de Custos. Na lista Ver, selecione o item da lista pendente e, em seguida, selecione clusters do Kubernetes.

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:

Tipo de carga Description
Custos de inatividade O custo da capacidade de recursos disponíveis que não é usada por nenhuma carga de trabalho.
Honorários de serviço Os custos associados ao serviço, como o Uptime SLA, o Microsoft Defender para Contentores, etc.
Cargas do sistema O custo da capacidade reservada pelo AKS em cada nó para executar processos do sistema exigidos pelo cluster, incluindo o kubelet e o tempo de execução do contentor. Mais informações.
Encargos não atribuídos O custo dos recursos que não podiam ser alocados a namespaces.

Nota

Normalmente, o sistema finaliza e disponibiliza os dados de custos e utilização no prazo de 8 a 24 horas.

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).