Kubernetes es el software de orquestación de contenedores de código abierto que literalmente arrasó en el mundo de las aplicaciones en contenedores en los últimos años. Al mantener una participación abrumadora en su mercado, Kubernetes se ha establecido de facto como un estándar de la industria para la orquestación de contenedores.
Kubernetes y otras arquitecturas de servicios basadas en contenedores similares han afectado fundamentalmente el flujo de trabajo de los equipos de TI que trabajan con pruebas e implementación de software debido a un enfoque diferente de estos procesos: ahora las empresas, independientemente de su tamaño y número de ingenieros, tienen la capacidad de implementar numerosas instancias de contenedores por día casi sin esfuerzo.
Sin embargo, también existe una otra cara de la moneda: los nuevos desafíos y problemas que conlleva la necesidad de implementar y mantener un ecosistema de infraestructura fundamentalmente diferente. En particular, algunos de los problemas más delicados son los relacionados con el rendimiento; ya hablamos de ellos en uno de nuestros artículos anteriores.
Pero la popularidad de Kubernetes radica, en primer lugar, en el hecho de que sus numerosas ventajas superan con creces todas las dificultades y desventajasUna de las ventajas indudables del software es que es independiente de la nube, lo que significa que se adapta a la gran mayoría de las empresas, independientemente de la nube que ya utilicen. En este artículo, lo guiaremos a través de Cómo optimizar el costo de Kubernetes en AWS, una de las plataformas en la nube más populares, y compartiremos algunas de las mejores prácticas con usted.
Kubernetes en AWS
Como todos sabemos, Amazon Web Services cuenta con numerosas soluciones para distintos casos de uso, y EKS, acrónimo de Elastic Kubernetes Service, es una de ellas. Amazon EKS es un servicio contenedorizado administrado para ejecutar y escalar aplicaciones Kubernetes tanto en la nube como en las instalaciones. Fue diseñado y certificado como una solución totalmente compatible con Kubernetes.
Dicho esto, con EKS, AWS puede administrar los nodos maestros por usted: desde la creación de los nodos maestros hasta la instalación de todas las aplicaciones necesarias (incluido el entorno de ejecución de contenedores, los procesos maestros de Kubernetes, etc.) y el escalado automático y la realización de copias de seguridad cuando sea necesario. Todo esto hace que Kubernetes y AWS sean una gran solución para muchos equipos de TI, especialmente los más pequeños, que se centran en implementar sus aplicaciones en lugar de preocuparse por tareas de mantenimiento innecesarias y mundanas.
Además, Amazon Web Services garantiza una alta disponibilidad en múltiples zonas de disponibilidad, lo que significa que los clústeres de Kubernetes pueden beneficiarse de latencias bajas. Asimismo, AWS comprende una variedad de servicios, incluidos Simple Cloud Storage (S3) y Relational Databases (RDS), que permiten usar Kubernetes tanto para cargas de trabajo con estado como sin estado. Por lo tanto, no es sorprendente que AWS represente la mayor parte de todas las cargas de trabajo de Kubernetes como resultado.
Optimización gratuita de los costos de la nube. De por vida
Cómo ahorrar en costes de nube de Kubernetes en AWS
La flexibilidad y facilidad de ampliación Servicios en la nube de AWS, junto con el poder de Kubernetes, hacen que sea tentador gastar de más, por lo que no llegará lejos sin una gestión adecuada de los costos de la nube. Con eso en mente, analicemos qué se puede hacer para mantener bajo control el gasto en Kubernetes y AWS.
1. Terminar los pods que no se necesitan en momentos específicos o que ya no se necesitan en absoluto
Algunas de sus instancias, como las de desarrollo, prueba y ensayo, junto con determinadas herramientas que utilizan sus desarrolladores, solo se necesitan durante el horario comercial. En ese caso, tiene mucho sentido reducir temporalmente la cantidad de pods que utilizan esas instancias y aplicaciones. En la mayoría de los casos, se utiliza Kubernetes Downscaler para ese fin. Tiene diferentes configuraciones que permiten programar sistemas para que escalen hacia adentro o hacia afuera en horarios definidos. Algunas otras opciones, como la reducción de escala los fines de semana o el tiempo de actividad extraordinario forzado, brindan flexibilidad adicional.
Como ya hemos dicho, Kubernetes y los servicios en la nube fomentan la agilidad y la alta velocidad de implementación. Pero trabajar en condiciones que cambian rápidamente significa que los entornos implementados previamente para pruebas, vistas previas, etc., a menudo permanecen sin reclamar, y nadie controla su presencia ni los cierra. Para limpiar los clústeres automáticamente, a menudo se utiliza Kubernetes Janitor. Con él, puede establecer un tiempo de vida tanto para todas las implementaciones temporales como para recursos separados: después de un período específico, se eliminarán automáticamente. Además, Kubernetes Janitor le permite eliminar volúmenes de Amazon EBS (Elastic Block Store) no utilizados que son fáciles de pasar por alto y, por lo tanto, aumentan la productividad. Costos de Kubernetes por cientos de dólares por mes.
2. Utilice el escalado automático
Amazon define la función de escalado automático como el pilar de optimización de costos y, para usarla, es necesario ejecutar la herramienta Cluster Autoscaling. Esta herramienta realiza dos funciones principales: en primer lugar, busca en el clúster pods que no tengan suficientes recursos y, una vez que los encuentra, proporciona nodos adicionales; y, en segundo lugar, detecta los nodos que se han subutilizado y reprograma los pods en otros nodos.
3. Controlar las solicitudes de recursos
Kubernetes establece la carga de la CPU y la memoria a través de las llamadas solicitudes de recursos. Estas solicitudes reservan recursos en los nodos en funcionamiento, pero a menudo existe una diferencia entre los recursos solicitados y los realmente utilizados: un exceso de reserva, que también se denomina holgura. Cuanto mayor sea la holgura, más recursos y, en consecuencia, más dinero se desperdicia. La herramienta Informe de recursos de Kubernetes permite ver los recursos excedentes, así como encontrar lugares específicos donde se pueden reducir las solicitudes de recursos.
4. Utilice instancias puntuales para cargas de trabajo de Kubernetes
Muchos coinciden en que las instancias spot son la mejor solución para los nodos de producción de Kubernetes. Las instancias spot son mucho más económicas que las instancias reservadas y bajo demanda; también puedes reservar dichas instancias por un período de tiempo fijo. Como resultado, puedes obtener un nodo más grande por menos. Además, si utilizas las herramientas de gestión de carga de trabajo adecuadas, incluso puedes utilizar instancias spot para aplicaciones de misión crítica, algo que no se recomienda en otras circunstancias.
5. Utilice las etiquetas de asignación de costos de AWS
Las etiquetas de asignación de costos de AWS son metadatos que se pueden asignar a cada uno de sus recursos de AWS para que pueda realizar un seguimiento detallado de sus costos de AWS. Por lo tanto, las etiquetas pueden ayudarlo a administrar, identificar, organizar, buscar y filtrar los recursos que está utilizando de una manera personalizada: puede crear etiquetas para categorizar los recursos por propósito, propietario, entorno u otros criterios. estrategia de etiquetado de sonido, puede averiguar las principales fuentes de gasto y si alguna de ellas se puede eliminar sin problemas. En uno de nuestros artículos anteriores, hablamos sobre qué etiquetas de asignación de costos de AWS existen y cómo usarlas correctamente.
Conclusión
Para aprovechar al máximo la combinación de Kubernetes y Amazon Web Services aprovechando al máximo su flexibilidad y escalabilidad, es necesario controlar y minimizar los costes por todos los medios. En este artículo, hemos dado las principales formas de reducir el cheque y hemos hablado de las herramientas nativas que te permiten hacerlo. Sin embargo, si tienes cada dólar en la cuenta y quieres ahorrar el máximo, estos medios semiautomáticos no serán suficientes. Aquí es donde Escala óptica Hystax lo tiene cubierto. Nuestra suite ofrece un enfoque completamente diferente a Gestión y optimización de costes de Kubernetes, lo que puede resultar en una reducción drástica de su factura manteniendo el mismo nivel de rendimiento.
Encuentre consejos útiles sobre Cómo optimizar los costos de TI en una infraestructura de Kubernetes o Regístrese en OptScale y obtenga docenas de recomendaciones de optimización.