Comparaison des coûts sur Kubernetes géré (2020)

Noter. trad.: L'ingénieur DevOps américain Sid Palas, utilisant annonce récente de Google Cloud À titre informatif, j'ai comparé le coût du service Managed Kubernetes (dans différentes configurations) des principaux fournisseurs de cloud mondiaux. Un avantage supplémentaire de son travail a été la publication du Jupyter Notebook correspondant, qui permet (avec une connaissance minimale de Python) d'ajuster les calculs effectués en fonction de vos besoins.

TL; DR: Azure et Digital Ocean ne facturent pas les ressources de calcul utilisées pour le plan de contrôle, ce qui en fait un bon choix pour déployer de nombreux petits clusters. Pour exécuter un petit nombre de grands clusters, GKE est le mieux adapté. De plus, vous pouvez réduire considérablement les coûts en utilisant des nœuds spot/préemptifs/faible priorité ou en « vous abonnant » à une utilisation à long terme des mêmes nœuds (cela s’applique à toutes les plateformes).

Comparaison des coûts sur Kubernetes géré (2020)
Taille du cluster (nombre de travailleurs)

vue d'ensemble

Annonce récente de Google Cloud L'annonce de GKE de commencer à facturer 10 cents par heure de cluster pour chaque heure de cluster m'a incité à commencer à analyser les tarifs des principales offres Kubernetes gérées.

Comparaison des coûts sur Kubernetes géré (2020)
Cette annonce a grandement bouleversé certains...

Les personnages principaux de l'article sont :

Évaluation du coût

Le coût total de l'utilisation de Kubernetes sur chacune de ces plateformes comprend les éléments suivants :

  • Frais de gestion du cluster ;
  • Équilibrage de charge (pour Ingress) ;
  • Ressources informatiques (vCPU et mémoire) des travailleurs ;
  • Trafic de sortie ;
  • Stockage permanent;
  • Traitement des données par Load Balancer.

De plus, les fournisseurs de cloud offrent des remises importantes si le client souhaite/peut utiliser des services préemptifs. place ou des nœuds de faible priorité OU s'engage à utiliser les mêmes nœuds pendant 1 à 3 ans.

Il convient de souligner que même si le coût constitue une bonne base pour comparer et évaluer les prestataires de services, d’autres facteurs doivent être pris en compte :

  • Temps de disponibilité (accord de niveau de service) ;
  • L'écosystème cloud environnant ;
  • Versions disponibles des K8 ;
  • Qualité de la documentation/boîte à outils.

Cependant, ces facteurs dépassent le cadre de cet article/étude. DANS Article de février sur le blog StackRox Les facteurs autres que le prix pour EKS, AKS et GKE sont discutés en détail.

Carnet Jupyter

Pour faciliter la recherche de la solution la plus rentable, j'ai développé Carnet Jupyter, en utilisant plotly + ipywidgets dedans. Il vous permet de comparer les offres des fournisseurs pour différentes tailles de cluster et ensembles de services.

Vous pouvez vous entraîner avec une version live du bloc-notes dans Binder :

Comparaison des coûts sur Kubernetes géré (2020)
géré-kubernetes-price-exploration.ipynb sur mybinder.org

Faites-moi savoir si les calculs ou le prix d'origine sont incorrects (cela peut être fait via un problème ou une pull request sur GitHub - voici le dépôt).

résultats

Hélas, il y a trop de nuances pour fournir des recommandations plus spécifiques que celles incluses dans le paragraphe TL;DR au tout début. Certaines conclusions peuvent néanmoins être tirées :

  • Contrairement à GKE et EKS, AKS et Digital Ocean ne facturent pas les ressources de la couche de contrôle. AKS et DO sont plus rentables si l'architecture comprend de nombreux petits clusters (par exemple, un cluster par chaque développeur ou chaque client).
  • Les ressources de calcul légèrement moins coûteuses de GKE le rendent plus rentable à mesure que la taille des clusters augmente*.
  • L'utilisation de nœuds préemptifs ou d'une affinité de nœud à long terme peut réduire les coûts de plus de 50 %. Remarque : Digital Ocean n'offre pas ces réductions.
  • Les frais sortants de Google sont plus élevés, mais le coût des ressources informatiques est un facteur déterminant dans le calcul (sauf si votre cluster génère une quantité importante de données sortantes).
  • La sélection des types de machines en fonction des besoins en CPU et en mémoire de vos charges de travail vous aidera à éviter de payer un supplément pour les ressources inutilisées.
  • Digital Ocean facture moins pour le vCPU et plus pour la mémoire par rapport aux autres plates-formes - cela peut être un facteur décisif pour certains types de charges de travail de calcul.

*Remarque : Analyse utilise des données pour les nœuds de calcul à usage général (usage général). Il s'agit d'instances n1 GCP Compute Engine, d'instances m5 AWS ec2, de machines virtuelles D2v3 Azure et de droplets DO avec processeurs dédiés. À son tour, il est possible de mener des recherches parmi d'autres types de machines virtuelles (burstable, d'entrée de gamme). À première vue, le coût des machines virtuelles dépend linéairement du nombre de vCPU et de la quantité de mémoire, mais je ne suis pas sûr que cette hypothèse soit vraie pour des ratios mémoire/CPU très non standards.

L'article Le guide ultime des coûts Kubernetes : AWS vs GCP vs Azure vs Digital Ocean, publié en 2018, utilisait un cluster de référence avec 100 cœurs vCPU et 400 Go de mémoire. A titre de comparaison, selon mes calculs, un cluster similaire sur chacune de ces plateformes (pour les instances à la demande) coûtera le montant suivant :

  • AKS : 51465 XNUMX USD/an
  • EKS : 43138 XNUMX USD/an
  • GKE : 30870 XNUMX USD/an
  • DO : 36131 USD/an

J'espère que cet article ainsi que le cahier vous aideront à évaluer les principales offres Kubernetes gérées et/ou à économiser de l'argent sur l'infrastructure cloud en profitant de remises et d'autres opportunités.

PS du traducteur

A lire aussi sur notre blog :

Source: habr.com

Ajouter un commentaire