Hvilken orkestreringsplattform å velge

Nomad og Kubernetes har kommet opp som to av de mest populære orkestreringsplattformene som er tilgjengelige for dine dynamiske orkestreringsarbeidsmengder.

Orkestreringsplattformer hjelper deg med å automatisere konfigurasjonen, administrasjonen og koordineringen av flere forskjellige applikasjoner du kjører.

Både Nomad og Kubernetes forenkle distribusjonen og administrasjonen av dine containeriserte applikasjoner. Med den riktige orkestreringsplattformen kan du effektivt håndtere de forskjellige mikrotjenestene og beholderne dine – fra tjenesteoppdagelse og distribusjon til koordinering og skalering.

Før du velger riktig plattform, la oss lære mer om Nomad og Kubernetes.

Hva er Nomad?

Nomad fra HashiCorp takler problemet med orkestrering av arbeidsbelastning. Den har fleksibilitet og planlegger og orkestrerer distribusjon og administrasjon av containere. Den fungerer både i skyen og på stedet, og støtter også arbeidsbelastninger uten containere.

Med Nomad får du en enkel binær du må kjøre. I motsetning til andre løsninger har den et veldig lite ressursavtrykk som ikke tar opp mye databehandling fra serverne dine. Utover containere kan du kjøre ulike arbeidsbelastninger som Windows, Java, Virtual Machines og Docker.

Du kan distribuere og administrere bedriftsbeholderne i produksjon. I tillegg kan du også kjøre applikasjoner uten containere på Nomad-klyngen uten å måtte beholde dem. Ved å bruke Nomad kan du enkelt skalere ut og få applikasjonene til å kjøre geografisk nærmere der kundene dine bor. Du kan også effektivt kjøre kortvarige batchjobber.

Nomad kommer i to versjoner – Community Edition og Enterprise Edition. De Fellesskapsutgave er gratis og lar deg selv administrere Nomad-klyngen din. Innen 15 minutter kan du kjøre den lokalt eller i skymiljøet ditt. I mellomtiden har Enterprise Edition gir støtte og tilleggsfunksjoner som samarbeid, drift og styring.

Hva er Kubernetes?

Kubernetes er en orkestreringsplattform som er utvidbar, bærbar og svært effektiv. Også kjent som K8s, ble den opprinnelig utviklet av Google. Den administreres for tiden av Cloud Native Computing Foundation eller CNCF, og er den mest populære orkestreringsplattformen.

Med Kubernetes kan du effektivt flytte arbeidsmengden dit du måtte trenge – enten det er på stedet, offentlig sky eller hybridmodus. Den tar sikte på å tilby alle mulige verktøy du måtte trenge for å løse dine behov for orkestrering og infrastrukturadministrasjon.

Det er den desidert mest populære orkestreringsplattformen. Ledende leverandører av skytjenester som Amazon Web Service og Google Cloud Platform tilbyr administrerte Kubernetes-tjenester – henholdsvis Amazon Elastic Kubernetes Service (AWS EKS) og Google Kubernetes Engine (GKE).

Les også: Komme i gang med Kubernetes: An Introduction for Beginners

Men hvilken bør du velge for dine krav til orkestreringsplattformen? La oss finne ut av det ved å sammenligne de to.

Nomad vs. Kubernetes

#1. Installasjon

Siden det første trinnet for å bruke de fleste programvareverktøy og teknologier er installasjon, spiller det enkle å bruke en viktig rolle. Når du velger mellom Nomad og Kubernetes, vil du se på hvor enkelt det er å starte med dem.

Nomad

For Nomad får du en forhåndskompilert binær eller en pakke du må installere. For manuell installasjon på din lokale maskin kan du laste ned og installer den offisielle binære filen. Hvis du bruker Linux, kan du installere den offisielle Linux-pakken. I alle fall, etter etterinstallering, er alt du trenger å gjøre å installere CNI (Container Network Interface) plugins direkte fra kommandolinjen.

  9 Programvare for planlegging av arbeidsstyrken for å øke produktiviteten

Det er enda enklere hvis du installerer på MacOS eller Windows ved å bruke pakkeadministrasjonsverktøy som henholdsvis Homebrew og Chocolatey. Med bare en enkelt kommando vil installasjonen være fullført, inkludert CNI-plugins.

Kubernetes

Når det gjelder Kubernetes, er det forskjellige komponenter og klienter som du kan installere i henhold til dine behov. Du får binærfiler for hver. Den har forskjellige containerbilder for forskjellige kjøretider og systemarkitekturer.

