Vilken orkestreringsplattform att välja

Nomad och Kubernetes har kommit upp som två av de mest populära orkestreringsplattformarna tillgängliga för dina dynamiska orkestreringsarbetsbelastningar.

Orkestereringsplattformar hjälper dig att automatisera konfiguration, hantering och koordinering av flera olika applikationer som du kör.

Både Nomad och Kubernetes förenkla distributionen och hanteringen av dina containeriserade applikationer. Med rätt orkestreringsplattform kan du effektivt hantera dina olika mikrotjänster och containrar – från tjänsteupptäckt och driftsättning till koordinering och skalning.

Innan vi väljer rätt plattform, låt oss lära oss mer om Nomad och Kubernetes.

Vad är Nomad?

Nomad från HashiCorp tar itu med problemet med orkestrering av arbetsbelastning. Den har flexibilitet och schemalägger och orkestrerar driftsättning och hantering av containrar. Det fungerar i både moln och på plats och stöder även icke-containeriserade arbetsbelastningar.

Med Nomad får du en enkel binär du måste köra. Till skillnad från andra lösningar har den ett mycket litet resursavtryck som inte tar upp mycket datoranvändning från dina servrar. Utöver behållare kan du köra olika arbetsbelastningar som Windows, Java, Virtual Machines och Docker.

Du kan distribuera och hantera dina företagsbehållare i produktion. Dessutom kan du även köra dina icke-containeriserade applikationer på Nomad-klustret utan att behöva behålla dem. Med Nomad kan du enkelt skala ut och få dina applikationer att köra geografiskt närmare var dina kunder bor. Du kan också effektivt köra kortlivade batch-jobb.

Nomad finns i två versioner – Community Edition och Enterprise Edition. De Community Edition är gratis och låter dig själv hantera ditt Nomad-kluster. Inom 15 minuter kan du köra det lokalt eller i din molnmiljö. Under tiden har Enterprise Edition ger support och ytterligare funktioner som samarbete, drift och styrning.

Vad är Kubernetes?

Kubernetes är en orkestreringsplattform som är utbyggbar, bärbar och mycket effektiv. Även känd som K8s, utvecklades det ursprungligen av Google. Den hanteras för närvarande av Cloud Native Computing Foundation eller CNCF, och är den mest populära orkestreringsplattformen.

Med Kubernetes kan du effektivt flytta din arbetsbörda dit det behövs – oavsett om det är lokalt, offentligt moln eller hybridläge. Det syftar till att tillhandahålla alla möjliga verktyg som du kan behöva för att lösa dina behov av orkestrering och infrastrukturhantering.

Det är den överlägset mest populära orkestreringsplattformen. Ledande leverantörer av molntjänster som Amazon Web Service och Google Cloud Platform tillhandahåller hanterade Kubernetes-tjänster – Amazon Elastic Kubernetes Service (AWS EKS) respektive Google Kubernetes Engine (GKE).

Läs också: Getting Started with Kubernetes: An Introduction for Beginners

Men vilken ska du välja för dina krav på orkestreringsplattform? Låt oss ta reda på det genom att jämföra de två.

Nomad vs. Kubernetes

#1. Installation

Eftersom det första steget för att använda de flesta mjukvaruverktyg och tekniker är installation, spelar det enkla det en viktig roll. När du väljer mellan Nomad och Kubernetes, vill du titta på hur lätt det är att börja med dem.

Nomad

För Nomad får du en förkompilerad binär eller ett paket du behöver installera. För manuell installation på din lokala dator kan du ladda ner och installera den officiella binären. Om du använder Linux kan du installera det officiella Linux-paketet. I alla fall, efter efterinstallationen, är allt du behöver göra att installera CNI (Container Network Interface) plugins direkt från din kommandorad.

Det är ännu enklare om du installerar på MacOS eller Windows med pakethanteringsverktyg som Homebrew respektive Chocolatey. Med bara ett enda kommando skulle din installation vara klar, inklusive CNI-plugins.

Kubernetes

När det kommer till Kubernetes finns det olika komponenter och klienter som du kan installera efter dina behov. Du får binärer för varje. Den har olika behållarbilder för olika körtider och systemarkitekturer.

