Comparația costurilor pentru Kubernetes Gestionat (2020)

Nota traducătorului.: Inginerul DevOps american Sid Palas, folosind anunțul recent al Google Cloud ca motiv de analiză, a realizat o comparație a costurilor serviciului Managed Kubernetes (în diferite configurații) de la cei mai importanți furnizori de cloud din lume. Un alt avantaj al muncii sale a fost publicarea unui Jupyter Notebook corespunzător, care permite (în prezența unor cunoștințe minime de Python) ajustarea calculilor pentru nevoile personale.

TL;DR: Azure și Digital Ocean nu percep taxe pentru resursele de calcul utilizate pentru stratul de control (control plane), ceea ce le face o alegere potrivită pentru implementarea multor clustere mici. Pentru a lansa un număr mic de clustere mari, GKE este cea mai bună alegere. În plus, costurile pot fi reduse semnificativ prin utilizarea nodurilor de tip spot/preemptible/low-priority sau „abonându-te” pentru utilizarea pe termen lung a unor noduri identice (acest lucru se aplică tuturor platformelor).

Comparația costurilor pentru Kubernetes Gestionat (2020)
Dimensiunea clusterului (numărul de workeri)

Informații generale

Anunțul recent al Google Cloud privind începerea perceperii a 10 cenți pe oră pentru fiecare cluster în GKE m-a determinat să analizez prețurile ofertelor principale în domeniul Kubernetes gestionat (managed).

Comparația costurilor pentru Kubernetes Gestionat (2020)
Această anunț a supărat foarte multă lume...

Personajele principale ale articolului sunt:

Descompunerea costurilor

Costurile totale de utilizare a Kubernetes pe fiecare dintre aceste platforme sunt compuse din următoarele componente:

  • Taxa de gestionare a clusterului;
  • Sistemul de echilibrare a încărcării (pentru Ingress);
  • Resursele de calcul (vCPU și memorie) ale workerilor;
  • Traficul de egress;
  • Stocarea permanentă;
  • Procesarea datelor de către echilibratorul de sarcina.

În plus, furnizorii de cloud oferă reduceri semnificative dacă clientul dorește/poate utiliza noduri preemptibile, spot sau noduri low-priority OR se angajează să folosească aceleași noduri timp de 1-3 ani.

Merită subliniat că, deși costul este o bună bază de comparație și evaluare a furnizorilor de servicii, trebuie să se ia în considerare și alți factori:

  • Uptime (Acordul de Nivel de Serviciu);
  • Ecosistemul cloud înconjurător;
  • Versiunile disponibile de K8s;
  • Calitatea documentației/unelilor.

Cu toate acestea, acești factori depășesc cadrul acestui articol/temă de cercetare. În nota de blog din februarie a StackRox sunt discutate în detaliu factorii non-preț pentru EKS, AKS și GKE.

Notepad Jupyter

Pentru a simplifica căutarea celei mai avantajoase soluții, am dezvoltat notepad Jupyter, utilizând plotly + ipywidgets. Acesta permite compararea ofertelor furnizorilor pentru diferite dimensiuni de clustere și seturi de servicii.

Puteți exersa cu versiunea live a notepadului în Binder:

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

Anunțați-mă dacă calculele sau prețurile inițiale sunt incorecte (acest lucru se poate face printr-o problemă sau o solicitare de preluare pe GitHub — iată repository-ul).

Conclusions

Din păcate, sunt prea multe detalii pentru a oferi recomandări mai precise decât cele incluse în paragraful TL;DR de la început. Totuși, unele concluzii pot fi trase:

  • Spre deosebire de GKE și EKS, AKS și Digital Ocean nu percep taxe pentru resursele stratului de gestionare. AKS și DO sunt mai avantajoase dacă arhitectura include multe clustere mici (de exemplu, câte un cluster pentru fiecare dezvoltator sau fiecare client).
  • Resursele de calcul GKE, ușor mai ieftine, îl fac mai avantajos pe măsură ce dimensiunea clusterelor crește*.
  • Utilizarea nodurilor preemptive sau angajarea pe termen lung a nodurilor poate reduce cheltuielile cu mai mult de 50%. Notă: Digital Ocean nu oferă astfel de reduceri.
  • Taxa pentru traficul de ieșire în Google este mai mare, însă factorul decisiv în calcul este costul resurselor de calcul (cu condiția ca clusterul dvs. să nu fie o sursă de un volum semnificativ de date ieșite).
  • Alegerea tipurilor de mașini în funcție de necesitățile sarcinilor de lucru în CPU și memorie va ajuta la evitarea costurilor suplimentare pentru resursele nevizibile.
  • Digital Ocean cere mai puțin pentru vCPU și mai mult pentru memorie în comparație cu alte platforme — acest lucru poate deveni un factor decisiv pentru unele tipuri de sarcini de lucru de calcul.

* Notă: în analiză sunt utilizate date pentru nodurile de calcul generale (general-purpose). Acestea sunt instanțele n1 GCP Compute Engine, m5 AWS ec2, mașinile virtuale D2v3 Azure și droplet-urile DO cu CPU dedicate. Totodată, se pot efectua și studii asupra altor tipuri de mașini virtuale (burstable, entry-level). La prima vedere, costul mașinilor virtuale depinde liniar de numărul de vCPU și de volumul de memorie, însă nu sunt sigur că această presupunere va rămâne validă pentru raporturile foarte neconvenționale între memorie / CPU.

În articol Ghidul Complet al Costurilor Kubernetes: AWS vs GCP vs Azure vs Digital Ocean, publicat în 2018, a fost utilizat un cluster de referință cu 100 de nuclee vCPU și 400 GB de memorie. Spre comparație, conform calculelor mele, un cluster similar pe fiecare dintre aceste platforme (pentru instanțe on-demand) va costa următoarea sumă:

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

Sper că articolul, împreună cu notițele, vă vor ajuta să evaluați principalele oferte de Kubernetes gestionat și/sau să economisiți la infrastructura cloud, beneficiind de reduceri și alte oportunități.

P.S. de la traducător

Citiți și în blogul nostru:

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster