Comparația costurilor pe Kubernetes gestionat (2020)

Notă. transl.: inginerul american DevOps Sid Palas, folosind anunțul recent al Google Cloud Ca ghid informativ, am comparat costul serviciului Managed Kubernetes (în diferite configurații) de la cei mai importanți furnizori de cloud din lume. Un avantaj suplimentar al muncii sale a fost publicarea notebook-ului Jupyter corespunzător, care permite (cu cunoștințe minime de Python) să ajusteze calculele efectuate pentru a se potrivi nevoilor dumneavoastră.

TL; DR: Azure și Digital Ocean nu taxează pentru resursele de calcul utilizate pentru planul de control, ceea ce le face o alegere bună pentru implementarea multor clustere mici. Pentru rularea unui număr mic de clustere mari, GKE este cel mai potrivit. În plus, puteți reduce semnificativ costurile utilizând noduri spot/preemptive/cu prioritate scăzută sau „abonându-vă” la utilizarea pe termen lung a acelorași noduri (acest lucru se aplică tuturor platformelor).

Comparația costurilor pe Kubernetes gestionat (2020)
Mărimea clusterului (număr de lucrători)

Prezentare generală

Anunț recent Google Cloud Anunțul GKE de a începe să taxeze 10 cenți pe oră de cluster pentru fiecare oră de cluster m-a determinat să încep să analizez prețurile ofertelor majore Kubernetes gestionate.

Comparația costurilor pe Kubernetes gestionat (2020)
Acest anunț i-a supărat foarte mult pe unii...

Personajele principale ale articolului sunt:

Defalcare a costurilor

Costul total al utilizării Kubernetes pe fiecare dintre aceste platforme constă din următoarele componente:

  • Taxa de gestionare a clusterului;
  • Echilibrarea sarcinii (pentru Ingress);
  • Resurse de calcul (vCPU și memorie) ale lucrătorilor;
  • Trafic de ieșire;
  • Depozitare permanentă;
  • Prelucrarea datelor prin echilibrator de încărcare.

În plus, furnizorii de cloud oferă reduceri semnificative dacă clientul dorește/poate folosi preemptible loc sau noduri cu prioritate scăzută SAU se angajează să folosească aceleași noduri timp de 1-3 ani.

Merită subliniat faptul că, deși costul reprezintă o bază bună pentru compararea și evaluarea furnizorilor de servicii, ar trebui luați în considerare și alți factori:

  • Uptime (Acord privind nivelul de servicii);
  • Ecosistemul de nor din jur;
  • Versiuni disponibile de K8s;
  • Calitatea documentației/kitului de instrumente.

Cu toate acestea, acești factori depășesc domeniul de aplicare al acestui articol/studiu. ÎN Postare din februarie pe blogul StackRox Factorii non-preț pentru EKS, AKS și GKE sunt discutați în detaliu.

Caietul Jupyter

Pentru a facilita găsirea celei mai profitabile soluții, am dezvoltat Caietul Jupyter, folosind plotly + ipywidgets în el. Vă permite să comparați ofertele furnizorilor pentru diferite dimensiuni de cluster și seturi de servicii.

Puteți exersa cu o versiune live a blocnotesului în Binder:

Comparația costurilor pe Kubernetes gestionat (2020)
managed-kubernetes-price-exploration.ipynb pe mybinder.org

Anunțați-mă dacă calculele sau prețul inițial sunt incorecte (acest lucru se poate face printr-o problemă sau printr-o cerere de extragere pe GitHub - aici este depozitul).

Constatări

Din păcate, există prea multe nuanțe pentru a oferi recomandări mai specifice decât cele incluse în paragraful TL;DR de la început. Cu toate acestea, se mai pot trage câteva concluzii:

  • Spre deosebire de GKE și EKS, AKS și Digital Ocean nu taxează pentru resursele stratului de control. AKS și DO sunt mai profitabile dacă arhitectura include multe clustere mici (de exemplu, un cluster per fiecare dezvoltator sau fiecare client).
  • Resursele de calcul puțin mai puțin costisitoare ale GKE îl fac mai profitabil pe măsură ce dimensiunile clusterelor* cresc.
  • Utilizarea nodurilor preemptibile sau a afinității nodurilor pe termen lung poate reduce costurile cu mai mult de 50%. Notă: Digital Ocean nu oferă aceste reduceri.
  • Taxele de ieșire ale Google sunt mai mari, dar costul resurselor de calcul este un factor determinant în calcul (cu excepția cazului în care clusterul dvs. generează o cantitate semnificativă de date de ieșire).
  • Selectarea tipurilor de mașini în funcție de nevoile CPU și de memorie ale sarcinilor de lucru vă va ajuta să evitați să plătiți suplimentar pentru resursele neutilizate.
  • Digital Ocean încarcă mai puțin pentru vCPU și mai mult pentru memorie în comparație cu alte platforme - acesta poate fi un factor decisiv pentru anumite tipuri de sarcini de lucru de calcul.

*Notă: Analiza utilizează date pentru nodurile de calcul de uz general (scop general). Acestea sunt instanțe n1 GCP Compute Engine, instanțe m5 AWS ec2, mașini virtuale D2v3 Azure și picături DO cu procesoare dedicate. La rândul său, este posibil să se efectueze cercetări printre alte tipuri de mașini virtuale (burstable, entry-level). La prima vedere, costul mașinilor virtuale depinde liniar de numărul de vCPU și de cantitatea de memorie, dar nu sunt sigur că această ipoteză va fi valabilă pentru rapoartele memorie/CPU foarte non-standard.

Articolul Ghidul final al costurilor Kubernetes: AWS vs GCP vs Azure vs Digital Ocean, publicat în 2018, a folosit un cluster de referință cu 100 de nuclee vCPU și 400 GB de memorie. Pentru comparație, conform calculelor mele, un cluster similar pe fiecare dintre aceste platforme (pentru instanțe la cerere) va costa următoarea sumă:

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

Sper că acest articol împreună cu notebook-ul vă vor ajuta să evaluați principalele oferte Kubernetes gestionate și/sau să economisiți bani pe infrastructura cloud profitând de reduceri și alte oportunități.

PS de la traducator

Citește și pe blogul nostru:

Sursa: www.habr.com

Adauga un comentariu