Du kan kontrollera officiellt arkiv för den officiella binära filen som matchar din plattform, oavsett om det är Darwin, Linux eller Windows, och din systemarkitektur. När du är klar med installationen av rätt behållaravbildning behöver du kubectl – kommandoradsverktyget som låter dig interagera med behållarna.

#2. Skalbarhet

För containerarbetsbelastningar är skalbarhet en viktig faktor. Det avgör ditt systems förmåga att hantera dina växande arbetsbelastningar. Kort sagt, om du behöver mer datorkraft bör ditt orkestreringsramverk lätt kunna lägga till nya resurser.

Nomad

Nomad har visat sig köra kluster som överstiger 10 000 noder i en produktionsmiljö. 2020 genomförde Nomad ett stresstest med 2 miljoner hamnarcontainrar på 6 100 värdar. Detta sträckte sig över 10 olika AWS-regioner och pågick i 22 minuter. Detta överträffade deras tidigare framgångsrika körning 1 miljon containrar.

Du får även horisontell autoskalning med Nomad Autoscaler. Du kan köra detta som en separat process vid behov.

Kubernetes

Från och med version 1.28 kan Kubernetes låta dig skala ditt kluster till upp till 5 000 noder. Du kan köra totalt 150 000 kapslar eller totalt 300 000 behållare.

Med den ökade skalbarheten är det mer komplicerat att underhålla ett Kubernetes-kluster när du jämför det med att hantera ditt Nomad-kluster. Nomad ger dig fördelen över Kubernetes med det totala antalet noder du kan köra.

#3. Prestanda

När du väljer en orkestreringsplattform bör du sträva efter en balans mellan funktioner och prestanda. Prestandan för en orkestreringsplattform avgör också hur mycket systemresurser du kommer att använda.

Nomad

Nomad har ett litet resursavtryck på grund av dess enkelbinära tillvägagångssätt. Du slipper också installationen av separata tjänster för att få igång din orkestreringsplattform. Det slutar med att du förbrukar mindre CPU och minne på dina noder, vilket leder till lägre omkostnader och bättre prestanda.

Det är mycket anpassningsbart och kan hantera olika arbetsbelastningar, vare sig det är on-prem eller molnet. Med sin enkelhet, motståndskraft och effektivitet får du en fördel i att bibehålla prestandan när din klusterstorlek ökar.

Kubernetes

Kubernetes är mycket optimerat för containeriserade arbetsbelastningar. Om du kör en flotta av containerbaserade mikrotjänster, är Kubernetes utmärkt i att hantera dem. Med dess omfattande nätverkskapacitet och breda utbud av integrationer kan du accelerera och finjustera dina orkestreringsbehov.

På grund av dess omfattande uppsättning funktioner och konfigurationer använder Kubernetes mer av dina systemresurser. När din klusterstorlek växer kan du möta ytterligare omkostnader och komplexitet i att hantera det.

#4. Nätverk

Nätverk är en viktig aspekt när det kommer till containerorkestrering. Det avgör hur dina noder kan lokalisera och prata med varandra.

Nomad

Eftersom Nomad är starkt fokuserad på orkestrering av arbetsbelastning, rör Nomad knappt nätverk och försöker modifiera saker så lite som möjligt.

Istället för att förlita sig på infrastruktur arbetar Nomad med konfigurationer. Du får informationen du behöver direkt från konfigurationen istället för att köra extra komponenter som DNS-servrar eller lastbalanserare. Basenheten för schemaläggning i Nomad, kallad Allocations, kan begära portar med hjälp av nätverksblocket.

Kubernetes

När det kommer till Kubernetes är nätverkande en central pelare. Du kan styra följande aspekter – behållare-till-behållare-kommunikation via lokal värd, pod-till-pod-kommunikation, pod-till-tjänst-kommunikation och evig-till-tjänst-kommunikation.

Jämfört med de dynamiska portarna i Nomad tar Kubernetes ett annat tillvägagångssätt. Du får Service API som en abstraktion för att exponera en grupp Pods för nätverket

#5. Krav

