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á.
Conscientização sobre despesas
Conscientizar as despesas é entender quem, onde e o que está causando despesas em seu cluster EKS. Obter uma imagem precisa desses dados ajudará a aumentar a conscientização sobre seus gastos e destacar áreas a serem corrigidas.
Recomendações
Use o Cost Explorer
O AWS Cost Explorer
Custos do plano de controle EKS e do EKS Fargate
Usando os filtros, podemos consultar os custos incorridos com os custos do EKS no Plano de Controle e no Fargate Pod, conforme mostrado no diagrama abaixo:

Usando os filtros, podemos consultar os custos agregados dos Fargate Pods em todas as regiões do EKS, o que inclui horas de vCPU por CPU e GB por hora, conforme mostrado no diagrama abaixo:

Marcação de recursos
O Amazon EKS oferece suporte à adição de tags da AWS aos seus clusters do Amazon EKS. Isso facilita o controle do acesso à API EKS para gerenciar seus clusters. As tags adicionadas a um cluster do EKS são específicas do recurso de cluster do AWS EKS e não se propagam para outros recursos da AWS usados pelo cluster, como EC2 instâncias ou balanceadores de carga. Atualmente, a marcação de clusters é compatível com todos os clusters EKS novos e existentes por meio da API, console e. SDKs
O AWS Fargate é uma tecnologia que fornece capacidade computacional sob demanda e do tamanho certo para contêineres. Antes de agendar pods no Fargate no cluster, é necessário definir pelo menos um perfil do Fargate que especifique quais pods devem usá-lo quando forem executados.
Adicionar e listar tags a um cluster EKS:
$ aws eks tag-resource --resource-arn arn:aws:eks:us-west-2:xxx:cluster/ekscluster1 --tags team=devops,env=staging,bu=cio,costcenter=1234 $ aws eks list-tags-for-resource --resource-arn arn:aws:eks:us-west-2:xxx:cluster/ekscluster1 { "tags": { "bu": "cio", "env": "staging", "costcenter": "1234", "team": "devops" } }
Depois de ativar as tags de alocação de custos no AWS Cost Explorer, a AWS usa as tags de alocação de custos para organizar seus custos de recursos em seu relatório de alocação de custos, para facilitar a categorização e o controle de seus custos da AWS.
As etiquetas não têm significado semântico no Amazon EKS e são interpretadas estritamente como uma sequência de caracteres. Por exemplo, você pode definir um conjunto de etiquetas para os clusters do Amazon EKS para ajudar a monitorar o proprietário e o nível da pilha de cada cluster.
Use o AWS Trusted Advisor
O AWS Trusted Advisor oferece um rico conjunto de verificações e recomendações de melhores práticas em cinco categorias: otimização de custos; segurança; tolerância a falhas; desempenho; e limites de serviço.
Para otimização de custos, o Trusted Advisor ajuda a eliminar recursos não utilizados e ociosos e recomenda assumir compromissos com a capacidade reservada. Os principais itens de ação que ajudarão o Amazon EKS envolverão EC2 instâncias pouco utilizadas, endereços IP elásticos não associados, balanceadores de carga ociosos, volumes subutilizados do EBS, entre outras coisas. A lista completa de verificações é fornecida em https://aws.amazon.com/premiumsupport/technology/trusted-advisor/best-practice-checklist/
O Trusted Advisor também fornece recomendações de Savings Plans e Reserved EC2 Instances para instâncias e Fargate, o que permite que você se comprometa com um valor de uso consistente em troca de tarifas com desconto.
nota
As recomendações do Trusted Advisor são recomendações genéricas e não específicas do EKS.
Use o painel do Kubernetes
Painel do Kubernetes
O Kubernetes Dashboard é uma interface de usuário baseada na web de uso geral para clusters Kubernetes, que fornece informações sobre o cluster Kubernetes, incluindo o uso de recursos em nível de cluster, nó e pod. A implantação do painel do Kubernetes em um cluster do Amazon EKS é descrita na documentação do Amazon EKS.
O painel fornece detalhamentos do uso de recursos para cada nó e pod, bem como metadados detalhados sobre pods, serviços, implantações e outros objetos do Kubernetes. Essas informações consolidadas fornecem visibilidade do seu ambiente Kubernetes.

