Blog

Vilken Managed Kubernetes Service passar dig bäst: EKS, GKE eller AKS?

AUG 28, 2020

Att komma igång med Kubernetes kan vara en utmaning, och då har vi inte ens börjat prata om säkerhet. Därför väljer de flesta förvaltade Kubernetes-tjänster i molnet. I den här artikeln jämför vi de tre största förvaltade Kubernetes-lösningarna: EKS, GKE och AKS.

Christoph Ebeling

Christoph has been working as a Software Engineer, DevOps Consultant, and IT Manager for over 10 years. More recently he has been focusing a lot on cloud native microservice architectures using Kubernetes and serverless computing.

Vad kan du förvänta dig av managed Kubernetes?

Stabilitet, motståndskraft och säkerhet är ganska svårt att uppnå i ett Kubernetes-kluster. Det är visserligen helt okej om en worker node fallerar, eftersom större delen av dess arbetslast är redundant, men Kubernetes master måste vara bergfast. Om den fallerar ligger hela klustret nere.

Här kommer managed Kubernetes-tjänster in i bilden. Beroende på molnleverantör kan du få en mer eller mindre hög tillgänglig Kubernetes-master med ett SLA.

En annan utmaning med Kubernetes är att det inte ingår någon användardatabas. Molnleverantören löser vanligtvis även detta problem genom att integrera Kubernetes Auth & RBAC med sin IAM.

Löser managed Kubernetes alla mina problem?

Trots alla fördelar med managed Kubernetes slipper användarna inte allt ansvar. Om du inte kör Kubernetes serverless (utan worker nodes, till förmån för Fargate / CloudRun) behöver du fortfarande skala, övervaka och underhålla dina worker nodes. Du behöver också hantera säkerheten. Men låt oss titta närmare på EKS, GKE och AKS och se hur de står sig i jämförelse.

Jämförelse av managed Kubernetes

Kubernetes-master

Som tidigare nämnts är en bergsäker master avgörande för ett motståndskraftigt Kubernetes-kluster. Amazons EKS är högtilgängligt som standard, medan GCP låter dig välja om du vill distribuera Kubernetes-mastern över olika AZ:er. AKS erbjöd inte multi-AZ-masters förrän ganska nyligen. Alla tre leverantörer har SLA:er för masterns tillgänglighet.

Worker groups

AWS och Azure introducerade managed worker groups för inte så länge sedan, medan GCP har haft funktionen sedan starten. När AKS lanserade managed worker groups förra året stötte våra team på en hel del problem. Till exempel gick det inte att använda AKS för att kombinera olika node pools med olika instansstorlekar, och worker nodes startade inte om efter uppdateringar. EKS, och särskilt GKE, hanterar dessa funktioner betydligt smidigare.

IAM-integrering för workers

För att kunna använda ett Kubernetes-kluster med andra resurser i molnet måste du kunna tilldela behörigheter till klustrets resurser. GCP har en ganska bra IAM-integrering med GKE, medan EKS länge har haft problem med detta. Community-projekt som kube2iam har uppstått för att täppa till luckorna. Som tur är löste Amazon problemet förra hösten och introducerade detaljerade IAM-roller för service accounts. AKS har över huvud taget ingen detaljerad behörighetstilldelning och tillåter bara tilldelning av service principals på klusternivå.

Ingress

GKE leder inom integrering av ingress. Både AWS och GCP erbjuder integrering av lager 7-lastbalanseraren med Kubernetes ingress, men konfigurationen i GCP är betydligt smidigare. AKS har däremot ingen sådan funktion alls.

Prissättning

Om du vill ha en kostnadsfri Kubernetes-master är GKE eller AKS i en zon rätt val. Om du vill ha ett HA-kluster på GCP eller AWS behöver du betala 0,10 € (GCP) respektive 0,20 € (AWS) per drifttimme. För worker nodes debiterar alla molnleverantörer den vanliga kostnaden för virtuella maskiner.

Användarvänlighet

Vid en bedömning av den allmänna användarvänligheten är GKE återigen den tydliga vinnaren. Med färre än 100 rader Terraform-kod kan du få igång ett helt kluster, och mycket av underhållsarbetet kan automatiseras. AKS är ganska enkelt att konfigurera efter introduktionen av managed worker nodes. Det är dock fortfarande svårt att drifta och underhålla (worker nodes behöver startas om manuellt efter uppdateringar, blandade worker groups orsakar problem och vissa användare rapporterar slumpmässiga systemkrascher). De som är vana vid AWS har förmodligen redan gissat att deras EKS-kluster kräver mycket kunskap och att den officiella dokumentationen inte alltid täcker allt på ett bra sätt.

Serverless

På senare tid har team bakom nya mjukvaruprojekt behövt välja mellan serverless och containers. Serverless har den tydliga fördelen att användarna inte behöver bekymra sig om underhåll av virtuella servrar, men tekniken har också betydande nackdelar, bland annat lägre hastighet och vendor lock-in. Det har fått många att avstå från den nya tekniken. Efter att GCP lanserade Cloud Run, en managed Knative-tjänst, i november 2019 tog AWS det ett steg längre en månad senare genom att integrera Fargate worker groups med EKS. GKE-kluster tillåter för närvarande endast att du kör Knative-tjänster serverless, medan du med Fargate på EKS kan köra valfri pod utan att behöva bekymra dig om worker nodes.

Fargate för EKS finns bara i tre regioner och är en relativt ny och ganska omogen funktion. I våra tester hade vi vissa problem med pods som inte schemalades, men vi förväntar oss att AWS löser problemen mycket snart.

Underhåll

EKS verkar vara den tydliga vinnaren när det gäller serverless Kubernetes, men GCP leder när det gäller traditionella worker nodes. Att uppdatera traditionella worker nodes kan vara svårt i både AKS och EKS, men GKE låter dig uppdatera dina worker groups automatiskt utan driftstopp.

Stabilitet

Med hänsyn till releasetiderna och våra konsulters erfarenheter erbjuder GKE inte bara flest funktioner – funktionerna har också funnits längst och ger de mest mogna lösningarna. Förra året rapporterades många problem med AKS, den minst mogna av de tre lösningarna. EKS ligger någonstans mitt emellan, men är betydligt mer stabilt än AKS.

Våra slutsatser

För mig är GKE den bästa helhetslösningen. Du kan konfigurera ett kluster i GCP-konsolen på mindre än 10 minuter (eller med cirka 100 rader Terraform-kod), det är mycket stabilt och uppdateras automatiskt. AWS kan ändå vara ett bra val för vissa användare, tack vare deras många molnfunktioner och ledande roll inom serverless. När Fargate för EKS blir mer stabilt och tillgängligt kan det ge dem en konkurrensfördel.

Google och Amazon är jämnstarka i kampen om marknadens bästa Kubernetes-lösning, och jag skulle rekommendera dem för de allra flesta användare. För företag som redan har många tjänster på Azure och behöver Kubernetes med många Windows-poddar kan AKS också vara ett rimligt val.

Leverantörerna lägger ständigt till och ändrar funktioner i sina tjänster, och den här artikeln kan bara ge en ögonblicksbild av läget i juli 2020. Vem vet var vi står om ett år.

  • Cloud

Subscribe to our newsletter