Análise de custos do Serviço Kubernetes do Azure
Um cluster do Serviço Kubernetes do Azure (AKS) depende de recursos do Azure como máquinas virtuais, discos virtuais, balanceadores de carga e endereços IP públicos. Vários aplicativos podem usar esses recursos, que podem ser mantidos por equipes diferentes dentro da sua organização. Os padrões de consumo de recursos para essas aplicações são frequentemente variáveis, pelo que a sua contribuição para o custo total dos recursos do cluster também pode variar. Alguns aplicativos também podem ter pegadas em vários clusters, o que pode representar um desafio ao executar a atribuição e o gerenciamento de custos.
Anteriormente, o Microsoft Cost Management (MCM) agregava o consumo de recursos de cluster no grupo de recursos de cluster. Você poderia usar o MCM para analisar custos, mas havia vários desafios:
Não havia nenhum recurso nativo do Azure para exibir o uso de recursos de cluster em um nível mais granular do que um cluster. Não houve divisão em categorias discretas, como computação (incluindo núcleos de CPU e memória), armazenamento e rede.
Não havia funcionalidade nativa do Azure para distinguir entre tipos de custos, por exemplo, entre custos de aplicativos individuais e custos compartilhados. O MCM relatou o custo dos recursos, mas não havia informações sobre quanto do custo do recurso era usado para executar aplicativos individuais, quanto era reservado para os processos do sistema exigidos pelo cluster ou quais eram os custos ociosos associados ao cluster.
Não havia nenhum mecanismo nativo do Azure para analisar custos em vários clusters no mesmo escopo de assinatura.
Como resultado, você pode ter usado soluções de terceiros para coletar e analisar o consumo de recursos e os custos por níveis específicos de granularidade do Kubernetes, como por namespace ou pod. As soluções de terceiros, no entanto, exigem esforço para implantar, ajustar e manter para cada cluster AKS. Em alguns casos, você até precisa pagar por recursos avançados, aumentando o custo total de propriedade do cluster.
Para enfrentar esse desafio, o AKS se integrou ao MCM para oferecer uma análise detalhada de custos com escopo para construções do Kubernetes, como cluster e namespace, além das categorias Computação, Rede e Armazenamento do Azure.
O addon de análise de custos AKS é construído sobre o OpenCost, um projeto de sandbox da Cloud Native Computing Foundation de código aberto para coleta de dados de uso. A análise de custos é reconciliada com os dados da fatura do Azure. Os dados pós-processados são visíveis diretamente na experiência do portal MCM Cost Analysis.
Pré-requisitos e limitações
Seu cluster deve ser uma ou
Standard
Premium
camada, não aFree
camada.Para exibir informações de análise de custos, você deve ter uma das seguintes funções na assinatura que hospeda o cluster: Proprietário, Colaborador, Leitor, Colaborador de gerenciamento de custos ou Leitor de gerenciamento de custos.
Depois de habilitar a análise de custos, não é possível fazer o downgrade do cluster para a camada sem primeiro desabilitar a
Free
análise de custos.Seu cluster deve ser implantado com uma ID de carga de trabalho do Microsoft Entra configurada.
As exibições de custo do Kubernetes estão disponíveis apenas para os seguintes tipos de Oferta do Microsoft Azure. Para obter mais informações sobre tipos de oferta, consulte Ofertas suportadas do Microsoft Azure.
- Contrato Enterprise
- Contrato de Cliente da Microsoft
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 AKS Cost Analysis required FQDN.
Os nós virtuais não são suportados no momento.
AKS Automatic não é suportado no momento.
Se estiver usando a CLI do Azure, você deve ter a versão
2.61.0
ou posterior instalada.
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:
Crie um
Standard
cluster AKS ouPremium
de camadas.Atualize um cluster AKS que já esteja em
Standard
ouPremium
camada.Atualizar um
Free
cluster paraStandard
ouPremium
.Atualize um
Standard
cluster paraPremium
.Faça o downgrade de um
Premium
cluster para aStandard
camada.
O exemplo a seguir cria um novo cluster AKS na camada com a Standard
análise de custos habilitada:
az aks create --resource-group <resource-group> --name <cluster-name> --location <location> --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis
O exemplo a seguir atualiza um cluster AKS existente na camada para habilitar a Standard
análise de custos:
az aks update --resource-group <resource-group> --name <cluster-name> --enable-cost-analysis
Aviso
O complemento de análise de custos do AKS O uso de memória depende do número de contêineres implantados. O consumo de memória pode ser aproximadamente aproximado em 200 MB + 0,5 MB por contêiner. O limite de memória atual é definido como 4 GB, o que suportará aproximadamente 7000 contêineres por cluster. Estas estimativas podem depender mais ou menos de vários fatores e estão sujeitas a alterações.
Se você estiver enfrentando problemas como o pod de complemento ficando OOMKilled
ou preso em um Pending
estado, consulte o guia de solução de problemas de complemento de análise de custos do AKS.
Desativar a análise de custos
Você pode desativar a análise de custos a qualquer momento usando az aks update
o .
az aks update --name myAKSCluster --resource-group myResourceGroup --disable-cost-analysis
Nota
Se você pretende fazer o downgrade do cluster das camadas ou Premium
para a camada enquanto a Free
análise de custos está habilitada, você deve primeiro desabilitar explicitamente a Standard
análise de custos.
Ver os dados de custo
Você pode exibir dados de alocação de custos no portal do Azure. Para saber mais sobre como navegar na visualização da interface do usuário de análise de custos, consulte a documentação do Gerenciamento de custos.
Definições de custos
Nas visualizações de namespaces e ativos do Kubernetes, você verá as seguintes cobranças:
- Encargos ociosos: representa o custo da capacidade de recursos disponíveis que não foi usada por nenhuma carga de trabalho.
- Taxas de serviço: Representa as cobranças associadas ao serviço, como SLA de tempo de atividade, Microsoft Defender for Containers, etc.
- Encargos do sistema: Representa 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.
- Encargos não alocados: representa 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
Consulte o guia a seguir para solucionar problemas de complementos de análise de custos do AKS.
Mais informações
A visibilidade é um elemento da gestão de custos. Consulte Otimizar custos no Serviço Kubernetes do Azure (AKS) para obter outras práticas recomendadas sobre como obter controle sobre o custo do kubernetes.
Azure Kubernetes Service