all
Business
data science
design
development
our journey
Strategy Pattern
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Alex Gamela

25. marts 2024

Min Read

Nomad vs Kubernetes: Sammenligning af orkestreringsværktøjer

Der er en ny spiller i containerorkestreringsarenaen. Hashicorp's Nomad er en nylig tilføjelse til puljen af teknologier designet til at planlægge og orkestrere opgaver i server/klientforholdet. Nomad, der er beskrevet som enkel at køre og vedligeholde, fanger opmærksomheden hos udviklere, der leder efter alternativer til Kubernetes.

Men hvorfor bruge Nomad i stedet for Kubernetes, og hvornår? Lad os se på Forskelle mellem Nomad og Kubernetes, deres vigtigste træk, fordele og ulemper.

blue arrow to the left
Imaginary Cloud logo

Betydningen af containerisering

Først ud, Hvad er containerisering? Applikationer skal køre på forskellige platforme og arbejde med forskellige operativsystemer, mens de bruger deres egne kodningssprog. Beholdere er pakker, der bærer applikationskoden, dens biblioteker og afhængigheder. De er lette komponenter, der forbinder applikationen til operativsystemet, så koden kan køre i ethvert miljø.

Containerorkestreringsværktøjer er kontrolcentret til planlægning, implementering og netværk af containere. De mest populære er:

  • Kubernetes
  • Åbent skift
  • Docker Swarm
  • Mesos
  • Helios

Den største fordel ved orkestrering er automatisering. Orkestreringsværktøjer reducerer kompleksiteten ved at administrere, skalere og overvåge containere i stort antal, hvilket fremskynder udviklings- og implementeringscyklusserne for udviklere og operatører, øger produktiviteten og minimerer menneskelige fejl.

Den ekstra fordel er omkostningsreduktion, da det forbedrer hardwareoperationaliteten og ressourceforbruget. Der er også en reduceret risiko for nedetid takket være automatiserede tilbagekaldelser i tilfælde af implementeringsfejl.

Af alle de tilgængelige orkestreringsværktøjer, Kubernetes er den mest populære og betragtes som industristandarden.

blue arrow to the left
Imaginary Cloud logo

Hvad er Kubernetes?

Kubernetes (aka „Kube“ eller k8s) er en open source-containerorkestreringsplatform skrevet i Go. Det blev oprindeligt udviklet af Google i 2014, men vedligeholdes i øjeblikket af Cloud Native Computing Foundation (CNCF).

Ifølge undersøgelser er Kubernetes brugsandel vokset og er langt den mest populære af orkestreringsteknologierne. Førende offentlige cloud-udbydere som Amazon Web Services (AWS), Google Cloud Platform, IBM Cloud og Microsoft Azure inkluderer administrerede Kubernetes-tjenester i deres pakker.

Populariteten af Kubernetes er steget i de sidste par år, dels takket være brugen af YAML. Sprog som Ruby, Python eller Javascript er mere komplekse og fremmer infrastruktur som kode; med YAML er fokus på infrastruktur som data.

Den grundlæggende enhed i Kubernetes er Pods. En pod er en eller en gruppe af containere med delt lager og netværksressource.

Dette skift giver mulighed for bedre skalerbarhed, sikkerhed, kontrol og forbedret integration med cloud-udbydere. Kubernetes' egen hurtige udviklingscyklus, med nye versioner, der udkommer hvert par måneder, fremmer innovation og tilpasser sig hurtigt til udviklernes behov takket være en stærk samfundsindsats, hvor et stort antal grupper investeret i udviklingen af Kubernetes' projekt.

Hvis du er interesseret i, hvordan Kubernetes fungerer, og hvordan det sammenlignes med andre containeriseringsteknologier, anbefaler vi at læse disse artikler fra vores blog:

blue arrow to the left
Imaginary Cloud logo

Hvad er Nomad?

nomade er HashiCorps' svar til udviklere, der leder efter en kraftfuld, men fleksibel platform til applikationsinstallation eller containerorkestrering.

Nomad, der er kendt som enkel at køre og vedligeholde, er cloud-agnostisk og designet til naturligt at håndtere implementeringer af flere datacentre og flere regioner med et højt skalerbarhedspotentiale. Det kaldes „Kubernetes uden kompleksitet“, men det skaber et navn for sig selv på grund af sin egen fortjeneste.

