Nota de traducción.: El ingeniero DevOps estadounidense Sid Palas, aprovechando , realizó una comparación de los costos del servicio de Kubernetes administrado (en diferentes configuraciones) de los principales proveedores de nube del mundo. Un valor añadido de su trabajo fue la publicación de un Jupyter Notebook correspondiente, que permite (con conocimientos mínimos de Python) ajustar los cálculos realizados a sus necesidades.
TL;DR: Azure y Digital Ocean no cobran por los recursos computacionales utilizados para la capa de control (control plane), lo que los convierte en una opción adecuada para implementar múltiples clústeres pequeños. Para ejecutar un número reducido de clústeres grandes, GKE es la mejor opción. Además, se pueden reducir significativamente los costos utilizando nodos preemptibles / esporádicos / de baja prioridad o 'suscribiéndose' al uso prolongado de los mismos nodos (esto se aplica a todas las plataformas).

Tamaño del clúster (número de workers)
Información General
sobre el inicio de un cobro de 10 centavos por hora por cada clúster en GKE me llevó a analizar los precios de las principales ofertas en el campo de Kubernetes administrado.

Este anuncio desanimó a algunos...
Los protagonistas del artículo son:
- Google Kubernetes Engine (GCP) – ;
- Elastic Kubernetes Service (AWS) – ;
- Azure Kubernetes Service (Azure) – ;
- Kubernetes en Digital Ocean – .
Desglose de gastos
Los costos generales de utilizar Kubernetes en cada una de estas plataformas se componen de los siguientes elementos:
- Cargo por gestión del clúster;
- Balanceo de carga (para Ingress);
- Recursos de computación (vCPU y memoria) de los workers;
- Tráfico de salida;
- Almacenamiento persistente;
- Procesamiento de datos por el balanceador de carga.
Además, los proveedores en la nube ofrecen descuentos significativos si el cliente desea / puede utilizar nodos preemptibles, o nodos de baja prioridad (low-priority) O se compromete a utilizar los mismos nodos durante 1-3 años.
Es importante destacar que, aunque el costo es una buena base para comparar y evaluar a los proveedores de servicios, también se deben considerar otros factores:
- Tiempo de actividad (Acuerdo de Nivel de Servicio);
- El ecosistema de nube circundante;
- Versiones disponibles de K8s;
- Calidad de la documentación / herramientas.
Sin embargo, estos factores están más allá del alcance de este artículo / estudio. En se examinan factores no económicos para EKS, AKS y GKE.
Bloc de notas Jupyter
Para facilitar la búsqueda de la solución más rentable, desarrollé , utilizando plotly + ipywidgets. Permite comparar las ofertas de los proveedores para diferentes tamaños de clúster y conjuntos de servicios.
Puedes practicar con la versión en vivo del bloc de notas en Binder:
Háganme saber si los cálculos o tarifas originales son incorrectos (esto se puede hacer mediante un issue o pull request en GitHub — ).
Conclusiones
Lamentablemente, hay demasiados matices para proporcionar recomendaciones más concretas que las incluidas en el párrafo TL;DR al principio. Sin embargo, se pueden hacer algunas conclusiones:
- A diferencia de GKE y EKS, AKS y Digital Ocean no cobran por los recursos de la capa de administración. AKS y DO son más rentables si la arquitectura incluye muchos clústeres pequeños (por ejemplo, uno por cada desarrollador o cada cliente).
- Los recursos computacionales de GKE, que son un poco menos costosos, lo hacen más rentable a medida que aumenta el tamaño de los clústeres*.
- Usar nodos desechables o vinculación a largo plazo con nodos puede reducir los costos en más del 50%. Nota: Digital Ocean no ofrece esos descuentos.
- El costo del tráfico saliente en Google es más alto, sin embargo, el factor determinante en el cálculo es el costo de los recursos computacionales (a menos que tu clúster no genere un volumen significativo de datos salientes).
- Elegir tipos de máquinas según las necesidades de las cargas de trabajo en CPU y memoria permitirá evitar pagos innecesarios por recursos no utilizados.
- Digital Ocean cobra menos por vCPU y más por memoria en comparación con otras plataformas; esto puede ser un factor decisivo para ciertos tipos de cargas de trabajo computacionales.
* Nota: en el análisis se utilizan datos para nodos de computación de propósito general (general-purpose). Son las instancias n1 GCP Compute Engine, m5 AWS ec2, máquinas virtuales D2v3 de Azure y droplets de DO con CPU dedicados. A su vez, se pueden realizar investigaciones entre otros tipos de máquinas virtuales (burstable, entry-level). A primera vista, el costo de las máquinas virtuales depende linealmente del número de vCPU y la cantidad de memoria, aunque no estoy seguro de que esta suposición se mantenga válida para proporciones muy no estándar de memoria/CPU.
En el artículo , publicada en 2018, se utilizó un clúster de referencia con 100 núcleos de vCPU y 400 GB de memoria. Para comparar, según mis cálculos, un clúster similar en cada una de estas plataformas (para instancias bajo demanda) costaría lo siguiente:
- AKS: 51465 USD/año
- EKS: 43138 USD/año
- GKE: 30870 USD/año
- DO: 36131 USD/año
Espero que el artículo junto con el cuaderno te ayuden a evaluar las principales ofertas de Kubernetes gestionado y/o ahorrar en infraestructura en la nube aprovechando descuentos y otras oportunidades.
P.D. del traductor
También puedes leer en nuestro blog:
- «»;
- «»;
- «»;
- «».
Fuente: habr.com
