Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Conocimiento del gasto
El conocimiento de los gastos consiste en entender quién, dónde y qué es lo que provoca los gastos en su clúster de EKS. Obtener una imagen precisa de estos datos le ayudará a dar a conocer sus gastos y a destacar las áreas que debe corregir.
Recomendaciones
Utilice Cost Explorer
AWS Cost Explorer
Costos del EKS Control Plane y del EKS Fargate
Con los filtros, podemos consultar los costos incurridos por los costos de EKS en el Plano de Control y el Fargate Pod, como se muestra en el siguiente diagrama:

Con los filtros, podemos consultar los costes totales incurridos por los Fargate Pods en todas las regiones de EKS, que incluyen tanto las horas de CPU virtual por CPU como los GB por hora, como se muestra en el siguiente diagrama:

Etiquetado de recursos
Amazon EKS admite la adición de etiquetas de AWS a los clústeres de Amazon EKS. Esto facilita el control del acceso a la API de EKS para administrar sus clústeres. Las etiquetas añadidas a un clúster de EKS son específicas del recurso del clúster de AWS EKS y no se propagan a otros recursos de AWS utilizados por el clúster, como EC2 instancias o balanceadores de carga. En la actualidad, el etiquetado de clústeres es compatible con todos los clústeres de EKS nuevos y existentes a través de la API, la consola y SDKs la consola de AWS.
AWS Fargate es una tecnología que proporciona capacidad informática a pedido y del tamaño adecuado para contenedores. Para poder programar pods en Fargate en el clúster, debe definir al menos un perfil de Fargate que especifique qué pods debe utilizar Fargate cuando se lancen.
Añadir y enumerar etiquetas a un clúster de 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" } }
Tras activar las etiquetas de asignación de costes en el explorador de costes de AWS, AWS las utiliza para organizar los costes de los recursos en el informe de asignación de costes, a fin de que le resulte más fácil categorizar y realizar un seguimiento de los costes de AWS.
Las etiquetas no tienen ningún significado semántico para Amazon EKS, por lo que se interpretan estrictamente como cadenas de caracteres. Por ejemplo, puede definir un conjunto de etiquetas para los clústeres de Amazon EKS a fin de ayudar a realizar un seguimiento del propietario y del nivel de pila de cada clúster.
Utilice AWS Trusted Advisor
AWS Trusted Advisor ofrece un amplio conjunto de recomendaciones y comprobaciones de prácticas recomendadas en cinco categorías: optimización de costes, seguridad, tolerancia a errores, rendimiento y límites de servicio.
Para optimizar los costos, Trusted Advisor ayuda a eliminar los recursos inactivos y no utilizados y recomienda comprometerse con la capacidad reservada. Las acciones clave que ayudarán a Amazon EKS se centrarán en las EC2 instancias poco utilizadas, las direcciones IP elásticas no asociadas, los balanceadores de carga inactivos y los volúmenes de EBS infrautilizados, entre otras cosas. La lista completa de comprobaciones se encuentra en -practice-checklist/. https://aws.amazon.com/premiumsupport/ technology/trusted-advisor/best
The Trusted Advisor también ofrece recomendaciones sobre Savings Plans e Reserved EC2 Instances para instancias y Fargate, lo que le permite comprometerse a un monto de uso constante a cambio de tarifas con descuento.
nota
Las recomendaciones de Trusted Advisor son recomendaciones genéricas y no específicas de EKS.
Utilice el panel de control de Kubernetes
Panel de control de Kubernetes
El panel de control de Kubernetes es una interfaz de usuario web de uso general para los clústeres de Kubernetes, que proporciona información sobre el clúster de Kubernetes, incluido el uso de los recursos a nivel de clúster, nodo y pod. La implementación del panel de control de Kubernetes en un clúster de Amazon EKS se describe en la documentación de Amazon EKS.
El panel proporciona desgloses del uso de los recursos para cada nodo y pod, así como metadatos detallados sobre los pods, los servicios, las implementaciones y otros objetos de Kubernetes. Esta información consolidada proporciona visibilidad de su entorno de Kubernetes.

