

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.

# Mejora la visibilidad de sus costos en Amazon EKS.
<a name="kubecost-main"></a>

## Descripción general de
<a name="kubecost-overview"></a>

Se necesita una visión holística para supervisar de manera efectiva el costo de una implementación de Kubernetes. El único costo fijo y conocido es el del plano de control de Amazon Elastic Kubernetes Service (Amazon EKS). Esto incluye todos los demás componentes que forman parte de la implementación, desde el computación y el almacenamiento hasta las redes, y se trata de un monto que varía en función de las necesidades de la aplicación.

Puede usar [Kubecost](https://www.kubecost.com/) para analizar el costo de su infraestructura de Kubernetes, desde los [espacios de nombres](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/) y los [servicios](https://kubernetes.io/docs/concepts/services-networking/service/) hasta los [pods](https://kubernetes.io/docs/concepts/workloads/pods/) individuales, y luego mostrar los datos en un panel. Kubecost muestra los costos dentro del clúster, como el cómputo y el almacenamiento, y los costos, out-of-cluster como los depósitos de [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) y las instancias del Amazon Relational Database Service ([Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html)). Kubecost recomendará el tamaño correcto en función de estos datos y mostrará las alertas críticas que puedan afectar al sistema. Kubecost se puede [integrar](https://www.ibm.com/docs/en/kubecost/self-hosted/1.x?topic=integrations-aws-cloud-billing-integration) con [AWS Cost and Usage Report](https://docs.aws.amazon.com/cur/latest/userguide/what-is-cur.html) para ver los ahorros de [Savings Plans para computación](https://docs.aws.amazon.com/savingsplans/latest/userguide/what-is-savings-plans.html), [Instancias reservadas](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-reserved-instances.html) y otros programas de descuentos.

## Beneficios en términos de costos
<a name="kubecost-cost-benefits"></a>

Kubecost proporciona informes y paneles que visualizan el costo de las implementaciones de Amazon EKS. Le permite hacer un desglose de cada uno de los distintos componentes del clúster, como los controladores, los servicios, los nodos, los pods y los volúmenes. Esto le proporciona una visión holística de las aplicaciones que se ponen en marcha en un entorno Amazon EKS. Al activar esta visibilidad, puede seguir las recomendaciones de Kubecost o ver los costos de cada aplicación de forma pormenorizada. El dimensionamiento correcto de un grupo de nodos de Amazon EKS ofrece los mismos ahorros potenciales que las instancias de EC2 estándar. Si puede dimensionar correctamente sus contenedores y nodos, podrá eliminar el exceso de computación tanto del tamaño de la instancia que se necesita para poner en marcha el contenedor como del número de instancias de EC2 requeridas en el grupo de escalado automático.

## Recomendaciones de optimización de costos
<a name="kubecost-rec"></a>

Para aprovechar Kubecost, le recomendamos que haga lo siguiente:

1. Implementación de Kubecost en el entorno

1. Obtención de un desglose detallado de los costos de las aplicaciones de Windows

1. Dimensionamiento correcto de los nodos del clúster

1. Dimensionamiento correcto de las solicitudes de contenedor

1. Administración de los nodos infrautilizados

1. Corrección de las cargas de trabajo abandonadas

1. Toma de medidas basadas en las recomendaciones

1. Actualización de los nodos autoadministrados

### Implementación de Kubecost en el entorno
<a name="kubecost-overview-rec-deploy"></a>

El [taller Finhack de Amazon EKS](https://catalog.us-east-1.prod.workshops.aws/workshops/c4ab40ed-0299-4a4e-8987-35d90ba5085e/en-US) le enseña cómo implementar un entorno de Amazon EKS configurado para usar Kubecost en una AWS cuenta propia. Esto le permite obtener experiencia práctica con la tecnología. Si le interesa organizar este taller en su organización, contacte con su equipo de cuentas.

Para implementar Kubecost en su clúster de Amazon EKS con [Helm](https://helm.sh/), consulte la publicación en el AWS blog sobre la [colaboración con Kubecost para ofrecer un monitoreo de costos a los clientes de EKS](https://aws.amazon.com/blogs/containers/aws-and-kubecost-collaborate-to-deliver-cost-monitoring-for-eks-customers/). AWS Como alternativa, puede consultar la [documentación oficial de Kubecost](https://www.ibm.com/docs/en/kubecost/self-hosted/3.x?topic=installation) para obtener instrucciones sobre cómo instalar y configurar Kubecost. Para obtener información sobre el soporte de Kubecost para los nodos de Windows, consulte [Windows Node Support](https://www.ibm.com/docs/en/kubecost/self-hosted/3.x?topic=configuration-windows-node-support) en la documentación de Kubecost.

### Obtención de un desglose detallado de los costos de las aplicaciones de Windows
<a name="kubecost-overview-rec-granular-cost"></a>

Si bien puede ahorrar costos de manera significando usando [instancias de spot de Amazon EC2](https://aws.amazon.com/ec2/spot/), también puede beneficiarse del hecho de que las cargas de trabajo de Windows suelen tener estado. El uso de instancias de spot depende de la aplicación y le recomendamos que compruebe si son aplicables a su caso de uso.

Para obtener un desglose detallado de los costos de sus aplicaciones de Windows, [inicie sesión en Kubecost](https://auth.app.kubecost.com/login). En el panel de navegación, elija **Ahorro**.

### Dimensionamiento correcto de los nodos del clúster
<a name="kubecost-overview-rec-rightsize-cluster"></a>

En [Kubecost](https://auth.app.kubecost.com/login), seleccione **Ahorro** en la barra de navegación y, a continuación, elija **Dimensionar correctamente el nodo del clúster**.

Imagine que Kubecost indica que el clúster está sobreaprovisionado tanto en términos de vCPU como de RAM. En la tabla siguiente, se muestran los detalles y recomendaciones de Kubecost.


****  

|   | Actuales | Recomendación: simple | Recomendación: compleja | 
| --- | --- | --- | --- | 
| Recuento total | 3462,57 USD al mes | 137,24 USD al mes | 303,68 USD al mes | 
| Recuentos de nodos | 4 | 5 | 4 | 
| CPU | 74 VCPUs | 10 VCPUs | 8 VCPUs | 
| RAM | 152 GB | 20 GB | 18 GB | 
| Desglose de instancias | 2 c5.xlarge \$1 2 más | 5 t3a.medium | 2 c5n.large \$1 1 más | 

Como se describe en la publicación del blog de Kubecost, [Find an optimal set of nodes for a Kubernetes cluster](https://blog.kubecost.com/blog/cluster-right-sizing/), la opción simple utiliza un solo grupo de nodos, mientras que la compleja utiliza una estrategia de grupo de varios nodos. El botón **Aprenda a adoptar** permite cambiar el tamaño del clúster con un solo clic. Requiere la instalación del [controlador de clústeres de Kubecost](https://www.ibm.com/docs/en/kubecost/self-hosted/3.x?topic=configuration-cluster-controller).

Si utiliza [nodos de Windows autoadministrados](https://docs.aws.amazon.com/eks/latest/userguide/launch-windows-workers.html) que no se crearon con [eksctl](https://eksctl.io/), consulte [Actualización de una pila de nodos de AWS CloudFormation](https://docs.aws.amazon.com/eks/latest/userguide/update-stack.html). Estas instrucciones le muestran cómo cambiar el tipo de instancia en la plantilla de lanzamiento de Amazon EC2 utilizada por el [grupo de escalado automático](https://docs.aws.amazon.com/autoscaling/ec2/userguide/auto-scaling-groups.html).

### Dimensionamiento correcto de las solicitudes de contenedor
<a name="kubecost-overview-rec-rightsize-container-requests"></a>

En [Kubecost](https://auth.app.kubecost.com/login), seleccione **Ahorro** en la barra de navegación y, a continuación, vaya a la página **Solicitar recomendaciones de dimensionamiento correcto**. En esta página se muestra la [eficiencia](https://www.ibm.com/docs/en/kubecost/self-hosted/2.x?topic=dashboard-efficiency-idle) de los pods, las recomendaciones de dimensionamiento correcto y el ahorro de costos previsto. Puede usar el botón **Personalizar** para filtrar por **clúster**, **nodo**, **espacio de nombres\$1controlador**, etc.

Supongamos que Kubecost calculó que algunos de sus pods están sobreaprovisionados en términos de CPU y RAM (memoria). A continuación, Kubecost recomienda que defina nuevos valores de CPU y RAM para conseguir el ahorro mensual previsto. Para cambiar los valores de CPU y RAM, debe actualizar el archivo de [manifiesto de la implementación](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/).

### Administración de los nodos infrautilizados
<a name="kubecost-overview-rec-underutilized-nodes"></a>

En [Kubecost](https://auth.app.kubecost.com/login), seleccione **Ahorro** en la barra de navegación y, a continuación, elija **Administrar nodos infrautilizados**.

Imagine que la página muestra que un nodo del clúster está infrautilizado en términos de CPU y RAM (memoria) y, por lo tanto, puede vaciarse y terminarse o redimensionarse. Si elige los nodos que no pasan las comprobaciones de nodos y pods, obtendrá más información sobre los motivos por los que no se pueden vaciar.

### Corrección de las cargas de trabajo abandonadas
<a name="kubecost-overview-rec-abandoned-workloads"></a>

En [Kubecost](https://auth.app.kubecost.com/login), seleccione **Ahorro** en la barra de navegación y, a continuación, elija la página **Cargas de trabajo abandonadas**. En este ejemplo, filtra por un espacio de nombres denominado **windows**. En esta página se muestran los pods que no alcanzaron el umbral de tráfico y que se consideran abandonados. Los pods deben enviar o recibir cierta cantidad de tráfico de red durante el periodo definido.

Tras considerar detenidamente el abandono de uno o más pods, puede ahorrar costos reduciendo el número de réplicas, eliminando la implementación, redimensionándola para que consuma menos recursos o notificando al propietario de la aplicación que cree que la implementación está abandonada.

### Toma de medidas basadas en las recomendaciones
<a name="kubecost-overview-rec-act-rec"></a>

En la sección sobre el **Dimensionamiento correcto de los nodos del clúster**, Kubecost analiza el uso de los nodos de trabajo del clúster y hace recomendaciones sobre el tamaño correcto de los nodos para reducir los costos. Hay dos tipos de grupos de nodos que se pueden usar con Amazon EKS: [autoadministrados](https://docs.aws.amazon.com/eks/latest/userguide/worker.html) y [administrados](https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html).

### Actualización de los nodos autoadministrados
<a name="kubecost-overview-rec-selfmanaged-nodes"></a>

Para obtener información sobre la actualización de los nodos autoadministrados, consulte [Actualización de los nodos autoadministrados para un clúster](https://docs.aws.amazon.com/eks/latest/userguide/update-workers.html) en la documentación de Amazon EKS. Indica que los grupos de nodos creados con `eksctl` no se pueden actualizar y deben migrarse a un nuevo grupo de nodos con la nueva configuración.

Por ejemplo, supongamos que tiene un grupo de nodos de Windows llamado `ng-windows-m5-2xlarge`** **(que usa una instancia de EC2 m5.2xlarge) y desea migrar los pods a un [nuevo grupo de nodos](https://docs.aws.amazon.com/eks/latest/userguide/launch-windows-workers.html) llamado `ng-windows-t3-large`** **(que está respaldado por una instancia de EC2 t3.large para ahorrar costos).

Para migrar a un nuevo grupo de nodos cuando utilice grupos de nodos implementados por `eksctl`, haga lo siguiente:

1. Para buscar el nodo en el que se encuentra actualmente el pod, use el comando `kubectl describe pod <pod_name> -n <namespace>`.

1. Ejecute el comando `kubectl describe node <node_name>`. El resultado muestra que el nodo está en marcha en una instancia m5.2xlarge. También coincide con el nombre del grupo de nodos (`ng-windows-m5-2xlarge`).

1. Para cambiar la implementación para usar el grupo de nodos `ng-windows-t3-large`, elimine el grupo de nodos `ng-windows-m5-2xlarge` y ponga en marcha `kubectl describe svc,deploy,pod -n windows`. La implementación comienza a reimplementarse inmediatamente cuando se elimina su grupo de nodos. 
**nota**  
El servicio se interrumpirá cuando elimine el grupo de nodos.

1. Use el comando `kubectl describe svc,deploy,pod -n windows` nuevamente al cabo de unos minutos. El resultado muestra que todos los pods vuelven a tener el estado **En ejecución**.

1. Para mostrar que los pods están en marcha ahora en el grupo de nodos `ng-windows-t3-large`, vuelva a usar los comandos `kubectl describe pod <pod_name> -n <namespace>` y `kubectl describe node <node_name>`.

### Métodos de redimensionamiento alternativos
<a name="kubecost-overview-rec-alternative-resizing"></a>

Este método se aplica a cualquier combinación de grupos de nodos autoadministrados o administrados. La publicación del blog [Seamlessly migrate workloads from EKS self-managed node group to EKS-managed node groups](https://aws.amazon.com/blogs/containers/seamlessly-migrate-workloads-from-eks-self-managed-node-group-to-eks-managed-node-groups/) proporciona orientación sobre cómo migrar las cargas de trabajo de un grupo de nodos con un tipo de instancia sobredimensionado a un grupo de nodos con el tamaño adecuado sin ningún tiempo de inactividad.

## Siguientes pasos
<a name="kubecost-next-steps"></a>

Kubecost facilita la visualización del costo de sus entornos de Amazon EKS. La profunda integración de Kubecost con Kubernetes AWS APIs puede ayudarte a encontrar posibles ahorros de costes. Puedes ver esta información como recomendaciones en el panel **Ahorro** de Kubecost. Kubecost también puede implementar algunas de estas recomendaciones a con su [característica de controlador de clústeres](https://github.com/kubecost/cluster-turndown).

Le recomendamos que revise la step-by-step implementación en la entrada del blog Containers [AWS y Kubecost colabore para ofrecer un seguimiento de los costes a los clientes de EKS](https://aws.amazon.com/blogs/containers/aws-and-kubecost-collaborate-to-deliver-cost-monitoring-for-eks-customers/). AWS 

## Recursos adicionales
<a name="kubecost-additional-resources"></a>
+ [Amazon EKS Workshop](https://www.eksworkshop.com/) (Amazon EKS Workshop)
+ [AWS y Kubecost colaboran para ofrecer un seguimiento de los costes a los clientes de EKS](https://aws.amazon.com/blogs/containers/aws-and-kubecost-collaborate-to-deliver-cost-monitoring-for-eks-customers/) (blog)AWS 
+ Taller [Amazon EKS Finhack (AWS Workshop](https://catalog.us-east-1.prod.workshops.aws/workshops/c4ab40ed-0299-4a4e-8987-35d90ba5085e/en-US) Studio)
+ [Contenedores de Windows activados AWS](https://catalog.us-east-1.prod.workshops.aws/workshops/1de8014a-d598-4cb5-a119-801576492564/en-US) (AWS Workshop Studio)