Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Consapevolezza della spesa
La consapevolezza delle spese consiste nel capire chi, dove e cosa causa le spese nel cluster EKS. Ottenere un quadro preciso di questi dati contribuirà a sensibilizzare l'opinione pubblica sulla spesa e a evidenziare le aree da correggere.
Raccomandazioni
Usa Cost Explorer
AWS Cost Explorer
Costi di EKS Control Plane e EKS Fargate
Utilizzando i filtri, possiamo interrogare i costi sostenuti per i costi EKS presso Control Plane e Fargate Pod come mostrato nel diagramma seguente:

Utilizzando i filtri, possiamo interrogare i costi aggregati sostenuti per i Fargate Pod nelle diverse regioni di EKS, che includono sia le ore vCPU per CPU che i GB/ora, come mostrato nel diagramma seguente:

Etichettatura delle risorse
Amazon EKS supporta l'aggiunta di tag AWS ai cluster Amazon EKS. Ciò semplifica il controllo dell'accesso all'API EKS per la gestione dei cluster. I tag aggiunti a un cluster EKS sono specifici della risorsa del cluster AWS EKS, non si propagano ad altre risorse AWS utilizzate dal cluster come EC2 istanze o sistemi di bilanciamento del carico. Oggi, il tagging dei cluster è supportato per tutti i cluster EKS nuovi ed esistenti tramite l'API AWS, la console e. SDKs
AWS Fargate è una tecnologia che fornisce capacità di elaborazione on-demand e della giusta dimensione per i container. Prima di poter pianificare i pod su Fargate nel cluster, è necessario definire almeno un profilo Fargate che specifichi quali pod devono utilizzare Fargate al momento del lancio.
Aggiungere ed elencare tag a un 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" } }
Dopo aver attivato i tag di allocazione dei costi in AWS Cost Explorer, AWS utilizza i tag di allocazione dei costi per organizzare i costi delle risorse nel report di allocazione dei costi, per semplificare la categorizzazione e il monitoraggio dei costi AWS.
I tag non hanno alcun significato semantico per Amazon EKS e vengono interpretati rigorosamente come una stringa di caratteri. Ad esempio, puoi definire un set di tag per i tuoi cluster Amazon EKS per aiutarti a tracciare il proprietario e il livello di stack di ogni cluster.
Usa AWS Trusted Advisor
AWS Trusted Advisor offre una vasta gamma di controlli e raccomandazioni sulle best practice in cinque categorie: ottimizzazione dei costi, sicurezza, tolleranza agli errori, prestazioni e limiti del servizio.
Per l'ottimizzazione dei costi, Trusted Advisor aiuta a eliminare le risorse inutilizzate e inattive e consiglia di impegnarsi per la capacità riservata. Le azioni chiave che aiuteranno Amazon EKS riguarderanno, tra le altre cose, EC2 le istanze poco utilizzate, gli indirizzi IP elastici non associati, i sistemi Idle Load Balancer, i volumi EBS sottoutilizzati. L'elenco completo dei controlli è disponibile su -practice-checklist/. https://aws.amazon.com/premiumsupport/ technology/trusted-advisor/best
Il Trusted Advisor fornisce anche consigli su Savings Plans e Reserved EC2 Instances per le istanze e Fargate, che consente di impegnarsi a utilizzare un importo costante in cambio di tariffe scontate.
Nota
Le raccomandazioni di Trusted Advisor sono raccomandazioni generiche e non specifiche per EKS.
Usa la dashboard di Kubernetes
Dashboard Kubernetes
Kubernetes Dashboard è un'interfaccia utente generica basata sul Web per i cluster Kubernetes, che fornisce informazioni sul cluster Kubernetes, incluso l'utilizzo delle risorse a livello di cluster, nodo e pod. La distribuzione della dashboard Kubernetes su un cluster Amazon EKS è descritta nella documentazione di Amazon EKS.
La dashboard fornisce informazioni dettagliate sull'utilizzo delle risorse per ogni nodo e pod, oltre a metadati dettagliati su pod, servizi, implementazioni e altri oggetti Kubernetes. Queste informazioni consolidate forniscono visibilità sull'ambiente Kubernetes.

