Obter visibilidade dos seus custos do Amazon EKS - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Obter visibilidade dos seus custos do Amazon EKS

Visão geral do

Uma visão holística é necessária para monitorar com eficácia o custo de uma implantação do Kubernetes. O único custo fixo e conhecido é o do ambiente de gerenciamento do Amazon Elastic Kubernetes Service (Amazon EKS). Isso inclui todos os outros componentes que compõem a implantação, da computação e armazenamento à rede, sendo uma quantidade variável com base nas necessidades da sua aplicação.

Você pode usar o Kubecost para analisar o custo da sua infraestrutura do Kubernetes, desde os namespaces e serviços até os pods individuais, e depois exibir os dados em um painel. O Kubecost apresenta custos em cluster, como computação e armazenamento, e custos out-of-cluster como buckets do Amazon Simple Storage Service (Amazon S3) e instâncias do Amazon Relational Database Service (Amazon RDS). O Kubecost fará recomendações de dimensionamento correto com base nesses dados e exibirá alertas críticos que podem afetar o sistema. O Kubecost pode se integrar com o AWS Cost and Usage Report para mostrar economias dos Savings Plans para computação, das Instâncias Reservadas e de outros programas de descontos.

Benefícios de custo

O Kubecost fornece relatórios e painéis que visualizam o custo de suas implantações do Amazon EKS. Ele permite que você faça uma análise detalhada do cluster em cada um dos vários componentes, como controladores, serviços, nós, pods e volumes. Isso lhe dá uma visão holística de suas aplicações em execução em um ambiente do Amazon EKS. Ao habilitar essa visibilidade, você pode agir de acordo com as recomendações do Kubecost ou visualizar os custos de cada aplicação em um nível granular. O dimensionamento correto de um grupo de nós do Amazon EKS oferece a mesma economia potencial que as EC2 instâncias padrão. Se você conseguir dimensionar corretamente seus contêineres e nós, poderá remover o inchaço computacional do tamanho da instância necessária para executar o contêiner e do número de EC2 instâncias necessárias no grupo de auto scaling.

Recomendações de otimização de custos

Para aproveitar as vantagens do Kubecost, é recomendável fazer o seguinte:

  1. Implementar o Kubecost em seu ambiente

  2. Obter um detalhamento granular dos custos das aplicações do Windows

  3. Dimensionar corretamente nós de clusters

  4. Dimensionar corretamente solicitações de contêineres

  5. Gerenciar nós subutilizados

  6. Remediar workloads abandonadas

  7. Agir de acordo com as recomendações

  8. Atualizar nós autogerenciados

Implementar o Kubecost em seu ambiente

O Amazon EKS Finhack Workshop ensina como implantar um ambiente Amazon EKS configurado para usar o Kubecost em uma conta própria. AWS Isso permite que você tenha experiência prática com a tecnologia. Se você estiver interessado em realizar esse workshop em sua organização, entre em contato com a equipe da sua conta.

Para implantar o Kubecost em seu cluster Amazon EKS usando o Helm, consulte a publicação AWS e a Kubecost colabore para fornecer monitoramento de custos para clientes do EKS no blog. AWS Como alternativa, você pode consultar a documentação oficial do Kubecost para obter instruções sobre como instalar e configurar o Kubecost. Para obter informações sobre o suporte do Kubecost para nós do Windows, consulte Windows Node Support na documentação do Kubecost.

Obter um detalhamento granular dos custos das aplicações do Windows

Embora você possa obter economias de custo significativas usando as Instâncias EC2 Spot da Amazon, você também pode se beneficiar do fato de que as cargas de trabalho do Windows tendem a ser monitoradas. O uso de instâncias spot depende da aplicação, e recomendamos que você verifique se elas serão aplicáveis ao seu caso de uso.

Para obter uma análise granular dos custos de suas aplicações do Windows, faça login no Kubecost. Na página de navegação, escolha Economia.

Dimensionar corretamente nós de clusters

No Kubecost, escolha Economia na barra de navegação e depois Dimensionar corretamente o nó do cluster.

Considere um exemplo em que o Kubecost relata que o cluster está superprovisionado em termos de vCPU e RAM. A tabela a seguir mostra os detalhes e as recomendações do Kubecost.

  Atual Recomendação: simples Recomendação: complexa
Contagem total USD 3.462,57 por mês USD 137,24 por mês USD 303,68 por mês
Contagem de nós 4 5 4
CPU 74 VCPUs 10 VCPUs 8 VCPUs
RAM 152 GB 20 GB 18 GB
Detalhamento da instância 2 c5.xlarge + 2 mais 5 t3a.medium 2 c5n.large + 1 mais

Conforme descrito na publicação do blog do Kubecost Find an optimal set of nodes for a Kubernetes cluster, a opção simples utiliza um único grupo de nós, enquanto a complexa utiliza uma abordagem de grupo de vários nós. O botão Saiba como adotar pode realizar o redimensionamento do cluster com um clique. Isso requer a instalação do Kubecost Cluster Controller.

