Ce platformă de orchestrație să alegeți

Nomad și Kubernetes au apărut ca două dintre cele mai populare platforme de orchestrare disponibile pentru sarcinile de lucru dinamice de orchestrare.

Platformele de orchestrare vă ajută să automatizați configurarea, gestionarea și coordonarea mai multor aplicații diferite pe care le rulați.

Ambii Nomad și Kubernetes simplificați implementarea și gestionarea aplicațiilor dvs. containerizate. Cu platforma de orchestrare corectă, vă puteți gestiona eficient diferitele microservicii și containere – de la descoperirea și implementarea serviciilor până la coordonare și scalare.

Înainte de a alege platforma potrivită, să aflăm mai multe despre Nomad și Kubernetes.

Ce este Nomad?

Nomad de la HashiCorp abordează problema orchestrarii volumului de muncă. Având flexibilitate, programează și orchestrează implementarea și gestionarea containerelor. Funcționează atât în ​​cloud, cât și on-premise și acceptă și sarcinile de lucru necontainerizate.

Cu Nomad, obțineți un binar simplu pe care trebuie să îl rulați. Spre deosebire de alte soluții, are o amprentă de resurse foarte mică, care nu ocupă mult calcul de la serverele dvs. Dincolo de containere, puteți rula diverse sarcini de lucru, cum ar fi Windows, Java, Virtual Machines și Docker.

Puteți implementa și gestiona containerele companiei dvs. în producție. În plus, puteți rula aplicațiile necontainerizate pe clusterul Nomad fără a fi nevoie să le containerizați. Folosind Nomad, puteți scala cu ușurință și puteți avea aplicațiile să ruleze geografic mai aproape de locul în care locuiesc clienții. De asemenea, puteți rula în mod eficient joburi în loturi de scurtă durată.

Nomad vine în două versiuni – ediția comunitară și ediția Enterprise. The Ediția comunitară este gratuit și vă permite să vă gestionați singur clusterul Nomad. În 15 minute, îl puteți rula local sau în mediul dvs. cloud. Între timp, cel Enterprise Edition oferă suport și funcții suplimentare, cum ar fi colaborarea, operațiunile și guvernanța.

Ce este Kubernetes?

Kubernetes este o platformă de orchestrare care este extensibilă, portabilă și foarte eficientă. Cunoscut și sub numele de K8s, a fost dezvoltat inițial de Google. În prezent, este gestionat de Cloud Native Computing Foundation sau CNCF și este cea mai populară platformă de orchestrare.

Cu Kubernetes, vă puteți muta eficient sarcina de lucru oriunde este necesar – fie că este vorba despre modul on-premise, cloud public sau hibrid. Acesta își propune să ofere toate instrumentele posibile de care ați putea avea nevoie pentru a vă rezolva nevoile de orchestrare și de gestionare a infrastructurii.

Este de departe cea mai populară platformă de orchestrație. Furnizori de top de servicii cloud precum Amazon Web Service și Google Cloud Platform oferă servicii Kubernetes gestionate – Amazon Elastic Kubernetes Service (AWS EKS) și, respectiv, Google Kubernetes Engine (GKE).

Citește și: Noțiuni introductive cu Kubernetes: o introducere pentru începători

Dar pe care ar trebui să o alegeți pentru cerințele platformei dvs. de orchestrare? Să aflăm comparând cele două.

Nomad vs. Kubernetes

#1. Instalare

Deoarece primul pas pentru utilizarea majorității instrumentelor și tehnologiilor software este instalarea, ușurința acestuia joacă un rol important. Când alegeți între Nomad și Kubernetes, ați dori să vă uitați la cât de ușor este să începeți cu ele.

Nomad

Pentru Nomad, obțineți un binar pre-compilat sau un pachet pe care trebuie să îl instalați. Pentru instalarea manuală pe computerul local, puteți descărca și instalați binarul oficial. Dacă sunteți pe Linux, puteți instala pachetul oficial Linux. În orice caz, după post-instalare, tot ce trebuie să faci este să instalezi pluginurile CNI (Container Network Interface) direct din linia ta de comandă.

Este și mai simplu dacă instalați pe MacOS sau Windows folosind instrumente de gestionare a pachetelor precum Homebrew și, respectiv, Chocolatey. Cu o singură comandă, instalarea dvs. ar fi completă, inclusiv pluginurile CNI.

  Cum să setați un domeniu personalizat pentru profilul dvs. Bluesky

Kubernetes

Când vine vorba de Kubernetes, există diferite componente și clienți pe care îi puteți instala în funcție de nevoile dvs. Primești binare pentru fiecare. Are diferite imagini de container pentru diferite runtime și arhitecturi de sistem.

Puteți verifica depozitul oficial pentru binarul oficial care se potrivește cu platforma dvs., fie că este Darwin, Linux sau Windows, și arhitectura sistemului dumneavoastră. Odată ce ați terminat de instalat imaginea corectă a containerului, veți avea nevoie de kubectl – instrumentul de linie de comandă care vă permite să interacționați cu containerele.

#2. Scalabilitate

Pentru sarcinile de lucru ale containerelor, scalabilitatea este un factor important. Acesta determină capacitatea sistemului dvs. de a face față sarcinilor dvs. de lucru în creștere. Pe scurt, dacă aveți nevoie de mai multă putere de calcul, cadrul dvs. de orchestrare ar trebui să poată adăuga cu ușurință noi resurse.

Nomad

S-a dovedit că Nomad rulează clustere care depășesc 10.000 de noduri într-un mediu de producție. În 2020, Nomad a finalizat un test de stres cu 2 milioane de containere docker pe 6.100 de gazde. Acesta a cuprins peste 10 regiuni AWS diferite și a funcționat timp de 22 de minute. Acest lucru a depășit succesul lor anterior 1 milion de containere.

De asemenea, obțineți autoscaling orizontal cu Nomad Autoscaler. Puteți rula acest lucru ca un proces separat atunci când este necesar.

Kubernetes

Începând cu versiunea 1.28, Kubernetes vă poate permite să vă scalați clusterul până la 5.000 de noduri. Puteți rula un total de 150.000 de capsule sau 300.000 de containere în total.

Odată cu scalabilitatea crescută, menținerea unui cluster Kubernetes este mai complicată atunci când îl comparați cu gestionarea clusterului Nomad. Nomad vă oferă avantaj față de Kubernetes cu numărul total de noduri pe care le puteți rula.

#3. Performanţă

Atunci când alegeți o platformă de orchestrare, ar trebui să urmăriți un echilibru între caracteristici și performanță. Performanța unei platforme de orchestrare determină, de asemenea, câte resurse de sistem vei folosi.

Nomad

Nomad are o amprentă mică de resurse datorită abordării sale unice binare. De asemenea, evitați instalarea de servicii separate pentru a vă pune în funcțiune platforma de orchestrare. Prin urmare, ajungeți să consumați mai puțin CPU și memorie pe nodurile dvs., ceea ce duce la o suprasolicitare mai mică și o performanță mai bună.

Este foarte adaptabil și poate face față diferitelor sarcini de lucru, fie că este on-prem sau cloud. Datorită simplității, rezistenței și eficienței sale, veți obține un avantaj în menținerea performanței pe măsură ce dimensiunea clusterului dvs. crește.

Kubernetes

Kubernetes este foarte optimizat pentru încărcături de lucru în containere. Dacă rulați o flotă de microservicii bazate pe containere, atunci Kubernetes excelează în gestionarea acestora. Cu capabilitățile sale extinse de rețea și gama largă de integrări, vă puteți accelera și ajusta nevoile de orchestrare.

Datorită setului său extins de caracteristici și configurații, Kubernetes utilizează mai multe resurse de sistem. Pe măsură ce dimensiunea clusterului dvs. crește, este posibil să vă confruntați cu cheltuieli suplimentare și cu complexitate în gestionarea acestuia.

#4. Rețele

Rețeaua este un aspect important atunci când vine vorba de orchestrarea containerelor. Acesta determină modul în care nodurile dvs. se pot localiza și vorbi între ele.

Nomad

Fiind foarte concentrat pe orchestrarea volumului de muncă, Nomad abia atinge rețelele și încearcă să modifice lucrurile cât mai puțin posibil.

În loc să se bazeze pe infrastructură, Nomad lucrează cu configurații. Obțineți informațiile de care aveți nevoie direct din configurație, mai degrabă decât să rulați componente suplimentare, cum ar fi servere DNS sau echilibrare de încărcare. Unitatea de bază de planificare în Nomad, numită Alocări, poate solicita porturi folosind blocul de rețea.

Kubernetes

Când vine vorba de Kubernetes, rețeaua este un pilon central. Puteți controla următoarele aspecte – comunicarea container-la-container prin localhost, comunicarea pod-la-pod, comunicarea pod-la-serviciu și comunicarea eternă-la-serviciu.

  Cum să adaugi prieteni în Spotify

În comparație cu porturile dinamice din Nomad, Kubernetes adoptă o abordare diferită. Obțineți API-ul Service ca o abstractizare pentru a expune un grup de Pod-uri în rețea

#5. Cerințe

Dacă rulați platforma de orchestrare la scară, atunci cerințele de sistem vor depinde de dimensiunea clusterului și de sarcinile de lucru pe care le executați. În afară de CPU și memorie, veți avea nevoie și de resurse de rețea.

