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
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:
-
Implementar o Kubecost em seu ambiente
-
Obter um detalhamento granular dos custos das aplicações do Windows
-
Dimensionar corretamente nós de clusters
-
Dimensionar corretamente solicitações de contêineres
-
Gerenciar nós subutilizados
-
Remediar workloads abandonadas
-
Agir de acordo com as recomendações
-
Atualizar nós autogerenciados
Implementar o Kubecost em seu ambiente
O Amazon EKS Finhack Workshop
Para implantar o Kubecost em seu cluster Amazon EKS usando o Helm
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
Para obter uma análise granular dos custos de suas aplicações do Windows, faça login no Kubecost
Dimensionar corretamente nós de clusters
No Kubecost
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
Se você estiver usando nós autogerenciados do Windows que não foram criados pelo eksctl
Dimensionar corretamente solicitações de contêineres
No Kubecost
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
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
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:
-
Para encontrar o nó em que o pod está atualmente, execute o comando
kubectl describe pod <pod_name> -n <namespace>. -
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). -
Para alterar a implantação para usar o grupo de nós
ng-windows-t3-large, exclua o grupo de nósng-windows-m5-2xlargee executekubectl 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.
-
Execute o comando
kubectl describe svc,deploy,pod -n windowsnovamente após alguns minutos. A saída mostra que os pods estão todos no estado Running novamente. -
Para mostrar que os pods agora estão sendo executados no grupo de nós
ng-windows-t3-large, execute os comandoskubectl describe pod <pod_name> -n <namespace>ekubectl 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
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
-
Amazon EKS Workshop
(Amazon EKS Workshop) -
AWS e a Kubecost colaboram para fornecer monitoramento de custos para clientes da EKS
(Blog)AWS -
Contêineres do Windows ativados AWS
(AWS Workshop Studio)