Se você estiver usando nós autogerenciados do Windows que não foram criados pelo eksctl, consulte Updating an existing self-managed node group. Essas instruções mostram como alterar o tipo de instância no modelo de EC2 lançamento da Amazon usado pelo grupo Auto Scaling.

Dimensionar corretamente solicitações de contêineres

No Kubecost, escolha Economia na barra de navegação e acesse a página Solicitar recomendações de dimensionamento correto. Essa página mostra a eficiência dos pods, as recomendações de dimensionamento correto e a economia estimada de custos. Você pode usar o botão Personalizar para filtrar por Cluster, , Namespace\Controlador e muito mais.

Como exemplo, considere que o Kubecost calculou que alguns de seus pods estão superprovisionados em termos de CPU e RAM (memória). Em seguida, ele recomenda que você se ajuste aos novos valores de CPU e RAM para obter sua economia mensal estimada. Para alterar os valores de CPU e RAM, você deve atualizar seu arquivo de manifesto de implantação.

Gerenciar nós subutilizados

No Kubecost, escolha Economia na barra de navegação e depois Gerenciar nós subutilizados.

Considere um exemplo em que a página mostra que um nó no cluster é subutilizado em termos de CPU e RAM (memória) e, portanto, pode ser drenado e encerrado ou redimensionado. Escolher os nós que não passam nas verificações de nós e pods fornecerá mais informações sobre por que eles não podem ser drenados.

Remediar workloads abandonadas

No Kubecost, escolha Economia na barra de navegação e depois a página Workloads abandonadas. Neste exemplo, você filtra pelo namespace chamado windows. Essa página mostra os pods que não atingiram o limite de tráfego e foram considerados abandonados. Os pods precisam enviar ou receber uma certa quantidade de tráfego de rede durante o período definido.

Depois de considerar cuidadosamente que um ou mais pods foram abandonados, você pode economizar custos reduzindo a escala verticalmente do número de réplicas, excluindo a implantação, redimensionando-a para consumir menos recursos ou notificando o proprietário da aplicação de que acredita que a implantação foi abandonada.

Agir de acordo com as recomendações

Na seção Dimensionar corretamente os nós do cluster, o Kubecost analisa o uso dos nós de processamento no cluster e faz recomendações sobre o dimensionamento correto dos nós para reduzir os custos. Há dois tipos de grupos de nós que podem ser usados com o Amazon EKS: autogerenciados e gerenciados.

Atualizar nós autogerenciados

Para obter informações sobre a atualização de nós autogerenciados, consulte Atualizações de nós autogerenciados na documentação do Amazon EKS. O documento afirma que os grupos de nós criados com o eksctl não podem ser atualizados e devem ser migrados para um novo grupo de nós com a nova configuração.

Por exemplo, suponha que você tenha um grupo de nós do Windows chamado ng-windows-m5-2xlarge (que usa uma EC2 instância m5.2xlarge) e queira migrar os pods para um novo grupo de nós chamado ng-windows-t3-large (que é apoiado por uma instância EC2 t3.large para economizar custos).

Para migrar para um novo grupo de nós ao usar grupos de nós implantados pelo eksctl, faça o seguinte:

  1. Para encontrar o nó em que o pod está atualmente, execute o comando kubectl describe pod <pod_name> -n <namespace>.

  2. Execute o comando kubectl describe node <node_name>. A saída mostra que o nó está sendo executado em uma instância m5.2xlarge. Também corresponde ao nome do grupo de nós (ng-windows-m5-2xlarge).

  3. Para alterar a implantação para usar o grupo de nós ng-windows-t3-large, exclua o grupo de nós ng-windows-m5-2xlarge e execute kubectl describe svc,deploy,pod -n windows. A implantação começa imediatamente a ser reimplantada agora que seu grupo de nós foi excluído.

    nota

    Haverá um tempo de inatividade do serviço quando você excluir o grupo de nós.

  4. Execute o comando kubectl describe svc,deploy,pod -n windows novamente após alguns minutos. A saída mostra que os pods estão todos no estado Running novamente.

  5. Para mostrar que os pods agora estão sendo executados no grupo de nós ng-windows-t3-large, execute os comandos kubectl describe pod <pod_name> -n <namespace> e kubectl describe node <node_name> novamente.

Métodos alternativos de redimensionamento

Esse método se aplica a qualquer combinação de grupos de nós autogerenciados ou gerenciados. A publicação do blog Seamlessly migrate workloads from EKS self-managed node group to EKS-managed node groups fornece orientação sobre como migrar suas workloads de um grupo de nós com o tipo de instância superdimensionada para o grupo de nós que foi dimensionado corretamente sem nenhum tempo de inatividade.

Próximas etapas

O Kubecost facilita a visualização do custo de seus ambientes do Amazon EKS. A profunda integração do Kubecost com o Kubernetes e o AWS APIs pode ajudar você a encontrar possíveis economias de custo. Você pode vê-las como recomendações no painel de Economia do Kubecost. O Kubecost também pode implementar algumas dessas recomendações para você por meio do recurso de controlador de clusters.

Recomendamos que você analise a step-by-step implantação no blog AWS Containers e que a Kubecost colabore para fornecer monitoramento de custos para clientes do AWS EKS.

Recursos adicionais do