Nomad

Pentru serverele de producție, este recomandabil să rulați pe mașini mari. Este bine ca fiecare instanță de server să aibă între 4-8 nuclee CPU, 16-32 GB+ de memorie și 40-80 GB+ de disc rapid. De asemenea, ar trebui să vă asigurați o lățime de bandă semnificativă a rețelei.

Dacă utilizați un firewall, atunci trebuie să vă asigurați că cele 3 porturi pe care Nomad sunt permise. Cele 3 porturi sunt: ​​HTTP API (implicit 4646) utilizat de servere și clienți, RPC (implicit 4647) utilizat pentru comunicația internă și Serf WAN (implicit 4648) utilizat de servere pentru a vorbi cu alte servere.

Kubernetes

Clusterele Kubernetes pot deveni foarte complexe atunci când rulează în medii de producție foarte containerizate. Cu toate acestea, este recomandabil să păstrați fiecare nod cu minim 2-4 nuclee CPU și 8-16 GB RAM.

Pentru clustere mari, este posibil să aveți nevoie de mai multe resurse per nod. În plus, trebuie să vă asigurați că aveți suficientă lățime de bandă de rețea.

În timp ce Nomad și Kubernetes se pot extinde pentru a se potrivi cerințelor dvs., un cluster Kubernetes ar ocupa mai multe resurse comparativ.

#6. Codificare

Ușurința codificării determină cât de eficient puteți interacționa cu cadrul pe care îl alegeți. În afară de definirea platformei și a locurilor de muncă, va trebui să învățați și comenzile CLI pentru a interacționa cu instrumentul din linia de comandă.

Nomad

Limbajul de configurare HCL sau HashiCorp este limbajul principal de configurare folosit în Nomad. HCL își propune să atingă un echilibru între citibil de om și ușor de utilizat. Puteți scrie specificațiile postului folosind aceasta, inclusiv sarcinile, constrângerile și dependențele pentru aplicația și serviciile dvs.

În plus, va trebui să învățați și comenzile CLI pentru instrumentul de linie de comandă Nomad. Acest lucru vă permite să interacționați cu clusterul dvs. de nomazi și să faceți configurații.

Kubernetes

În loc să vă bazați pe o altă limbă, puteți configura Kubernetes folosind fișiere YAML. De asemenea, puteți utiliza JSON. Aceste fișiere de configurare vă permit să descrieți cu ușurință cum ar trebui să ruleze aplicația dvs., inclusiv specificațiile pentru poduri, servicii, implementări și alte resurse.

Când rulați aplicații Kubernetes complexe, Helm este un manager de pachete pentru Kubernetes care vă permite să definiți, să instalați și să actualizați chiar și aplicații Kubernetes complexe. Diagramele Helm sunt scrise în YAML și pot include șabloane și fișiere cu valori pentru a personaliza implementările.

Veți folosi instrumentul de linie de comandă kubectl pentru a interacționa cu clusterul dvs. Kubernetes. Aceasta implică rularea diferitelor comenzi pentru a crea, modifica și gestiona resursele Kubernetes.

#7. Integrare

Platformele de orchestrare vin cu propria lor serie de integrări pe care le acceptă. De asemenea, puteți găsi mai multe integrări terță parte pe care le puteți adăuga pentru a crește setul de caracteristici.

Nomad

Cu Nomad, vă puteți integra în mod activ cu diverse instrumente și tehnologii. Conectați-vă fără probleme cu Docker și alte durate de rulare a containerelor, facilitând implementarea aplicațiilor în containere. Pentru furnizarea infrastructurii, puteți utiliza integrarea Terraform și puteți simplifica crearea resurselor.

Făcând parte din HashiCrop, Nomad vă permite, de asemenea, să colaborați cu HashiCorp Consul pentru descoperirea serviciilor și verificările de sănătate, în timp ce HashiCorp Vault asigură gestionarea securizată a secretelor. Nevoile dvs. de monitorizare sunt îndeplinite prin integrări precum Prometheus, Grafana și ELK Stack. În plus, Nomad se potrivește perfect în conductele dumneavoastră CI/CD, permițând implementarea automată a aplicațiilor.

  Cum să obțineți o adresă IP columbiană din orice țară

Kubernetes

Fiind o soluție testată în timp, Kubernetes oferă o listă lungă de tehnologii cu care să se integreze. Vă puteți conecta cu Docker pentru implementări de containere. Pentru nevoile dvs. de rețea, puteți alege soluții precum Calico sau Cilium. Opțiunile de stocare precum Ceph și furnizorii nativi din cloud precum AWS EKS (Amazon Elastic Kubernetes Service) și Google GKE (Google Kubernetes Engine) vă gestionează în mod activ stocarea persistentă. Soluțiile cloud-native vă oferă și servicii suplimentare.

