Hoppa till innehåll
DevOps & PlattformGitOpsKubernetesDevOps13 min läsning

GitOps med ArgoCD vs Flux: Vilket passar er K8s-stack?

När git blir den enda sanningen om vad som körs förändras hur du deployar och felsöker. Här jämför jag ArgoCD och Flux ärligt, sida vid sida.

00
GitOps med ArgoCD vs Flux: Vilket passar er K8s-stack?
Med GitOps är git inte bara historik, det är beskrivningen av vad som faktiskt körs just nu.Photo: Unsplash

Välj rätt GitOps-verktyg för din K8s-stack.

Den vanligaste deploy-modellen jag möter är att en pipeline har credentials rakt in i klustret och pushar förändringar dit. Det fungerar, men det har ett par tysta svagheter: pipelinen har mäktiga nycklar, och det är inte helt enkelt att svara på frågan vad som faktiskt körs just nu jämfört med vad som borde köras. GitOps vänder på modellen. I stället för att pipelinen pushar till klustret, drar en kontroller inne i klustret från git och håller verkligheten i linje med det som står där. Frågan blir då vilket verktyg, och de två tunga alternativen är ArgoCD och Flux.

Vad GitOps faktiskt ger dig

Skiftet låter litet men förändrar mycket. Eftersom git beskriver önskat tillstånd får du en komplett historik över varje förändring: vem, när och varför, granskat i en pull request. Du får en naturlig återställning, eftersom att rulla tillbaka är att backa en commit. Och du får avstämning: om någon ändrar något manuellt i klustret upptäcker kontrollern att verkligheten avviker från git och kan rätta tillbaka det.

Den sista egenskapen är underskattad. Manuella ändringar som ingen dokumenterar är en av de vanligaste källorna till mystiska incidenter. Med GitOps blir sådan drift antingen automatiskt korrigerad eller åtminstone synlig, eftersom git och verkligheten ständigt jämförs.

ArgoCD: det visuella och centraliserade

ArgoCD är det av de två som de flesta tycker är lättast att ta till sig, mycket tack vare sitt gränssnitt. Det ger dig en tydlig visuell bild av varje applikation, dess synkstatus och hälsa, och vad som skiljer mellan git och klustret. För ett team som är nytt på GitOps är den synligheten värdefull, eftersom det blir lätt att se vad som händer och varför något inte synkar.

  • Styrkor: utmärkt gränssnitt, tydlig överblick, stark hantering av flera applikationer och inbyggt stöd för åtkomststyrning.
  • Avvägning: det är en applikation du driftar, med eget gränssnitt och egen åtkomstmodell att hålla efter.

ArgoCD passar bra när du har många applikationer och team, och när den visuella överblicken är värd den extra komponenten.

Flux: det lätta och kubernetes-nära

Flux tar en mer minimalistisk väg. Det har inget eget gränssnitt på samma sätt, utan lever helt inne i Kubernetes som en uppsättning kontroller och resurser. Det gör det lättare i fotavtryck och naturligare att hantera med samma verktyg som resten av ditt kluster. För team som vill ha allt deklarativt och hanterat genom Kubernetes egna mekanismer känns Flux ofta hemtamt.

  • Styrkor: litet fotavtryck, djup integration med Kubernetes, modulär uppbyggnad där du tar bara det du behöver.
  • Avvägning: mindre visuell överblick ur lådan, vilket kan göra felsökning mindre uppenbar för den som är ny.

Flux passar bra när du föredrar att hantera allt med Kubernetes-verktyg och vill hålla antalet rörliga delar nere.

Head to head: hur jag väljer

Ärligt talat löser båda samma kärnproblem väl, och du blir sällan olycklig med någotdera. Skillnaden ligger i smak och sammanhang snarare än i förmåga.

  • Vill du ha en stark visuell överblick och hanterar många applikationer och team, lutar jag åt ArgoCD.
  • Vill du ha minsta möjliga fotavtryck och hanterar allt med Kubernetes egna verktyg, lutar jag åt Flux.
  • Är du ny på GitOps gör ArgoCD:s gränssnitt inlärningen mjukare, vilket ofta väger tungt i början.

Det viktiga är att du väljer ett och håller fast vid det. Att blanda båda i samma kluster ger sällan något annat än förvirring. Hur GitOps passar in i en samlad leveranskedja beskriver jag i min tjänst för DevOps-plattform.

Saker att tänka på oavsett verktyg

  • Repostruktur: bestäm tidigt om appkod och deploy-manifest ska ligga i samma repo eller separat. Båda fungerar, men byt inte på vägen.
  • Hemligheter: du vill inte ha klartext i git, så para GitOps med krypterade hemligheter eller en hemlighetshanterare.
  • Behörigheter: kontrollern blir mäktig, så ge den minsta möjliga rättigheter och granska vad den får göra.

Relaterat

Vill du se hur ett GitOps-flöde satts upp i ett skarpt projekt finns exempel i min casebook.

Vill du ta det vidare?

Om din pipeline i dag pushar rakt in i klustret och du vill ha git som sanningskälla hjälper jag dig att gå över till GitOps. Hör av dig via kontaktsidan.

Med GitOps blir att rulla tillbaka detsamma som att backa en commit.

- Simon Axelsson

Vanliga frågor

Är ArgoCD eller Flux bättre för ett litet team?
För ett team nytt på GitOps gör ArgoCD:s gränssnitt inlärningen lättare. Föredrar ni att hantera allt med Kubernetes egna verktyg och hålla fotavtrycket litet, är Flux ett utmärkt val. Båda fungerar väl för små team.
Behöver jag sluta använda min CI-pipeline med GitOps?
Nej. Pipelinen bygger och testar fortfarande och uppdaterar manifesten i git. Skillnaden är att den inte längre deployar rakt in i klustret, den committar önskat tillstånd och låter kontrollern göra resten.
Hur hanterar jag hemligheter i ett GitOps-flöde?
Lägg aldrig klartext i git. Använd krypterade hemligheter som bara klustret kan låsa upp, eller hämta hemligheter från en extern hanterare vid körning. GitOps och hemlighetshantering måste lösas tillsammans.
Simon Axelsson
Simon AxelssonIT-konsult & teknisk rådgivare

Simon Axelsson är senior IT-konsult och grundare av SIAX Technology AB. Han hjälper nordiska företag med molninfrastruktur, dataplattformar och AI-automation.

Fler artiklar