Du kan sjekke offisielt depot for den offisielle binære filen som matcher plattformen din, det være seg Darwin, Linux eller Windows, og systemarkitekturen din. Når du er ferdig med å installere det riktige containerbildet, trenger du kubectl – kommandolinjeverktøyet som lar deg samhandle med containerne.

#2. Skalerbarhet

For containerarbeidsmengder er skalerbarhet en viktig faktor. Det bestemmer systemets evne til å håndtere de økende arbeidsbelastningene dine. Kort sagt, hvis du trenger mer datakraft, bør orkestreringsrammeverket ditt enkelt kunne legge til nye ressurser.

Nomad

Nomad har vist seg å kjøre klynger som overstiger 10 000 noder i et produksjonsmiljø. I 2020 gjennomførte Nomad en stresstest med 2 millioner docker-containere på 6100 verter. Dette spenner over 10 forskjellige AWS-regioner og gikk i 22 minutter. Dette overgikk deres tidligere vellykkede løp av 1 million containere.

Du får også horisontal autoskalering med Nomad Autoscaler. Du kan kjøre dette som en egen prosess ved behov.

Kubernetes

Fra og med versjon 1.28 kan Kubernetes la deg skalere klyngen din til opptil 5000 noder. Du kan kjøre totalt 150 000 pods eller totalt 300 000 containere.

Med den økte skalerbarheten er det mer komplisert å vedlikeholde en Kubernetes-klynge når du sammenligner det med å administrere Nomad-klyngen. Nomad gir deg fordelen over Kubernetes med det totale antallet noder du kan kjøre.

#3. Opptreden

Når du velger en orkestreringsplattform, bør du sikte på en balanse mellom funksjoner og ytelse. Ytelsen til en orkestreringsplattform avgjør også hvor mye systemressurser du skal bruke.

Nomad

Nomad har et lite ressursavtrykk på grunn av sin enkeltbinære tilnærming. Du slipper også installasjon av separate tjenester for å få orkestreringsplattformen i gang. Derfor ender du opp med å bruke mindre CPU og minne på nodene dine, noe som fører til lavere overhead og bedre ytelse.

Den er svært tilpasningsdyktig og kan håndtere ulike arbeidsbelastninger, enten det er på stedet eller skyen. Med sin enkelhet, robusthet og effektivitet vil du få en fordel i å opprettholde ytelsen ettersom klyngestørrelsen øker.

Kubernetes

Kubernetes er svært optimalisert for containeriserte arbeidsbelastninger. Hvis du kjører en flåte av containerbaserte mikrotjenester, utmerker Kubernetes seg i å administrere dem. Med sine omfattende nettverksmuligheter og brede spekter av integrasjoner kan du akselerere og finjustere orkestreringsbehovene dine.

På grunn av det omfattende sett med funksjoner og konfigurasjoner, bruker Kubernetes mer av systemressursene dine. Etter hvert som klyngestørrelsen din vokser, kan det hende du står overfor ytterligere overhead og kompleksitet i å administrere den.

#4. Nettverk

Nettverk er et viktig aspekt når det gjelder containerorkestrering. Det bestemmer hvordan nodene dine kan finne og snakke med hverandre.

Nomad

Nomad er sterkt fokusert på orkestrering av arbeidsbelastning, og berører knapt nettverk og prøver å modifisere ting så lite som mulig.

I stedet for å stole på infrastruktur, jobber Nomad med konfigurasjoner. Du får informasjonen du trenger direkte fra konfigurasjonen i stedet for å kjøre ekstra komponenter som DNS-servere eller lastbalansere. Basisenheten for planlegging i Nomad, kalt Allocations, kan be om porter ved å bruke nettverksblokken.

  Hvordan bruke "Pass"-erklæringen i Python

Kubernetes

Når det gjelder Kubernetes, er nettverk en sentral pilar. Du kan kontrollere følgende aspekter – beholder-til-beholder-kommunikasjon via lokal vert, pod-til-pod-kommunikasjon, pod-til-tjeneste-kommunikasjon og evig-til-tjeneste-kommunikasjon.

Sammenlignet med de dynamiske portene i Nomad, tar Kubernetes en annen tilnærming. Du får Service API som en abstraksjon for å eksponere en gruppe Pods til nettverket

#5. Krav