kubectl: encabeza y describe los comandos
Ver las métricas de uso de recursos con los comandos kubectl top y kubectl describe. kubectl top mostrará el uso actual de CPU y memoria de los pods o nodos del clúster, o de un pod o nodo específico. El comando kubectl describe proporcionará información más detallada sobre un nodo o un pod específicos.
$ kubectl top pods $ kubectl top nodes $ kubectl top pod pod-name --namespace mynamespace --containers
Con el comando top, el resultado mostrará la cantidad total de CPU (en núcleos) y memoria (en MiB) que utiliza el nodo y los porcentajes de la capacidad asignable del nodo que representan esos números. A continuación, puedes ir al siguiente nivel, el nivel de contenedor dentro de los pods, añadiendo una marca --containers.
$ kubectl describe node <node> $ kubectl describe pod <pod>
kubectl describe devuelve el porcentaje de la capacidad total disponible que representa cada solicitud o límite de recursos.
kubectl top y describe, realiza un seguimiento de la utilización y la disponibilidad de los recursos críticos, como la CPU, la memoria y el almacenamiento, en los pods, nodos y contenedores de Kubernetes. Esta toma de conciencia ayudará a comprender el uso de los recursos y a controlar los costos.
Utilice CloudWatch Container Insights
Utilice CloudWatch Container Insights para recopilar, agregar y resumir las métricas y los registros de sus aplicaciones y microservicios en contenedores. Container Insights está disponible para Amazon Elastic Kubernetes Service y para las plataformas Kubernetes EC2 en Amazon. EC2 Las métricas incluyen la utilización de recursos como CPU, memoria, disco y red.
La instalación de los conocimientos se detalla en la documentación.
CloudWatch crea métricas agregadas a nivel de clúster, nodo, módulo, tarea y servicio como CloudWatch métricas.
La siguiente consulta muestra una lista de nodos, ordenados por el uso medio de la CPU de los nodos
STATS avg(node_cpu_utilization) as avg_node_cpu_utilization by NodeName | SORT avg_node_cpu_utilization DESC
Uso de CPU por nombre de contenedor
stats pct(container_cpu_usage_total, 50) as CPUPercMedian by kubernetes.container_name | filter Type="Container"
Uso de disco por nombre de contenedor
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
Encontrará más ejemplos de consultas en la documentación de Container Insights
Esta toma de conciencia ayudará a comprender el uso de los recursos y a controlar los costos.
Uso de Kubecost para informar y orientar sobre los gastos
También se pueden implementar herramientas de terceros, como kubecost
Implementación de 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
Panel de control de Kubecost -
Utilice la herramienta de análisis de asignación de costes y planificación de la capacidad de Kubernetes
Kubernetes Opex Analytics

Yotascale
Yotascale ayuda a asignar con precisión los costos de Kubernetes. La función de asignación de costes de Kubernetes de Yotascale utiliza datos de costes reales, que incluyen los descuentos en las instancias reservadas y los precios de las instancias puntuales, en lugar de estimaciones genéricas de los precios de mercado, para informar sobre la huella de costes total de Kubernetes
Puede encontrar más
Asesor Alcide
Alcide es un socio de tecnología avanzada de AWS Partner Network (APN). Alcide Advisor ayuda a garantizar que la configuración de sus clústeres, nodos y pods de Amazon EKS esté ajustada para que se ejecute de acuerdo con las mejores prácticas de seguridad y las directrices internas. Alcide Advisor es un servicio sin agentes para la auditoría y el cumplimiento de Kubernetes, diseñado para garantizar un DevSecOps flujo seguro y sin fricciones al reforzar la fase de desarrollo antes de pasar a la fase de producción.
Puedes encontrar más detalles en esta entrada de blog.
Otras herramientas
Recolección de basura de Kubernetes
La función del recolector de basura de Kubernetes
Condado de Fargate
Fargatecount
Popeye: un desinfectante de clústeres de Kubernetes
Popeye: un desinfectante de clústeres de Kubernetes es una utilidad que escanea un clúster de Kubernetes
Recursos
Consulte los siguientes recursos para obtener más información sobre las mejores prácticas para la optimización de costes.