kubectl ferma e descrive i comandi
Visualizzazione delle metriche sull'utilizzo delle risorse con i comandi kubectl top e kubectl descrizione. kubectl top mostrerà l'uso corrente di CPU e memoria per i pod o i nodi del cluster o per un pod o un nodo specifico. Il comando kubectl describe fornirà informazioni più dettagliate su un nodo o un pod specifico.
$ kubectl top pods $ kubectl top nodes $ kubectl top pod pod-name --namespace mynamespace --containers
Utilizzando il comando top, l'output mostrerà la quantità totale di CPU (in core) e memoria (in MiB) utilizzata dal nodo e le percentuali della capacità allocabile del nodo rappresentate da tali numeri. È quindi possibile eseguire il drill-down fino al livello successivo, il livello del contenitore all'interno dei pod, aggiungendo il flag --containers.
$ kubectl describe node <node> $ kubectl describe pod <pod>
kubectl describe restituisce la percentuale della capacità totale disponibile rappresentata da ogni richiesta o limite di risorse.
kubectl top and describe, monitora l'utilizzo e la disponibilità di risorse critiche come CPU, memoria e storage su pod, nodi e contenitori Kubernetes. Questa consapevolezza aiuterà a comprendere l'utilizzo delle risorse e a controllare i costi.
Usa CloudWatch Container Insights
Usa CloudWatch Container Insights per raccogliere, aggregare e riepilogare metriche e log delle tue applicazioni e microservizi containerizzati. Container Insights è disponibile per Amazon Elastic Kubernetes Service EC2 su e piattaforme Kubernetes su Amazon. EC2 I parametri includono l'utilizzo di risorse come CPU, memoria, dischi e rete.
L'installazione di Insights è riportata nella documentazione.
CloudWatch crea metriche aggregate a livello di cluster, nodo, pod, task e servizio come CloudWatch metriche.
La seguente query mostra un elenco di nodi, ordinati in base all'utilizzo medio della CPU del nodo
STATS avg(node_cpu_utilization) as avg_node_cpu_utilization by NodeName | SORT avg_node_cpu_utilization DESC
Utilizzo della CPU in base al nome del contenitore
stats pct(container_cpu_usage_total, 50) as CPUPercMedian by kubernetes.container_name | filter Type="Container"
Utilizzo del disco in base al nome del contenitore
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
Altre interrogazioni di esempio sono fornite nella documentazione di Container Insights
Questa consapevolezza aiuterà a comprendere l'utilizzo delle risorse e a controllare i costi.
Utilizzo di Kubecost per la consapevolezza e la guida alla spesa
Strumenti di terze parti come kubecost
Implementazione di kubecost con 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
Dashboard Kubecost -
Utilizza lo strumento di analisi dell'allocazione dei costi e della pianificazione della capacità Kubernetes
Kubernetes Opex Analytics

Yotascale
Yotascale aiuta ad allocare con precisione i costi di Kubernetes. La funzionalità di allocazione dei costi di Yotascale Kubernetes utilizza i dati sui costi effettivi, che includono gli sconti sulle istanze riservate e i prezzi delle istanze spot anziché le stime generiche dei tassi di mercato, per determinare l'impatto totale dei costi di Kubernetes
Maggiori dettagli sono disponibili sul loro sito Web.
Alcide Advisor
Alcide è un partner tecnologico avanzato di AWS Partner Network (APN). Alcide Advisor aiuta a garantire che la configurazione di cluster, nodi e pod Amazon EKS sia ottimizzata per funzionare secondo le migliori pratiche di sicurezza e le linee guida interne. Alcide Advisor è un servizio senza agenti per l'audit e la conformità di Kubernetes, progettato per garantire un flusso sicuro e senza attriti, rafforzando la fase di sviluppo prima di passare alla produzione. DevSecOps
Maggiori dettagli sono
Altri strumenti
Raccolta dei rifiuti Kubernetes
Il ruolo del Garbage Collector di Kubernetes
Contea di Fargate
Fargatecount
Popeye: un disinfettante per cluster Kubernetes
Popeye - A Kubernetes Cluster Sanitizer è un'utilità che esegue la scansione del cluster Kubernetes
Risorse
Consulta le seguenti risorse per saperne di più sulle migliori pratiche per l'ottimizzazione dei costi.