

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
<a name="cost-opt-awareness"></a>

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
<a name="_recommendations"></a>

### Use o Cost Explorer
<a name="_use_cost_explorer"></a>

 [O AWS Cost Explorer](https://aws.amazon.com/aws-cost-management/aws-cost-explorer/) tem uma easy-to-use interface que permite visualizar, entender e gerenciar seus custos e uso da AWS ao longo do tempo. Você pode analisar dados de custo e uso, em vários níveis, usando os filtros disponíveis no Cost Explorer.

#### Custos do plano de controle EKS e do EKS Fargate
<a name="_eks_control_plane_and_eks_fargate_costs"></a>

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:

![Cost Explorer - Plano de controle EKS](http://docs.aws.amazon.com/pt_br/eks/latest/best-practices/images/eks-controlplane-costexplorer.png)


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:

![Cost Explorer - EKS Fargate](http://docs.aws.amazon.com/pt_br/eks/latest/best-practices/images/eks-fargate-costexplorer.png)


#### Marcação de recursos
<a name="_tagging_of_resources"></a>

O Amazon EKS oferece suporte [à adição de tags da AWS](https://docs.aws.amazon.com/eks/latest/userguide/eks-using-tags.html) 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](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html), 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
<a name="_use_aws_trusted_advisor"></a>

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
<a name="_use_the_kubernetes_dashboard"></a>

 ***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](https://docs.aws.amazon.com/eks/latest/userguide/dashboard-tutorial.html) 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.

![Painel do Kubernetes](http://docs.aws.amazon.com/pt_br/eks/latest/best-practices/images/kubernetes-dashboard.png)


 ***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
<a name="_use_cloudwatch_container_insights"></a>

Use o [CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/deploy-container-insights-EKS.html) 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/deploy-container-insights-EKS.html).

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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Container-Insights-view-metrics.html) 

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
<a name="_using_kubecost_for_expenditure_awareness_and_guidance"></a>

Ferramentas de terceiros, como o [kubecost](https://kubecost.com/), também podem ser implantadas no Amazon EKS para obter visibilidade do custo de execução do seu cluster Kubernetes. Consulte este [blog da AWS](https://aws.amazon.com/blogs/containers/how-to-track-costs-in-multi-tenant-amazon-eks-clusters-using-kubecost/) para monitorar os custos usando 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 - ![Kubernetes Cluster Auto Scaler logs](http://docs.aws.amazon.com/pt_br/eks/latest/best-practices/images/kube-cost.png) 

### Use a ferramenta de análise de alocação de custos e planejamento de capacidade do Kubernetes
<a name="_use_kubernetes_cost_allocation_and_capacity_planning_analytics_tool"></a>

 O [Kubernetes Opex Analytics](https://github.com/rchakode/kube-opex-analytics) é uma ferramenta para ajudar as organizações a rastrear os recursos consumidos por seus clusters Kubernetes para evitar pagamentos excessivos. Para fazer isso, ele gera relatórios de uso de curto (7 dias), médio (14 dias) e longo prazo (12 meses) mostrando informações relevantes sobre a quantidade de recursos que cada projeto está gastando ao longo do tempo.

![Análise Opex do Kubernetes](http://docs.aws.amazon.com/pt_br/eks/latest/best-practices/images/kube-opex-analytics.png)


### Escala de Yota
<a name="_yotascale"></a>

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](https://www.yotascale.com/).

### Conselheiro Alcide
<a name="_alcide_advisor"></a>

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](https://aws.amazon.com/blogs/apn/driving-continuous-security-and-configuration-checks-for-amazon-eks-with-alcide-advisor/).

## Outras ferramentas
<a name="_other_tools"></a>

### Coleta de lixo do Kubernetes
<a name="_kubernetes_garbage_collection"></a>

A função do [coletor de lixo do Kubernetes](https://kubernetes.io/docs/concepts/workloads/controllers/garbage-collection/) é excluir certos objetos que já tiveram um proprietário, mas não têm mais um proprietário.

### Condado de Fargate
<a name="_fargate_count"></a>

 O [Fargatecount](https://github.com/mreferre/fargatecount) é uma ferramenta útil que permite aos clientes da AWS rastrear, com uma CloudWatch métrica personalizada, o número total de pods EKS que foram implantados no Fargate em uma região específica de uma conta específica. Isso ajuda a acompanhar todos os pods do Fargate em execução em um cluster EKS.

### Popeye - Um desinfetante de cluster Kubernetes
<a name="_popeye_a_kubernetes_cluster_sanitizer"></a>

 [Popeye - A Kubernetes Cluster Sanitizer é um utilitário que escaneia o cluster](https://github.com/derailed/popeye) Kubernetes ativo e relata possíveis problemas com os recursos e configurações implantados. Ele limpa seu cluster com base no que está implantado e não no que está no disco. Ao escanear seu cluster, ele detecta configurações incorretas e ajuda você a garantir que as melhores práticas estejam em vigor

### Recursos
<a name="_resources"></a>

Consulte os recursos a seguir para saber mais sobre as melhores práticas para otimização de custos.

#### Documentação e blogs
<a name="_documentation_and_blogs"></a>
+  [O Amazon EKS oferece suporte à marcação](https://docs.aws.amazon.com/eks/latest/userguide/eks-using-tags.html) 

#### Ferramentas
<a name="_tools"></a>
+  [O que é o AWS Billing and Cost Management?](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html) 
+  [Amazon CloudWatch Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) 
+  [Como rastrear custos em clusters Amazon EKS multilocatários usando o Kubecost](https://aws.amazon.com/blogs/containers/how-to-track-costs-in-multi-tenant-amazon-eks-clusters-using-kubecost/) 
+  [Cubecost](https://kubecost.com/) 
+  [Kube Opsview](https://github.com/hjacobs/kube-ops-view) 
+  [Análise Opex do Kubernetes](https://github.com/rchakode/kube-opex-analytics) 