Hvis du kjører orkestreringsplattformen din i stor skala, vil systemkravene avhenge av klyngestørrelsen din og arbeidsbelastningen du kjører. Bortsett fra CPU og minne, trenger du også nettverksressurser.

Nomad

For produksjonsservere anbefales det å kjøre på store maskinforekomster. Det er bra for hver serverforekomst å ha mellom 4-8+ CPU-kjerner, 16-32 GB+ minne og 40-80 GB+ hurtigdisk. Du bør også sørge for betydelig nettverksbåndbredde.

Hvis du bruker en brannmur, må du sørge for at de 3 portene som Nomad er tillatt. De 3 portene er – HTTP API (standard 4646) som brukes av servere og klienter, RPC (standard 4647) som brukes for intern kommunikasjon, og Serf WAN (standard 4648) som brukes av servere for å snakke med andre servere.

Kubernetes

Kubernetes-klynger kan bli svært komplekse når de kjøres i svært containeriserte produksjonsmiljøer. Det er imidlertid tilrådelig for deg å beholde hver node med minimum 2-4 CPU-kjerner og 8-16 GB RAM.

For store klynger kan det hende du trenger flere ressurser per node. I tillegg må du sørge for at du har nok nettverksbåndbredde.

Mens Nomad og Kubernetes kan skalere opp for å passe dine behov, vil en Kubernetes-klynge ta opp flere ressurser relativt.

#6. Koding

Den enkle kodingen avgjør hvor effektivt du kan samhandle med ditt valgte rammeverk. Bortsett fra å definere plattformen og jobbene dine, må du også lære CLI-kommandoene for å samhandle med kommandolinjeverktøyet.

Nomad

HCL eller HashiCorp Configuration Language er det primære konfigurasjonsspråket som brukes i Nomad. HCL har som mål å finne en balanse mellom menneskelig lesbar og maskinvennlig. Du kan skrive jobbspesifikasjonene ved å bruke dette, inkludert oppgavene, begrensningene og avhengighetene for applikasjonen og tjenestene dine.

I tillegg må du også lære CLI-kommandoene for Nomad-kommandolinjeverktøyet. Dette lar deg samhandle med nomadeklyngen din og lage konfigurasjoner.

Kubernetes

I stedet for å stole på et annet språk, kan du konfigurere Kubernetes ved å bruke YAML-filer. Du kan også bruke JSON. Disse konfigurasjonsfilene lar deg enkelt beskrive hvordan applikasjonen din skal kjøre, inkludert spesifikasjoner for pods, tjenester, distribusjoner og andre ressurser.

Når du kjører komplekse Kubernetes-applikasjoner, er Helm en pakkebehandling for Kubernetes som lar deg definere, installere og oppgradere selv komplekse Kubernetes-applikasjoner. Rordiagrammer er skrevet i YAML og kan inkludere maler og verdifiler for å tilpasse distribusjoner.

Du vil bruke kommandolinjeverktøyet kubectl til å samhandle med Kubernetes-klyngen. Dette innebærer å kjøre ulike kommandoer for å opprette, endre og administrere Kubernetes-ressurser.

#7. Integrering

Orkestreringsplattformer kommer med sin egen rekke integrasjoner som de støtter. Du kan også finne flere tredjepartsintegrasjoner som du kan legge til for å øke funksjonssettet.

Nomad

Med Nomad kan du aktivt integrere med ulike verktøy og teknologier. Koble sømløst til Docker og andre containerkjøringer, forenkler distribusjon av containeriserte applikasjoner. For infrastrukturklargjøring kan du bruke Terraform-integrasjon og forenkle ressursopprettingen.

Som en del av HashiCrop lar Nomad deg også samarbeide med HashiCorp Consul for tjenesteoppdagelse og helsesjekker, mens HashiCorp Vault sørger for sikker hemmelighåndtering. Dine overvåkingsbehov blir dekket gjennom integrasjoner som Prometheus, Grafana og ELK Stack. I tillegg passer Nomad sømløst inn i CI/CD-rørledningene dine, noe som muliggjør automatisert applikasjonsdistribusjon.

  Fix Kan ikke få skrivetillatelser for Fallout 3

Kubernetes

Kubernetes er en tidtestet løsning, og tilbyr en lang liste med teknologier å integrere med. Du kan koble til Docker for containerimplementeringer. For dine nettverksbehov kan du gå med løsninger som Calico eller Cilium. Lagringsalternativer som Ceph og skybaserte leverandører som AWS EKS (Amazon Elastic Kubernetes Service) og Google GKE (Google Kubernetes Engine) administrerer aktivt den vedvarende lagringen din. De skybaserte løsningene gir deg også tilleggstjenester.