comandos kubectl top e describe
Visualizando métricas de uso de recursos com os comandos kubectl top e kubectl describe. O kubectl top mostrará o uso atual da CPU e da memória para os pods ou nós em todo o cluster ou para um pod ou nó específico. O comando kubectl describe fornecerá informações mais detalhadas sobre um nó ou pod específico.
$ kubectl top pods $ kubectl top nodes $ kubectl top pod pod-name --namespace mynamespace --containers
Usando o comando top, a saída exibirá a quantidade total de CPU (em núcleos) e memória (em MiB) que o nó está usando e as porcentagens da capacidade alocável do nó que esses números representam. Em seguida, você pode detalhar até o próximo nível, o nível do contêiner dentro dos pods, adicionando uma sinalização --containers.
$ kubectl describe node <node> $ kubectl describe pod <pod>
kubectl describe retorna a porcentagem da capacidade total disponível que cada solicitação ou limite de recurso representa.
kubectl top e descreva, acompanhe a utilização e a disponibilidade de recursos essenciais, como CPU, memória e armazenamento em pods, nós e contêineres do Kubernetes. Essa conscientização ajudará a entender o uso de recursos e a controlar os custos.
Use o CloudWatch Container Insights
Use o CloudWatch Container Insights para coletar, agregar e resumir métricas e registros de seus aplicativos e microsserviços em contêineres. O Container Insights está disponível para o Amazon Elastic Kubernetes Service EC2 no Amazon e para as plataformas Kubernetes na Amazon. EC2 As métricas incluem a utilização de recursos, como CPU, memória, disco e rede.
A instalação dos insights é fornecida na documentação.
CloudWatch cria métricas agregadas no nível de cluster, nó, pod, tarefa e serviço como CloudWatch métricas.
A consulta a seguir mostra uma lista de nós, ordenada pela utilização média da CPU do nó
STATS avg(node_cpu_utilization) as avg_node_cpu_utilization by NodeName | SORT avg_node_cpu_utilization DESC
Uso da CPU por nome do contêiner
stats pct(container_cpu_usage_total, 50) as CPUPercMedian by kubernetes.container_name | filter Type="Container"
Uso do disco por nome do contêiner
stats floor(avg(container_filesystem_usage/1024)) as container_filesystem_usage_avg_kb by InstanceId, kubernetes.container_name, device | filter Type="ContainerFS" | sort container_filesystem_usage_avg_kb desc
Mais exemplos de consultas são fornecidos na documentação do Container Insights
Essa conscientização ajudará a entender o uso de recursos e a controlar os custos.
Usando o Kubecost para conscientização e orientação sobre despesas
Ferramentas de terceiros, como o kubecost
Implantando o kubecost usando o Helm 3:
$ curl -sSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash $ helm version --short v3.2.1+gfe51cd1 $ helm repo add stable https://kubernetes-charts.storage.googleapis.com/ $ helm repo add stable https://kubernetes-charts.storage.googleapis.com/c^C $ kubectl create namespace kubecost namespace/kubecost created $ helm repo add kubecost https://kubecost.github.io/cost-analyzer/ "kubecost" has been added to your repositories $ helm install kubecost kubecost/cost-analyzer --namespace kubecost --set kubecostToken="aGRoZEBqc2pzLmNvbQ==xm343yadf98" NAME: kubecost LAST DEPLOYED: Mon May 18 08:49:05 2020 NAMESPACE: kubecost STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: --------------------------------------------------Kubecost has been successfully installed. When pods are Ready, you can enable port-forwarding with the following command: kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090 Next, navigate to http://localhost:9090 in a web browser. $ kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090 NOTE: If you are using Cloud 9 or have a need to forward it to a different port like 8080, issue the following command $ kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 8080:9090
Painel do Kubecost -
Use a ferramenta de análise de alocação de custos e planejamento de capacidade do Kubernetes
O Kubernetes Opex Analytics

Escala de Yota
O Yotascale ajuda a alocar com precisão os custos do Kubernetes. O recurso de alocação de custos do Kubernetes do Yotascale utiliza dados de custo reais, que incluem descontos de instâncias reservadas e preços de instâncias spot, em vez de estimativas genéricas de taxa de mercado, para informar o custo total do Kubernetes
Mais detalhes podem ser encontrados em seu site
Conselheiro Alcide
Alcide é parceiro de tecnologia avançada da AWS Partner Network (APN). O Alcide Advisor ajuda a garantir que a configuração do cluster, dos nós e dos pods do Amazon EKS seja ajustada para ser executada de acordo com as melhores práticas de segurança e as diretrizes internas. O Alcide Advisor é um serviço sem agente para auditoria e conformidade do Kubernetes, criado para garantir um DevSecOps fluxo seguro e sem atrito, fortalecendo o estágio de desenvolvimento antes de passar para a produção.
Mais detalhes podem ser encontrados nesta postagem do blog
Outras ferramentas
Coleta de lixo do Kubernetes
A função do coletor de lixo do Kubernetes
Condado de Fargate
O Fargatecount
Popeye - Um desinfetante de cluster Kubernetes
Popeye - A Kubernetes Cluster Sanitizer é um utilitário que escaneia o cluster
Recursos
Consulte os recursos a seguir para saber mais sobre as melhores práticas para otimização de custos.