Om du kör din orkestreringsplattform i stor skala, kommer systemkraven att bero på ditt klusterstorlek och de arbetsbelastningar du kör. Förutom CPU och minne behöver du också nätverksresurser.

Nomad

För produktionsservrar är det tillrådligt att du kör på stora maskininstanser. Det är bra för varje serverinstans att ha mellan 4-8+ CPU-kärnor, 16-32 GB+ minne och 40-80 GB+ snabbdisk. Du bör också säkerställa betydande nätverksbandbredd.

Om du använder en brandvägg måste du se till att de 3 portarna som Nomad är tillåtna. De 3 portarna är – HTTP API (standard 4646) som används av servrar och klienter, RPC (standard 4647) som används för intern kommunikation och Serf WAN (standard 4648) som används av servrar för att prata med andra servrar.

Kubernetes

Kubernetes-kluster kan bli mycket komplexa när de körs i mycket containeriserade produktionsmiljöer. Det är dock tillrådligt för dig att behålla varje nod med minst 2-4 CPU-kärnor och 8-16 GB RAM.

För stora kluster kan du behöva mer resurser per nod. Dessutom måste du se till att du har tillräckligt med nätverksbandbredd.

Medan Nomad och Kubernetes kan skala upp för att passa dina krav, skulle ett Kubernetes-kluster ta upp mer resurser i jämförelse.

#6. Kodning

Lättheten att koda avgör hur effektivt du kan interagera med ditt val av ramverk. Förutom att definiera din plattform och dina jobb, måste du också lära dig CLI-kommandona för att interagera med kommandoradsverktyget.

Nomad

HCL eller HashiCorp Configuration Language är det primära konfigurationsspråket som används i Nomad. HCL strävar efter att hitta en balans mellan läsbar och maskinvänlig. Du kan skriva jobbspecifikationerna med detta, inklusive uppgifter, begränsningar och beroenden för din applikation och dina tjänster.

Dessutom måste du också lära dig CLI-kommandona för kommandoradsverktyget Nomad. Detta låter dig interagera med ditt nomadkluster och göra konfigurationer.

Kubernetes

Istället för att lita på ett annat språk kan du konfigurera Kubernetes med YAML-filer. Du kan också använda JSON. Dessa konfigurationsfiler låter dig enkelt beskriva hur din applikation ska köras, inklusive specifikationer för pods, tjänster, distributioner och andra resurser.

När du kör komplexa Kubernetes-applikationer är Helm en pakethanterare för Kubernetes som låter dig definiera, installera och uppgradera även komplexa Kubernetes-applikationer. Styrdiagram är skrivna i YAML och kan innehålla mallar och värdefiler för att anpassa distributioner.

Du kommer att använda kommandoradsverktyget kubectl för att interagera med ditt Kubernetes-kluster. Detta innebär att köra olika kommandon för att skapa, ändra och hantera Kubernetes-resurser.

#7. Integration

Orkestereringsplattformar kommer med sin egen mängd integrationer som de stöder. Du kan också hitta flera tredjepartsintegrationer som du kan lägga till för att utöka funktionsuppsättningen.

Nomad

Med Nomad kan du aktivt integrera med olika verktyg och teknologier. Anslut sömlöst med Docker och andra containerkörningstider, vilket underlättar distribution av containeriserade applikationer. För tillhandahållande av infrastruktur kan du använda Terraform-integration och förenkla ditt resursskapande.

Som en del av HashiCrop låter Nomad dig också samarbeta med HashiCorp Consul för upptäckt av tjänster och hälsokontroller, medan HashiCorp Vault säkerställer säker hemlighetshantering. Dina övervakningsbehov tillgodoses genom integrationer som Prometheus, Grafana och ELK Stack. Dessutom passar Nomad sömlöst in i dina CI/CD-pipelines, vilket möjliggör automatiserad applikationsdistribution.

Kubernetes

Kubernetes är en beprövad lösning och erbjuder en lång lista med tekniker att integrera med. Du kan ansluta till Docker för containerdistributioner. För dina nätverksbehov kan du välja lösningar som Calico eller Cilium. Lagringsalternativ som Ceph och molnbaserade leverantörer som AWS EKS (Amazon Elastic Kubernetes Service) och Google GKE (Google Kubernetes Engine) hanterar aktivt din beständiga lagring. De molnbaserade lösningarna ger dig även ytterligare tjänster.

