Una idea prometedora para utilizar una infraestructura de contenedores Kubernetes para su negocio está ganando impulso. En el caso de utilizar K8s, lo más probable es que se enfrente a la cuestión de gestionar los gastos en nubes o en una infraestructura local para evitar gasto excesivo del presupuesto pero poseen un mejor rendimiento al mismo tiempo.
Por lo tanto, existe una lista de las mejores prácticas actuales que pueden resultar útiles en Optimización de los costos de la nube de Kubernetes.
- Ajuste del tamaño de las cápsulas
- Ajuste del tamaño de nodo (o ajuste del tamaño de máquina virtual)
- Escalado automático (escalado automático de pod horizontal, escalado automático de pod vertical y escalado automático de clúster)
- Reequilibrio de nodos fragmentados
- Utilizando opciones de descuento en la nube (planes de ahorro, instancias reservadas, spot, etc.)
Vamos Examínelos todos para resaltar sus características significativas para Gestionar adecuadamente los costes de la nube en un entorno Kubernetes.
Escenarios de optimización de costos para Kubernetes
Ajuste del tamaño de las cápsulas
Cada clúster de Kubernetes se considera un conjunto de pods que incluyen contenedores. Al ser los elementos implementables más pequeños, los pods actúan como un único bloque de recursos y le permiten ejecutar las cargas de trabajo. Puede administrar los recursos de CPU y RAM asignados para un pod específico. Por lo tanto, es esencial prestar atención al tamaño y la programación adecuados de los recursos para mantener un proceso rentable y estable en el entorno de un pod. Para este propósito, al configurar cualquier clúster de Kubernetes, debe ajustar las solicitudes y los límites de recursos para encontrar una cantidad óptima de recursos de CPU y memoria de control por pod. Eso le proporcionará un rendimiento adecuado de la aplicación y ahorrará recursos de cómputo y memoria para otros pods en el mismo nodo.
De lo contrario, puede que se produzca una situación en la que se sobrecargue la CPU y la RAM, pero los recursos generales de la máquina virtual o del hardware estén subutilizados y, si recuerda, no los obtendrá de forma gratuita. Esta es una transición al segundo punto de ajuste del tamaño de los nodos.
Ajuste del tamaño de nodo (o ajuste del tamaño de máquina virtual)
Además de ajustar el tamaño de los pods en un entorno de clúster de Kubernetes, tiene sentido asegurarse de que los nodos que utiliza para ejecutar sus aplicaciones también sean del tamaño y el tipo adecuados.
En términos de rendimiento, muchas cosas dependen de una serie de factores relacionados con la cantidad de pods por nodo que se activan mientras se ejecutan las cargas de trabajo. Por lo tanto, es necesario tenerlo en cuenta porque, de forma predeterminada, incluso los propios servicios internos de Kubernetes imponen límites en la cantidad de pods por nodo si es necesario.
En la siguiente tabla puedes encontrar los límites de pod por nodo proporcionados por los principales proveedores de nube.
Hystax OptScale permite a su equipo lograr eficiencia de costos en la nube al ofrecer una variedad de características, incluidas capacidades de redimensionamientoUna amplia gama de diversos escenarios de optimización y la información en tiempo real de OptScale permiten rastrear recursos subutilizados y degradarlos antes de que provoquen un enorme exceso de presupuesto.
Escalado automático (escalado automático de pod horizontal, escalado automático de pod vertical y escalado automático de clúster)
El uso de esos dos procedimientos mencionados anteriormente en un entorno de contenedores de Kubernetes es crucial para evitar un rendimiento deficiente de las aplicaciones y gastos excesivos.
Pero también a Reducir el coste de su clúster de Kubernetes y proporcionar una rápida adopción del servicio ante cualquier cambio en el entorno, Kubernetes cuenta con herramientas de escalado automático como el escalador automático de pods horizontales (HPA), el escalador automático de pods verticales (VPA) y el escalador automático de clústeres para administrar la cantidad de pods y nodos activos. Son las más adecuadas para establecer la configuración optimizada en cuanto a costos, especialmente en casos de reacción rápida a picos de uso y para evitar la inestabilidad de la carga de trabajo. El ahorro de costos ocurre cuando las herramientas están configuradas correctamente y los nodos se apagan o se inician en el momento adecuado.
Reequilibrio de nodos fragmentados
Con el tiempo, cualquier clúster de Kubernetes activo experimenta un ciclo de implementaciones inevitables y escalamientos periódicos. Esto genera adiciones y eliminaciones repetidas de pods y nods y puede causar un rendimiento ineficiente y fragmentación de recursos en un clúster.
Además, existe algún tipo de inconsistencia en el trabajo del programador de Kubernetes: no pueden predecir completamente una cantidad futura de nodos y qué tamaños tendrán los pods. Esto significa que incluso si se programan algunos pods nuevos para el próximo proceso y todos los recursos necesarios solicitados por ellos están disponibles, los recursos en conjunto no están disponibles en ningún nodo individual, lo que hace que el pod no se pueda programar. Por lo tanto, se necesita una ampliación adicional a pesar de que el clúster como unidad completa tiene mucha más capacidad disponible. La moraleja para deshacerse de una denominada "pseudo" escasez de recursos es consolidar todos estos fragmentos de recursos disponibles juntos.
El objetivo de reequilibrar los nodos fragmentados se puede lograr identificando y migrando un conjunto definido de pods entre los nodos del clúster para combinar todos los recursos necesarios. En particular, este procedimiento de reequilibrio de clústeres de Kubernetes no optimizados debe realizarse en clústeres de gran escala para evitar el desperdicio de recursos y reducir los costos de la nube.
El reequilibrio de los nodos fragmentados es un proceso continuo y generalmente coopera con el ajuste de tamaño de los pods/nods y el escalado automático de manera integrada.
Cómo utilizar las opciones de descuentos en la nube
En el caso de una infraestructura de Kubernetes, es importante aplicar un conjunto de opciones de compra de recursos para los nodos donde se ejecuta el clúster. Los proveedores de nube pública ofrecen planes de ahorro, instancias bajo demanda, instancias reservadas e instancias puntuales. Puede encontrar más información sobre esos tipos de recursos, descuentos y consejos sobre cómo calcularlos utilizando los enlaces que se encuentran a continuación.
En general, puede ahorrar hasta 50% en costos de TI al usar esos programas, por lo que debe considerarlos como uno de los primeros pasos que no interfieren en su clúster de Kubernetes ni en la arquitectura de su aplicación.
https://aws.amazon.com/savingsplans/
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html
https://azure.microsoft.com/en-us/pricing/reserved-vm-instances/
https://hystax.com/what-are-the-main-challenges-of-cloud-financial-management-today/
https://hystax.com/cost-projection-to-reduce-cloud-costs/
https://hystax.com/spot-instances-for-ci-cd-jobs/
https://hystax.com/how-to-stop-paying-for-idle-cloud-instances-and-services/
Hystax OptScale ofrece cientos de escenarios de optimización.
Regístrate ahora para obtener las recomendaciones → https://my.optscale.com/register