Kostnadsjämförelse på Managed Kubernetes (2020)

Notera. transl.: Amerikanske DevOps-ingenjören Sid Palas, använder det senaste tillkännagivandet av Google Cloud Som en informativ guide jämförde jag kostnaden för Managed Kubernetes-tjänsten (i olika konfigurationer) från världens ledande molnleverantörer. En ytterligare fördel med hans arbete var publiceringen av motsvarande Jupyter Notebook, som gör det möjligt (med minimal kunskap om Python) att justera de utförda beräkningarna för att passa dina behov.

TL; DR: Azure och Digital Ocean tar inte betalt för beräkningsresurser som används för kontrollplanet, vilket gör dem till ett bra val för att distribuera många små kluster. För att köra ett litet antal stora kluster är GKE bäst lämpad. Dessutom kan du minska kostnaderna avsevärt genom att använda spot-/förebyggande/lågprioriterade noder eller genom att "prenumerera" på långvarig användning av samma noder (detta gäller alla plattformar).

Kostnadsjämförelse på Managed Kubernetes (2020)
Klusterstorlek (antal arbetare)

Översikt

Nyligen Google Cloud-meddelande GKE:s tillkännagivande om att börja debitera 10 cent per klustertimme för varje klustertimme fick mig att börja analysera prissättningen för större hanterade Kubernetes-erbjudanden.

Kostnadsjämförelse på Managed Kubernetes (2020)
Detta tillkännagivande har upprört en del...

Huvudpersonerna i artikeln är:

Kostnadsfördelning

Den totala kostnaden för att använda Kubernetes på var och en av dessa plattformar består av följande komponenter:

  • Klusterförvaltningsavgift;
  • Lastbalansering (för Ingress);
  • Datorresurser (vCPU och minne) för arbetare;
  • Utgående trafik;
  • Permanent förvaring;
  • Databehandling av lastbalanserare.

Dessutom erbjuder molnleverantörer avsevärda rabatter om kunden vill/kan använda preempible fläck eller lågprioriterade noder OR åtar sig att använda samma noder i 1-3 år.

Det är värt att betona att även om kostnad är en bra grund för att jämföra och utvärdera tjänsteleverantörer, bör andra faktorer beaktas:

  • Drifttid (Service Level Agreement);
  • Det omgivande molnets ekosystem;
  • Tillgängliga versioner av K8s;
  • Kvalitet på dokumentation/verktygslåda.

Dessa faktorer ligger dock utanför ramen för denna artikel/studie. I Februari-inlägg på StackRox-bloggen Icke-prisfaktorer för EKS, AKS och GKE diskuteras i detalj.

Jupyter anteckningsbok

För att göra det lättare att hitta den mest lönsamma lösningen har jag utvecklat Jupyter anteckningsbok, med hjälp av plotly + ipywidgets i den. Det låter dig jämföra leverantörserbjudanden för olika klusterstorlekar och tjänsteuppsättningar.

Du kan öva med en liveversion av anteckningsblocket i Binder:

Kostnadsjämförelse på Managed Kubernetes (2020)
managed-kubernetes-price-exploration.ipynb på mybinder.org

Låt mig veta om beräkningarna eller den ursprungliga prissättningen är felaktig (detta kan göras via ett problem eller pull-förfrågan på GitHub - här är förvaret).

Resultat

Tyvärr, det finns för många nyanser för att ge mer specifika rekommendationer än de som ingår i TL;DR-stycket i början. Men några slutsatser kan fortfarande dras:

  • Till skillnad från GKE och EKS tar AKS och Digital Ocean inte betalt för kontrolllagerresurser. AKS och DO är mer lönsamma om arkitekturen innehåller många små kluster (till exempel ett kluster pr. varje utvecklare eller varje kund).
  • GKE:s något billigare beräkningsresurser gör det mer lönsamt när klusterstorlekarna ökar*.
  • Användning av öppningsbara noder eller långvarig nodaffinitet kan minska kostnaderna med mer än 50 %. Obs: Digital Ocean erbjuder inte dessa rabatter.
  • Googles utgående avgifter är högre, men kostnaden för datorresurser är en avgörande faktor i beräkningen (om inte ditt kluster genererar en betydande mängd utgående data).
  • Att välja maskintyper baserat på CPU och minnesbehov för dina arbetsbelastningar hjälper dig att undvika att betala extra för oanvända resurser.
  • Digital Ocean debiterar mindre för vCPU och mer för minne jämfört med andra plattformar - detta kan vara en avgörande faktor för vissa typer av datorarbetsbelastningar.

*Obs: Analys använder data för generella beräkningsnoder (generell mening). Dessa är n1 GCP Compute Engine-instanser, m5 AWS ec2-instanser, D2v3 Azure virtuella maskiner och DO-droppar med dedikerade processorer. I sin tur är det möjligt att bedriva forskning bland andra typer av virtuella maskiner (burstable, entry-level). Vid första anblicken beror kostnaden för virtuella maskiner linjärt på antalet vCPU:er och mängden minne, men jag är inte säker på att detta antagande kommer att gälla för mycket icke-standardiserade minne/CPU-förhållanden.

Artikeln Den ultimata Kubernetes kostnadsguide: AWS vs GCP vs Azure vs Digital Ocean, publicerad 2018, använde ett referenskluster med 100 vCPU-kärnor och 400 GB minne. Som jämförelse, enligt mina beräkningar, kommer ett liknande kluster på var och en av dessa plattformar (för on-demand-instanser) att kosta följande belopp:

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

Jag hoppas att den här artikeln tillsammans med anteckningsboken hjälper dig att utvärdera de viktigaste hanterade Kubernetes-erbjudandena och/eller spara pengar på molninfrastruktur genom att dra nytta av rabatter och andra möjligheter.

PS från översättaren

Läs även på vår blogg:

Källa: will.com

Lägg en kommentar