Mejora la visibilidad de sus costos en Amazon EKS. - AWS Guía prescriptiva

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.

Descripción general de

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 para analizar el costo de su infraestructura de Kubernetes, desde los espacios de nombres y los servicios hasta los 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) y las instancias del Amazon Relational Database Service (Amazon RDS). 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 con AWS Cost and Usage Report para ver los ahorros de Savings Plans para computación, Instancias reservadas y otros programas de descuentos.

Beneficios en términos de costos

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 tamaño correcto de un grupo de nodos de Amazon EKS ofrece los mismos ahorros potenciales que EC2 las instancias estándar. Si puede ajustar el tamaño correcto a sus contenedores y nodos, puede eliminar la sobrecarga de cómputo del tamaño de la instancia necesaria para ejecutar el contenedor y de la cantidad de EC2 instancias requeridas en el grupo de autoescalado.

Recomendaciones de optimización de costos

Para aprovechar Kubecost, le recomendamos que haga lo siguiente:

  1. Implementación de Kubecost en el entorno

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

  3. Dimensionamiento correcto de los nodos del clúster

  4. Dimensionamiento correcto de las solicitudes de contenedor

  5. Administración de los nodos infrautilizados

  6. Corrección de las cargas de trabajo abandonadas

  7. Toma de medidas basadas en las recomendaciones

  8. Actualización de los nodos autoadministrados

Implementación de Kubecost en el entorno

El taller Finhack de Amazon EKS 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, 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. AWS Como alternativa, puede consultar la documentación oficial de Kubecost 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 en la documentación de Kubecost.

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

Si bien puede conseguir importantes ahorros de costes mediante el uso de Amazon EC2 Spot Instances, también puede beneficiarse del hecho de que las cargas de trabajo de Windows suelen estar llenas de 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. En el panel de navegación, elija Ahorro.

Dimensionamiento correcto de los nodos del clúster

En Kubecost, 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 + 2 más 5 t3a.medium 2 c5n.large + 1 más

Como se describe en la publicación del blog de Kubecost, Find an optimal set of nodes for a Kubernetes cluster, 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.

Si utiliza nodos de Windows autoadministrados que no se crearon con eksctl, consulte Actualización de una pila de nodos de AWS CloudFormation. Estas instrucciones le muestran cómo cambiar el tipo de instancia en la plantilla de EC2 lanzamiento de Amazon utilizada por el grupo Auto Scaling.

Dimensionamiento correcto de las solicitudes de contenedor

En Kubecost, 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 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\controlador, 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.

Administración de los nodos infrautilizados

En Kubecost, 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

En Kubecost, 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

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 y administrados.

Actualización de los nodos autoadministrados

Para obtener información sobre la actualización de los nodos autoadministrados, consulte Actualización de los nodos autoadministrados para un clúster 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 EC2 instancia m5.2xlarge) y quiere migrar los pods a un nuevo grupo de nodos llamado ng-windows-t3-large (que está respaldado por una EC2 instancia t3.large para ahorrar costes).

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>.

  2. 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).

  3. 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.

  4. 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.

  5. 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

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 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

Kubecost facilita la visualización del costo de sus entornos de Amazon EKS. La profunda integración de Kubecost con Kubernetes puede ayudarte a encontrar posibles ahorros de costes. AWS APIs 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.

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. AWS

Recursos adicionales