O blog da AWS
AWS e Kubecost colaboram para fornecer monitoramento de custos para clientes da EKS
Introdução
Hoje, temos o prazer de anunciar o monitoramento de custos do Amazon Elastic Kubernetes Service (Amazon EKS) em colaboração com a Kubecost. À medida que os clientes modernizam seus aplicativos e implantam cargas de trabalho usando o Amazon EKS, eles ganham eficiência consolidando os recursos computacionais necessários para executar seus aplicativos. No entanto, essa eficiência de utilização tem como contrapartida a maior dificuldade em medir os custos dos aplicativos. Nossos clientes nos dizem que querem uma visibilidade mais refinada da distribuição de custos de aplicativos executados no Amazon EKS que compartilham recursos da AWS, como instâncias do Amazon EC2. Também vemos a necessidade de um monitoramento mais profundo dos custos do Kubernetes por meio de pesquisas conduzidas pela CNCF e FinOps Foundation, onde quase um quarto (24%) dos entrevistados não monitoram os gastos com o Kubernetes e quase metade (44%) usa apenas estimativas mensais.
Embora os clientes possam monitorar o plano de controle do Kubernetes e os custos do EC2 usando os relatórios de custo e uso da AWS, eles precisam de insights mais profundos para rastrear com precisão os custos em nível de recursos do Kubernetes por namespace, cluster, pod ou conceitos organizacionais (por exemplo, por equipe ou aplicativo). Por exemplo, para determinar os recursos usados por um grupo específico de pods, os clientes precisavam agregar manualmente o uso de recursos de computação em um determinado período para calcular o custo. Os contêineres também costumam ter vida curta e podem ser dimensionados em vários níveis, de modo que o uso de recursos flutua com o tempo, aumentando ainda mais a complexidade dessa equação. O Amazon EKS é comumente usado em ambientes dinâmicos e/ou multilocatários, que exigem recursos específicos para um monitoramento preciso dos custos.
Esse é exatamente o desafio que a Kubecost se dedica a enfrentar. Fundada em 2019, a Kubecost foi lançada para oferecer aos clientes visibilidade sobre gastos e eficiência de recursos em ambientes Kubernetes, e hoje ajuda milhares de equipes a enfrentar esse desafio. O Kubecost é baseado no OpenCost, que foi recentemente aceito como um projeto Sandbox da Cloud Native Computing Foundation (CNCF), e é ativamente apoiado pela AWS.
Com esse anúncio, os clientes do Amazon EKS podem implantar um pacote de Kubecost otimizado para EKS para visibilidade dos custos do cluster. Isso está disponível gratuitamente e inclui suporte para solução de problemas do Kubecost. O Kubecost permite que os usuários visualizem os custos detalhados pelos recursos do Kubernetes, incluindo pods, nós, namespaces, rótulos e muito mais. Administradores da plataforma Kubernetes e líderes financeiros podem usar o Kubecost para visualizar um detalhamento de suas cobranças do Amazon EKS, alocar custos e unidades organizacionais de estorno (por exemplo, equipes de aplicativos). Os clientes podem fornecer às suas equipes internas e unidades de negócios dados de custos transparentes e precisos com base na fatura real da AWS e obter recomendações personalizadas para otimização de custos com base em seu ambiente de infraestrutura e padrões de uso em um único cluster.
Implantação do Kubecost no Amazon EKS
Para começar, você pode seguir estas etapas para implantar o Kubecost em seu cluster Amazon EKS em alguns minutos usando o Helm.
Pré-requisitos:
- Instale as seguintes ferramentas: Helm 3.9+, kubectl e, opcionalmente, eksctl e awscli.
- Você tem acesso a um Amazon EKS cluster. Para implantar um, consulte Começando a usar o Amazon EKS.
- Se o seu cluster estiver executando o Kubernetes versão 1.23 ou posterior, você deverá ter o driver Amazon EBS CSI instalado em seu cluster.
Etapa 1: Instale o Kubecost em seu cluster Amazon EKS.
Em seu ambiente, execute o seguinte comando em seu terminal para instalar o Kubecost em seu cluster Amazon EKS existente.
Nota: Você pode encontrar todas as versões disponíveis do pacote Kubecost otimizado para EKS aqui. Recomendamos encontrar e instalar a versão mais recente do gráfico do analisador de custos Kubecost disponível.
Por padrão, a instalação inclui determinados softwares de pré-requisitos, incluindo Prometheus e kube-state-metrics. Para personalizar sua implantação (por exemplo, ignorar esses pré-requisitos se você já os tiver em execução no cluster), você pode encontrar uma lista das opções de configuração disponíveis no arquivo de configuração do Helm.
Etapa 2: Gere o endpoint do painel Kubecost.
Depois de instalar o Kubecost usando o comando Helm na etapa 2, ele deve levar menos de dois minutos para ser concluído. Você pode executar o seguinte comando para ativar o encaminhamento de porta para expor o painel do Kubecost:
Etapa 3: Acesse o painel de monitoramento de custos.
Em seu navegador da web, navegue até http://localhost:9090 para acessar o painel.
Agora você pode começar a monitorar o custo e a eficiência do seu cluster Amazon EKS. Dependendo dos requisitos e da configuração da sua organização, há várias opções para expor o Kubecost para acesso interno contínuo. Há alguns exemplos que você pode usar para suas referências:
- Confira a documentação do Kubecost para exemplos de ingress como referência para usar o controlador de entrada Nginx com autenticação básica.
- Considere usar o AWS Load Balancer Controller para expor o Kubecost e usar o Amazon Cognito para autenticação, autorização e gerenciamento de usuários. Saiba mais sobre isso: Como usar o Application Load Balancer e o Amazon Cognito para autenticar usuários para seus aplicativos web Kubernetes
Veja a seguir exemplos das métricas disponíveis no painel do Kubecost.
Visão geral do cluster
Alocação de custos por namespace
Gastos e uso de outros serviços da AWS associados aos clusters do Amazon EKS
Métricas de custo de exportação
Em um alto nível, o monitoramento de custos do Amazon EKS é implantado com o Kubecost, que inclui o Prometheus, um sistema de monitoramento de código aberto e banco de dados de séries temporais. O Kubecost lê as métricas do Prometheus e, em seguida, realiza cálculos de alocação de custos e grava as métricas de volta no Prometheus. Finalmente, o front-end do Kubecost lê as métricas do Prometheus e as mostra na interface de usuário (UI) do Kubecost. A arquitetura é ilustrada pelo diagrama a seguir:
Métricas de leitura do Kubecost
Com o Prometheus pré-instalado, você também pode escrever consultas para ingerir dados do Kubecost em seu sistema de inteligência de negócios atual para análise posterior. Você também pode usá-lo como uma fonte de dados para seu painel atual do Grafana para exibir o custo do cluster do Amazon EKS com o qual suas equipes internas estão familiarizadas. Para saber mais sobre como escrever consultas do Prometheus, revise a documentação do Kubecost ou use exemplos de modelos JSON do Grafana no repositório Kubecost Github como referência.
Integração do Relatório de Custo e Uso da AWS (AWS CUR)
Para realizar cálculos de alocação de custos para seu cluster Amazon EKS, o Kubecost recupera as informações públicas de preços dos serviços e recursos da AWS da API da Lista de Preços da AWS. Você também pode integrar o Kubecost com o AWS CUR para melhorar a precisão das informações de preços específicas da sua conta da AWS (por exemplo, programas de descontos corporativos, uso de instâncias reservadas, planos de economia e uso spot). Você pode saber mais sobre como a integração com o AWS CUR funciona na AWS Cloud Integration.
Limpeza
Você pode desinstalar o Kubecost do seu cluster com o seguinte comando.
Conclusão
Estamos entusiasmados em lançar esses novos recursos de monitoramento de custos em colaboração com a Kubecost, que permitem que os clientes monitorem e rastreiem os custos com o Amazon EKS. Destacaremos recursos adicionais nos próximos meses à medida que forem disponibilizados na versão do Kubecost com suporte da AWS, como suporte a vários clusters e integração simplificada com o Amazon Managed Service for Prometheus e os relatórios de custo e uso da AWS. Como sempre, você pode fornecer feedback sobre o roadmap público do AWS Containers. Se precisar de suporte, você pode enviar uma solicitação de suporte por meio do seu contrato de suporte existente da AWS. Se você quiser saber mais com a equipe da Kubecost, entre em contato com eles aqui.
Este artigo foi traduzido do Blog da AWS em Inglês.
Sobre os autores
Linh Lam