Hvis du ønsker å støtte de serverløse arbeidsbelastningene dine, har Kubernetes deg dekket. Du kan utvide Kubernetes med serverløse rammeverk som Knative og KEDA (Kubernetes-basert hendelsesdrevet autoskalering).

#8. GUI

Du vil kanskje flytte bort fra kommandolinjen og koden til tider og visualisere plattformen du kjører. Å ha et GUI eller grafisk brukergrensesnitt lar deg gjøre det.

Nomad

Nomad har et innebygd web-UI som en del av binæren. Når du installerer Nomad og kjører serveren, får du GUI sammen med API og CLI. Du trenger null konfigurasjon for å begynne å bruke brukergrensesnittet og inspisere klyngen din.

Når du har startet din Nomad-server, kan du skrive inn serveradressen i nettleseren din. Deretter blir du omdirigert til nettgrensesnittet. Det er også en ui-underkommando slik at du kan besøke den nødvendige nettsiden rett fra kommandolinjegrensesnittet.

Kubernetes

Kubernetes kommer ikke med et GUI som standard. Du kan imidlertid installere den i henhold til dine krav. Kubernetes tilbyr selv et offisielt brukergrensesnitt kalt Dashboard. Selv om det ikke er installert som standard, kan du få det opp og kjøre ved å bruke kubectl-verktøyet. Ved å bruke Dashboard kan du få en oversikt over klyngen din.

Du kan distribuere containeriserte applikasjoner til en Kubernetes-klynge, administrere og feilsøke. Skybaserte leverandører som AWS EKS og Google GKE tilbyr sine egne brukergrensesnittverktøy. Det finnes også tredjepartsverktøy du kan kjøre.

Nomad vs. Kubernetes: Sammendragstabell

FeatureNomadKubernetesInstallasjonEn enkelt forhåndskompilert binær Ulike binærfiler for forskjellige komponenter og klienterSkalerbarhetKan kjøre 10 000 noder og 2 millioner containere5 000 noder og 300 000 totale containere Ytelse Enkel og effektiv med et mindre ressursfotavtrykk som alle brukeromfattende dynamiske nettverkskonfigurasjoner, men omfattende flere ressurser sett med funksjoner. ined kontroll og gjør ikke stole på dynamiske porter Krav Lavere systemkrav for større klyngeEn større klynge trenger flere systemkilderKodingDen har et veldig bredt spekter av integrasjoner og tilgjengelige verktøyKan bruke eksisterende språk som YAML og JSONIntegrasjonHar gode offisielle og tredjepartsintegrasjonerHar et veldig bredt spekter av integrasjoner og verktøy tilgjengeligGUIBbygd- i web-UI tilgjengelig. Må installeres separat

Velg riktig plattform for dine orkestreringsbehov

Mellom Nomad og Kubernetes avhenger ditt valg av en orkestreringsplattform av dine spesifikke krav og prioriteringer. Begge plattformene støtter ulike brukstilfeller – distribusjonsplanlegging, automatiserte utrullinger og gjenopprettinger, og klyngeoppdagelse og -administrasjon.

Hvis du prioriterer enkelhet og har en liten arbeidsmengde, kan Nomad være det bedre valget for deg. Med sine enkle binære og minimale ressurskrav gjør Nomad det enklere å sette opp og betjene. I tillegg kan du skalere klyngen din for å støtte et stort antall noder.

På den annen side, hvis du trenger omfattende funksjoner, finkornet kontroll og et bredt spekter av integrasjoner, så er Kubernetes svaret. Det gir en robust løsning for containeriserte arbeidsbelastninger og kan sømløst integreres med ulike verktøy og teknologier. Du kan også utnytte de administrerte løsningene som tilbys av AWS og Google Cloud.

Ta hensyn til andre områder som behovet for å lære et nytt språk (HCL) når det gjelder Nomad, mens Kubernetes-konfigurasjoner fungerer med YAML eller JSON. I tillegg kan det hende du trenger et nettgrensesnitt for enkel bruk.

Vurder de tilgjengelige systemressursene du har og kostnadene forbundet med det også. Valget av orkestreringsplattformen din mellom Nomad og Kubernetes bør være basert på dine behov, ekspertise og ressurser.

Deretter kan du sjekke ut Kubernetes» beste praksis for bedre containerorkestrering.