Dir braucht vläicht net Kubernetes

Dir braucht vläicht net Kubernetes
Meedchen op engem Scooter. Illustratioun freepik, Nomad logo vun Hashi Corp

Kubernetes ass déi 300 Pound Gorilla vun der Containerorchestratioun. Et funktionnéiert an e puer vun de gréisste Containersystemer op der Welt, awer ass deier.

Besonnesch deier fir méi kleng Teams, déi vill Ënnerstëtzungszäit an eng géi Léierkurve erfuerderen. Dëst ass ze vill Overhead fir eis Equipe vu véier. Also hu mir ugefaang no Alternativen ze sichen - a si verléift gefall Nomad.

Wat wëlls du

Eis Team ënnerstëtzt eng Rei vun allgemenge Leeschtungsiwwerwaachungs- an Analyseservicer: API Endpunkte fir Metriken geschriwwen a Go, Prometheus Exporter, Log Parser wéi Logstash a Gollum, souwéi Datenbanken wéi InfluxDB oder Elasticsearch. Jiddereng vun dëse Servicer leeft a sengem eegene Container. Mir brauche en einfache System fir alles ze lafen.

Mir hunn ugefaang mat enger Lëscht vun Ufuerderunge fir Containerorchester:

  • Lafen eng Rei vu Servicer op ville Maschinnen.
  • Iwwersiicht vun Lafen Servicer.
  • Linken tëscht Servicer.
  • Automatesch Restart wann de Service erof geet.
  • Infrastruktur Ënnerhalt vun enger klenger Equipe.

Zousätzlech wäerten déi folgend Saachen flott sinn, awer net erfuerderlech Ergänzunge:

  • Tagging Maschinnen baséiert op hir Fäegkeeten (zum Beispill Tagging Maschinnen mat schnelle Scheiwen fir schwéier I/O Servicer).
  • D'Kapazitéit fir Servicer onofhängeg vum Orchester ze bedreiwen (zum Beispill während der Entwécklung).
  • Eng gemeinsam Plaz fir Konfiguratiounen a Geheimnisser ze deelen.
  • Endpunkt fir Metriken a Logbicher.

Firwat ass Kubernetes net richteg fir eis

Wéi mir mat Kubernetes Prototyp gemaach hunn, hu mir gemierkt datt mir ëmmer méi komplex Schichten vun der Logik bäigefüügt hunn, op déi mir staark vertraut hunn.

Als Beispill ënnerstëtzt Kubernetes agebaute Servicekonfiguratiounen iwwer ConfigMaps. Dir kënnt séier duerchernee ginn, besonnesch wann Dir verschidde Konfiguratiounsdateien fusionéiert oder zousätzlech Servicer zu engem Pod bäidréit. Kubernetes (oder Helm an dësem Fall) erlaabt Iech dynamesch extern Konfiguratiounen ëmzesetzen fir Bedenken ze trennen. Awer dëst resultéiert an enger enk, verstoppter Kupplung tëscht Ärem Projet a Kubernetes. Wéi och ëmmer, Helm a ConfigMaps sinn zousätzlech Optiounen, sou datt Dir se net benotze musst. Dir kënnt d'Konfiguratioun einfach an den Docker Bild kopéieren. Wéi och ëmmer, et ass verlockend dëse Wee erof ze goen an onnéideg Abstraktiounen ze bauen déi Dir spéider bedauere kënnt.

Zousätzlech entwéckelt de Kubernetes Ökosystem séier. Et brauch vill Zäit an Energie fir um Lafenden ze bleiwen mat beschten Praktiken an déi lescht Tools. Kubectl, minikube, kubeadm, Helm, Tiller, Kops, oc - d'Lëscht geet weider a weider. Net all dës Tools si gebraucht wann Dir ufänkt, awer Dir wësst net wat Dir braucht, also musst Dir alles bewosst sinn. Dofir ass d'Léierkurve zimlech steil.

Wann Dir Kubernetes benotzt

An eiser Gesellschaft benotze vill Leit Kubernetes a si ganz zefridden mat deem. Dës Instanzen gi vu Google oder Amazon geréiert, déi d'Ressourcen hunn fir se z'ënnerstëtzen.

Kubernetes kënnt mat erstaunlech Fonctiounen, déi d'Containerorchestratioun op Skala méi handhabbar maachen:

D'Fro ass ob Dir wierklech all dës Funktiounen braucht. Dir kënnt net nëmmen op Abstraktioune vertrauen; Dir musst erausfannen wat ënnert der Hood leeft.

Eist Team liwwert déi meescht Servicer op Distanz (wéinst der enker Verbindung mat der Haaptinfrastruktur), also wollte mir net eisen eegene Kubernetes-Cluster erhéijen. Mir wollten just Servicer ubidden.

Batterien net abegraff

Nomad ass 20% vun der Orchestratioun déi 80% vun deem wat gebraucht gëtt. Alles wat et mécht ass d'Deployementer ze managen. Nomad këmmert sech ëm d'Deployment, restart Container bei Feeler ... an dat ass et.