Dacă doriți să vă susțineți încărcăturile de lucru fără server, atunci Kubernetes vă acoperă. Vă puteți extinde Kubernetes-ul cu cadre fără server, cum ar fi Knative și KEDA (Scalarea automată bazată pe evenimente bazată pe Kubernetes).

#8. GUI

Poate doriți să vă îndepărtați de linia de comandă și de cod uneori și să vizualizați platforma pe care o rulați. Având un GUI sau o interfață grafică cu utilizatorul, vă permite să faceți asta.

Nomad

Nomad oferă o interfață de utilizare web încorporată ca parte a binarului. Când instalați Nomad și rulați serverul, obțineți GUI împreună cu API și CLI. Aveți nevoie de zero configurație pentru a începe să utilizați interfața de utilizare și să vă inspectați clusterul.

Odată ce ați pornit serverul Nomad, puteți introduce adresa serverului în browserul dvs. web. Apoi, veți fi redirecționat către interfața de utilizare web. Există, de asemenea, o subcomandă ui, astfel încât să puteți vizita pagina web necesară direct din interfața liniei de comandă.

Kubernetes

Kubernetes nu vine cu o interfață grafică în mod implicit. Cu toate acestea, îl puteți instala conform cerințelor dvs. Kubernetes însuși oferă o interfață de utilizare oficială numită Dashboard. Deși nu este instalat implicit, îl puteți pune în funcțiune folosind instrumentul kubectl. Folosind Tabloul de bord, puteți obține o prezentare generală a clusterului dvs.

Puteți implementa aplicații containerizate într-un cluster Kubernetes, puteți gestiona și depana. Furnizorii nativi din cloud, cum ar fi AWS EKS și Google GKE, oferă propriile instrumente de UI. Există, de asemenea, instrumente terțe pe care le puteți rula.

Nomad vs. Kubernetes: tabel rezumat

CaracteristicăNomadKubernetesInstalațieUn singur binar precompilatDiferite binare pentru diferite componente și cliențiScalabilitatePoate rula 10.000 de noduri și 2 milioane de containere5.000 de noduri și 300.000 de containere în totalPerformanțăSimplu și eficient cu o amprentă mai mică a resurselorSet extins de caracteristici, dar folosește o configurație de rețea și o alocare mai dinamică a resurselor controlate. nu se bazează pe porturi dinamiceCerințeCerințe de sistem mai mici pentru un cluster mai mareUn cluster mai mare are nevoie de mai multe surse de sistemCodareAre o gamă foarte largă de integrări și instrumente disponibilePoate folosi limbi existente precum YAML și JSONIntegrareAre integrări oficiale și terță parteAre o gamă foarte largă de integrări și instrumente disponibileGUIBilt- în interfața de utilizare web disponibilă. Trebuie instalat separat

Alegeți platforma potrivită pentru nevoile dvs. de orchestrare

Între Nomad și Kubernetes, alegerea unei platforme de orchestrare depinde de cerințele și prioritățile dumneavoastră specifice. Ambele platforme acceptă diverse cazuri de utilizare – programarea implementării, lansările și recuperările automate și descoperirea și gestionarea clusterelor.

Dacă acordați prioritate simplității și aveți un volum mic de lucru, Nomad ar putea fi alegerea mai bună pentru dvs. Cu cerințele sale unice binare și minime de resurse, Nomad îl face mai ușor de configurat și de operat. În plus, vă puteți scala clusterul pentru a accepta un număr mare de noduri.

Pe de altă parte, dacă aveți nevoie de funcții extinse, control fin și o gamă largă de integrări, atunci Kubernetes este răspunsul dvs. Oferă o soluție robustă pentru sarcinile de lucru în containere și se poate integra perfect cu diverse instrumente și tehnologii. De asemenea, puteți profita de soluțiile gestionate oferite de AWS și Google Cloud.

Luați în considerare și alte domenii precum necesitatea de a învăța o nouă limbă (HCL) în cazul Nomad, în timp ce configurațiile Kubernetes funcționează cu YAML sau JSON. În plus, este posibil să aveți nevoie de o interfață de utilizare web pentru ușurința dvs. de utilizare.

Luați în considerare resursele de sistem disponibile pe care le aveți și costurile asociate cu acestea. Alegerea platformei tale de orchestrare între Nomad și Kubernetes ar trebui să se bazeze pe nevoile, expertiza și resursele tale.

Apoi, consultați cele mai bune practici Kubernetes pentru o mai bună orchestrare a containerelor.