Sammenlignet med andre orkestreringsværktøjer, Nomad er meget nem at installere da det er tilgængeligt som en forudkompileret binær, klar til at arbejde fra en lokal maskine. Det kører enhver form for applikation i alle mulige miljøer ved hjælp af almindelige opgavedrivere som plugins, som Containerd, Windows IIS, Firecracker, Podman, Docker, for at nævne nogle, og er ikke afhængig af eksterne tjenester til opbevaring eller koordinering.

Hver installation kan skræddersys til projektets behov med plugins til specifikke funktioner. Nomads integrationsprogram accepterer plugins kodet i Go, primært.

Nomad kan fungere som en traditionel containerorkestrator, men også administrere ikke-containeriserede applikationer, hvilket er en af dens stærkeste appeller til udviklere. Applikations-, node- og driverfejl håndteres automatisk, hvilket bevarer de fulde definitioner og implementeringshistorik for hvert job for nem tilbagekaldelse og sammenligning. De mindste implementeringsenheder i Nomad kaldes „Opgaver“, og de svarer til „Pods“ i Kubernetes.

Men det stærkeste salgsargument for Nomads evne til at få mest muligt ud af hardware, forbedre ydeevne og skalerbarhed.

Nomad er open source, med en virksomhedsversion, og blev vedtaget af Trivago, Pandora, Target, eBay og Roblox. Med et blomstrende fællesskab af udviklere bag sig er Nomad ved at blive et seriøst alternativ til de etablerede orkestrere.

blue arrow to the left
Imaginary Cloud logo

Kubernetes vs Nomad: nøgleforskelle

Den største forskel mellem Nomad og Kubernetes er, at Nomad er mere alsidig og let. Nomad kan fungere som en simpel opgaveplanlægger eller påtage sig tungere orkestreringsroller i henhold til projektspecifikationerne. Nomad er en del af en suite sammensat af komplementære værktøjer produceret af HashiCorp:

  • Terraform, til hurtig udvikling af infrastruktur;
  • Konsul, til automatisk servicenetværk;
  • Vault, Hashicorps værktøj til styring af hemmeligheder;

Kubernetes kommer som en komplet platform, med alle komponenter inkluderet. Nomad udelader de fleste af de komponenter, der kan tilføjes senere, hvis det er nødvendigt, hvilket minimerer behovet for eksterne afhængigheder.

Comparing Kubernetes and Nomad
Kilde: En Kubernetes brugervejledning til HashiCorp Nomad

Popularitet

I de sidste par år blev Kubernetes synonymet for containerorkestrering. Ifølge en Red Hat-undersøgelse fra 202285% af it-lederne er enige om, at Kubernetes er „vigtig“, „meget vigtig“ eller „ekstremt vigtig“ for cloud-native applikationsstrategier. Nomad samler stadig popularitet, men det har vundet trækkraft blandt udviklere og virksomheder.

Når det kommer til containerorkestrering, handler det ikke om antallet af brugere, men hvor meget trafik disse platforme håndterer. Kubernetes er altid til stede i de fleste af nutidens digitale kommunikation. Alligevel er Nomad en del af Cloudflareudviklingsmiljøet, en virksomhed, der er ansvarlig for at dirigere 10% af verdens internettrafik og en hjørnesten i Pandoraer skalering. Det er måske ikke så almindeligt anvendt som Kubernetes, men det har allerede en enorm indflydelse.

Installation

Nomad er let og nem at installere. Det kommer som en simpel binær, der hurtigt kan implementeres i en lokal udviklingsmaskine eller cloud-miljø, med samme konsistens og funktionalitet.

Kubernetes tager mere tid og ressourcer at implementere, og installationsprocessen er mere kompleks. Der er andre lettere Kubernetes-implementeringer, der kun dækker et par af de fulde funktioner. Disse bruges til hurtig udvikling og test, men de oversættes ikke godt ind i produktionsfasen, da de er tilbøjelige til konfigurationsinkonsekvenser.

Skalerbarhed

Kubernetes hævder (fra udgivelsesdatoen) at understøtte klynger op til 5.000 noder, med 300.000 samlede containere og ikke mere end 150.000 pods.

Nomad viste, at det kunne skaleres til klyngestørrelser over 10.000 noder.

Netværk

I Kubernetes kommunikerer pods via et peer-to-peer-netværk. Denne netværksmodel har brug for to CIDR'er (Classless Inter-Domain Routers): den ene til Node IP-adressering og den anden til tjenester.

I Nomad får hver opgave som standard en IP. De respektive porte kan derefter tilgås direkte eller via sidecar-proxyer ved hjælp af værtsnetværk, dynamisk eller statisk portvideresendelse med hjælp fra Consul-komponenten.