Om du vill stödja dina serverlösa arbetsbelastningar har Kubernetes dig täckt. Du kan utöka dina Kubernetes med serverlösa ramverk som Knative och KEDA (Kubernetes-baserad Event-Driven Autoscaling).

#8. GUI

Du kanske vill gå bort från kommandoraden och koden ibland och visualisera plattformen du kör. Att ha ett GUI eller grafiskt användargränssnitt låter dig göra det.

Nomad

Nomad tillhandahåller ett inbyggt webbgränssnitt som en del av binären. När du installerar Nomad och kör servern får du GUI tillsammans med API och CLI. Du behöver noll konfiguration för att börja använda användargränssnittet och inspektera ditt kluster.

När du har startat din Nomad-server kan du skriva in serveradressen i din webbläsare. Därefter omdirigeras du till webbgränssnittet. Det finns också ett ui-underkommando så att du kan besöka den nödvändiga webbsidan direkt från kommandoradsgränssnittet.

Kubernetes

Kubernetes kommer inte med ett GUI som standard. Du kan dock installera den enligt dina krav. Kubernetes erbjuder själv ett officiellt användargränssnitt som heter Dashboard. Även om det inte är installerat som standard, kan du få det igång med verktyget kubectl. Med hjälp av instrumentpanelen kan du få en överblick över ditt kluster.

Du kan distribuera containeriserade applikationer till ett Kubernetes-kluster, hantera och felsöka. Molnbaserade leverantörer som AWS EKS och Google GKE tillhandahåller sina egna UI-verktyg. Det finns också verktyg från tredje part som du kan köra.

Nomad vs. Kubernetes: Sammanfattningstabell

FeatureNomadKubernetesInstallationEn enda förkompilerad binär Olika binärfiler för olika komponenter och klienter SkalbarhetKan köra 10 000 noder och 2 miljoner behållare5 000 noder och 300 000 totala behållarePrestanda Enkelt och effektivt med en mindre resursfootworkingMånga fler resurser med flera nätkonfigurationer med många resurser och många nätkonfigurationer ined kontroll och gör inte lita på dynamiska portar Krav Lägre systemkrav för större klusterEtt större kluster behöver fler systemkällorKodningDen har ett mycket brett utbud av integrationer och tillgängliga verktygKan använda befintliga språk som YAML och JSONIntegrationHar goda officiella och tredjepartsintegrationerHar ett mycket brett utbud av integrationer och verktyg tillgängligaGUIBbyggd- tillgängligt i webbgränssnittet Behöver installeras separat

Välj rätt plattform för dina orkestreringsbehov

Mellan Nomad och Kubernetes beror ditt val av en orkestreringsplattform på dina specifika krav och prioriteringar. Båda plattformarna stöder olika användningsfall – schemaläggning av distribution, automatiserade utrullningar och återställningar samt klusterupptäckt och -hantering.

Om du prioriterar enkelhet och har en liten arbetsbelastning kan Nomad vara det bättre valet för dig. Med sina enda binära och minimala resurskrav gör Nomad det enklare att installera och använda. Dessutom kan du skala ditt kluster för att stödja ett stort antal noder.

Å andra sidan, om du behöver omfattande funktioner, finkornig kontroll och ett brett utbud av integrationer, då är Kubernetes ditt svar. Det ger en robust lösning för containeriserade arbetsbelastningar och kan sömlöst integreras med olika verktyg och teknologier. Du kan också utnyttja de hanterade lösningarna från AWS och Google Cloud.

Ta hänsyn till andra områden som behovet av att lära sig ett nytt språk (HCL) när det gäller Nomad, medan Kubernetes-konfigurationer fungerar med YAML eller JSON. Dessutom kan du behöva ett webbgränssnitt för din användarvänlighet.

Tänk också på de tillgängliga systemresurserna du har och kostnaderna förknippade med det. Valet av din orkestreringsplattform mellan Nomad och Kubernetes bör baseras på dina behov, expertis och resurser.

Kolla sedan in Kubernetes bästa praxis för bättre containerorkestrering.