Note de traduction.: L'ingénieur DevOps américain Sid Palas, utilisant comme point de départ, a comparé le coût du service Kubernetes géré (en différentes configurations) des principaux fournisseurs de cloud au monde. Un atout supplémentaire de son travail fut la publication d'un Jupyter Notebook, permettant (avec des connaissances minimales en Python) d'ajuster les calculs à ses besoins.
TL;DR: Azure et Digital Ocean ne facturent pas les ressources de calcul utilisées pour la couche de contrôle (control plane), ce qui les rend adaptés au déploiement de nombreux petits clusters. Pour le lancement d'un petit nombre de grands clusters, GKE est le meilleur choix. De plus, il est possible de réduire considérablement les coûts en utilisant des nœuds préemptibles / spot / à faible priorité ou en « s'abonnant » à l'utilisation prolongée des mêmes nœuds (cette option s'applique à toutes les plateformes).

Taille du cluster (nombre de travailleurs)
Informations générales
concernant l'introduction d'une facturation de 10 cents par heure pour chaque cluster en GKE m'a incité à analyser les prix des principales offres dans le domaine de Kubernetes géré.

Cette annonce a beaucoup déçu certains…
Les protagonistes de l'article sont :
- Google Kubernetes Engine (GCP) – ;
- Elastic Kubernetes Service (AWS) – ;
- Azure Kubernetes Service (Azure) – ;
- Kubernetes sur Digital Ocean – .
Répartition des coûts
Les coûts totaux d'utilisation de Kubernetes sur chacune de ces plateformes sont composés des éléments suivants :
- Frais pour la gestion du cluster ;
- Équilibrage de charge (pour Ingress) ;
- Ressources de calcul (vCPU et mémoire) des travailleurs ;
- Trafic Egress ;
- Stockage persistant ;
- Traitement des données par l'équilibreur de charge.
De plus, les fournisseurs de cloud offrent des réductions significatives si le client souhaite / peut utiliser des nœuds préemptibles, ou à faible priorité OU s'engage à utiliser les mêmes nœuds pendant 1 à 3 ans.
Il convient de souligner que, bien que le prix soit une bonne base pour comparer et évaluer les fournisseurs de services, d'autres facteurs doivent également être pris en compte :
- Temps de fonctionnement (Service Level Agreement) ;
- L'écosystème de cloud environnant ;
- Versions K8s disponibles ;
- Qualité de la documentation / des outils.
Cependant, ces facteurs dépassent le cadre de cet article / étude. Dans les facteurs non tarifaires pour EKS, AKS et GKE sont examinés en détail.
Bloc-notes Jupyter
Pour faciliter la recherche de la solution la plus avantageuse, j'ai développé , en utilisant plotly + ipywidgets. Il permet de comparer les offres des fournisseurs pour différentes tailles de clusters et gammes de services.
Vous pouvez vous entraîner avec la version en direct du bloc-notes sur Binder :
Faites-moi savoir si les calculs ou les tarifs de base sont incorrects (vous pouvez le faire par un problème ou une demande de tirage sur GitHub — ).
Conclusions
Malheureusement, il y a trop de nuances pour donner des recommandations plus concrètes que celles incluses dans le paragraphe TL;DR au début. Cependant, certaines conclusions peuvent tout de même être tirées :
- Contrairement à GKE et EKS, AKS et Digital Ocean ne facturent pas les ressources de la couche de gestion. AKS et DO sont plus avantageux si l'architecture comprend de nombreux petits clusters (par exemple, un cluster par développeur ou client).
- Des ressources informatiques légèrement moins chères de GKE le rendent plus avantageux à mesure que la taille des clusters augmente*.
- L'utilisation de nœuds remplaçables ou l'attachement à long terme aux nœuds permet de réduire les coûts de plus de 50%. Remarque : Digital Ocean n'a pas de telles réductions.
- Les frais pour le trafic sortant chez Google sont plus élevés, mais le facteur déterminant pour le calcul est le coût des ressources de calcul (sauf si votre cluster est une source de volumes importants de données sortantes).
- Le choix des types de machines en fonction des besoins des charges de travail en CPU et mémoire permettra d'éviter des frais inutiles pour des ressources non utilisées.
- Digital Ocean facture moins pour le vCPU et plus pour la mémoire par rapport aux autres plateformes — cela peut être un facteur décisif pour certains types de charges de travail.
* Remarque : l'analyse utilise des données pour des nœuds de calcul à usage général (general-purpose). Ce sont des instances n1 GCP Compute Engine, m5 AWS ec2, machines virtuelles D2v3 Azure et droplet DO avec CPU dédiés. D'autre part, des recherches peuvent également être menées parmi d'autres types de machines virtuelles (burstable, entry-level). À première vue, le coût des machines virtuelles dépend de manière linéaire du nombre de vCPU et de la quantité de mémoire, mais je ne suis pas sûr que cette hypothèse reste valide pour des rapports mémoire/CPU fortement non standards.
Dans l'article , publiée en 2018, un cluster de référence avec 100 cœurs vCPU et 400 Go de mémoire a été utilisé. Pour comparaison, selon mes calculs, un tel cluster sur chacune de ces plateformes (pour les instances à la demande) coûterait la somme suivante :
- AKS : 51465 USD/an
- EKS : 43138 USD/an
- GKE : 30870 USD/an
- DO : 36131 USD/an
J'espère que cet article ainsi que le carnet de notes vous aideront à évaluer les principales offres de Kubernetes gérées et/ou à économiser sur l'infrastructure cloud en profitant des réductions et d'autres opportunités.
P.S. de l'auteur
Lisez aussi dans notre blog :
- «»;
- «»;
- «»;
- «».
Source : habr.com