Kravprofil

Kubernetes kræver mere hardware og mere personale, der bruges til højprofilerede, langsigtede projekter med en større investering i offentlige cloud-miljøer som Google Cloud Platform, Azure eller AWS.

Nomad er velegnet til mindre teams med begrænset kapacitet til orkestreringsformål, med kortere udviklingsfrister, der arbejder på hybride miljøer eller lokale miljøer.

Sprog

Kubernetes bruger YAML eller JSON til at definere og implementere applikationer. Dette er et eksempel på jobkonfiguration ved hjælp af YAML:


Nomad bruger konfigurationssproget Hashicorp (HCL). Hovedformålet er at definere job og gøre definitionen af bygninger mere fleksibel og praktisk.

HCL er både en syntaks og en API designet af Hashicorp til at opbygge strukturerede konfigurationsformater. Det er et kompromis mellem serialiseringsformater som JSON og konfigurationsformater bygget op omkring sprog som Ruby. Det er lettere at læse og skrive af mennesker - ligesom YAML. Her er et eksempel på jobkonfigurationskoden for Nomad i HCL:


Belastningsbalancering

En load balancer distribuerer indgående trafik fra internettet til de front-end-applikationer, der er ansvarlige for håndtering af anmodninger.

Den mest populære løsning i Kubernetes til belastningsbalancering er Ingress, en specialiseret Kubernetes-controller (alt for lig en pod). Ingress indeholder et sæt regler til styring af trafik og en dæmon til at anvende dem. Disse regler kan tilpasses til mere avancerede behov.

Nomad har en funktionalitet svarende til Kubernetes' Ingress-controller, som også let kan tilpasse sig ændringer i konfiguration og skala.

Integration

Nomad arbejder med Docker ligesom Kubernetes gør og kører ikke-containeriserede arbejdsbelastninger (Windows, Java).

Grafisk brugergrænseflade (GUI)

Begge har attraktive, funktionelle dashboards, der giver en klar, ligetil ledelsesoplevelse.

Nomad and Kubernetes Dashboards
blue arrow to the left
Imaginary Cloud logo

Nomad vs Kubernetes: hvordan vælger man?

Kubernetes er en kraftfuld samling af komponenter, der arbejder sammen, integreret i en kerneenhed. Det er designet til at implementere, administrere og skalere applikationscontainere på tværs af klynger af værter, ligesom et operativsystem til cloud-native applikationer.

Nomad starter som en klyngehåndtering og opgaveplanlægger, men den kan forbindes til andre værktøjer som Consul for at udvide sine muligheder. Dens fleksibilitet til at tilpasse sig forskellige roller gør Nomad meget tiltalende for mellemstore virksomheder med mindre hardware- og personaleressourcer. Det er lettere at starte med, lettere at vedligeholde, men mangler fællesskabsstøtte.

Men du behøver ikke engang at vælge mellem Kubernetes og Nomad.

Nomad OG Kubernetes

Begge platforme kan arbejde sammen og supplere hinanden: Kubernetes bruges af globale virksomheder og tilbydes som en tjeneste af Google Cloud Platform, Azure og AWS, de tre mest fremtrædende cloud-udbydere, fordi det anerkendes som et kraftfuldt containerorkestreringsværktøj med banebrydende funktioner. Men Nomads smidighed gør den perfekt til vedligeholdelses- og kerneplanlægningsformål.

Her er en head to head sammenligning:

blue arrow to the left
Imaginary Cloud logo

Konklusion

Containeriseringsarenaen havde allerede mange konkurrerende (og undertiden samarbejdsvillige) muligheder, der imødekom forskellige mål og behov. Nu har vi en mere. Det ser ikke ud til, at Nomad vil overtage styringen af Kubernetes snart, men det stiller sig op som en stærk spiller.

Nomad kan være indgangspunktet til en verden af containerorkestrering for mange udviklere og virksomheder, der har brug for en let, enkel og let tilpasningsdygtig løsning til at imødegå forskellige scenarier, der ikke kræver en tungvægt som Kubernetes, for at vokse i deres eget tempo.

Fandt du denne artikel nyttig? Du kan måske også lide disse!

blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
Alex Gamela
Alex Gamela

Indholdsforfatter og digital medieproducent med interesse i det symbiotiske forhold mellem teknologi og samfund. Bøger, musik, og guitarer er en konstant.

Read more posts by this author

People who read this post, also found these interesting:

arrow left
arrow to the right
Dropdown caret icon