De ganze Punkt vum Nomad ass wat et mécht Minimum: keng granular Rechter Gestioun oder verlängert Reseau Politiken, Dëst ass speziell entworf. Dës Komponente ginn extern oder guer net geliwwert.

Ech mengen Nomad huet de perfekte Kompromiss tëscht Liichtegkeet an Utility fonnt. Et ass gutt fir kleng, onofhängeg Servicer. Wann Dir méi Kontroll braucht, musst Dir se selwer erhéijen oder eng aner Approche benotzen. Nomad ass einfach orchestrator.

Déi bescht Saach iwwer Nomad ass datt et einfach ass ersat gëtt. Et gëtt praktesch keng Verbindung mam Verkeefer, well seng Funktiounen einfach an all aner System integréiert sinn, dee Servicer geréiert. Et leeft just wéi eng regulär Binär op all Maschinn am Stärekoup, dat ass alles!

Nomad Ökosystem vu locker gekoppelte Komponenten

Dem Nomad seng richteg Stäerkt ass säin Ökosystem. Et integréiert ganz gutt mat anere - komplett fakultativ - Produkter wéi z.B Consul (Schlësselwäert Store) oder Vault (Veraarbechtung Geheimnisser). An der Nomad Datei ginn et Sektiounen fir Daten aus dëse Servicer ze extrahieren:

template {
  data = <<EOH
LOG_LEVEL="{{key "service/geo-api/log-verbosity"}}"
API_KEY="{{with secret "secret/geo-api-key"}}{{.Data.value}}{{end}}"
EOH

  destination = "secrets/file.env"
  env         = true
}

Hei liesen mir de Schlëssel service/geo-api/log-verbosity vum Consul a wärend mir schaffen stelle mir et un eng Ëmweltvariabel aus LOG_LEVEL. Mir presentéieren och de Schlëssel secret/geo-api-key aus Vault als API_KEY. Einfach awer mächteg!

Wéinst senger Einfachheet ass Nomad einfach mat anere Servicer iwwer API erweiterbar. Zum Beispill ginn Tags fir Aufgaben ënnerstëtzt. Mir markéieren all Servicer mat Metriken trv-metrics. Op dës Manéier kann de Prometheus dës Servicer einfach iwwer Consul fannen a periodesch den Endpunkt iwwerpréiwen /metrics fir nei Donnéeën. Déi selwecht kann gemaach ginn, zum Beispill, fir Logbicher, benotzt Loki.

Et gi vill aner Beispiller vun Extensibilitéit:

  • Laf eng Jenkins Aarbecht mat engem Hook, a Consul iwwerwaacht d'Redeployment vun der Nomad Aarbecht wann d'Servicekonfiguratioun ännert.
  • Ceph füügt e verdeelt Dateiesystem un Nomad.
  • fabio fir Belaaschtung.

All dëst erlaabt organesch entwéckelen Infrastruktur ouni speziell Verbindung mam Verkeefer.

Fair Warnung

Kee System ass perfekt. Ech recommandéieren net direkt déi neiste Featuren an d'Produktioun aféieren. Natierlech ginn et Bugs a fehlend Features, awer datselwecht gëllt fir Kubernetes.

Am Verglach mat Kubernetes ass d'Nomad Gemeinschaft net sou grouss. Kubernetes huet scho ronn 75 Engagementer an 000 Mataarbechter, während Nomad ongeféier 2000 Engagementer an 14 Mataarbechter huet. Nomad wäert et schwéier hunn mat der Geschwindegkeet vu Kubernetes ze halen, awer vläicht muss et net! Et ass e méi spezialiséierte System, an déi méi kleng Gemeinschaft bedeit och datt Är Pull Ufro méi wahrscheinlech bemierkt an akzeptéiert gëtt, am Verglach zu Kubernetes.

Summary

Bottom Line: Benotzt Kubernetes net just well all déi aner et maachen. Evaluéiert Är Ufuerderunge suergfälteg a kontrolléiert wéi ee Tool méi profitabel ass.

Wann Dir plangt eng Tonn vun homogene Servicer op enger grousser Infrastruktur z'installéieren, dann ass Kubernetes eng gutt Optioun. Just bewosst vun der zousätzlech Komplexitéit an Operatiounskäschte. E puer Käschten kënne vermeit ginn andeems Dir e verwalteten Kubernetes Ëmfeld benotzt wéi z Google Kubernetes Motor oder Amazon EKS.

Wann Dir just no engem zouverléissege Orchester sicht, deen einfach ze pflegen an erweiterbar ass, firwat net Nomad probéieren? Dir kënnt iwwerrascht sinn wéi wäit dëst Iech bréngt.

Wann de Kubernetes mat engem Auto verglach gëtt, wier Nomad e Scooter. Heiansdo braucht Dir eng Saach an heiansdo brauch Dir eng aner. Béid hunn e Recht ze existéieren.

Source: will.com

Setzt e Commentaire