Kako koristiti Kubernetes nodeSelector

Kako Koristiti Kubernetes Nodeselector



Kubernetes klaster koristi ograničenja raspoređivanja kao što su: kvarovi, oznake, tolerancije i odabirač čvorova za odvajanje i raspored radnog opterećenja na različitim skupovima čvorova. Ograničenja rasporeda uobičajeni su zahtjev u Kubernetesu za upravljanje infrastrukturom. U ovom ćemo se članku usredotočiti na ograničenja raspoređivanja nodeSelektora. Istraživat ćemo što je nodeSelector, kako funkcionira i kako se može koristiti u Kubernetesu. Predstavit ćemo jednostavan scenarij koji će vam pomoći da shvatite kako učinkovito koristiti Kubernetes nodeSelector.

Što je Kubernetes nodeSelector?

NodeSelector je ograničenje raspoređivanja u Kubernetesu koje određuje mapu u obliku ključa: prilagođeni selektori podova para vrijednosti i oznake čvorova koriste se za definiranje para ključ, vrijednost. NodeSelector označen na čvoru trebao bi odgovarati paru ključ:vrijednost kako bi se određena grupa mogla pokrenuti na određenom čvoru. Za raspoređivanje modula, oznake se koriste na čvorovima, a selektori čvorova koriste se na modulima. OpenShift Container Platform raspoređuje podove na čvorovima pomoću nodeSelector-a usklađivanjem oznaka.

Štoviše, oznake i nodeSelector koriste se za kontrolu koji pod će biti zakazan na određenom čvoru. Kada koristite labele i nodeSelector, prvo označite čvor kako se moduli ne bi poništili, a zatim dodajte nodeSelector u modul. Za postavljanje određenog pod-a na određeni čvor koristi se nodeSelector, dok vam nodeSelector za cijeli klaster omogućuje postavljanje novog pod-a na određeni čvor prisutan bilo gdje u klasteru. Project nodeSelector koristi se za postavljanje novog modula na određeni čvor u projektu.







Preduvjeti

Da biste koristili Kubernetes nodeSelector, provjerite imate li sljedeće alate instalirane u svom sustavu:



  • Ubuntu 20.04 ili bilo koja druga najnovija verzija
  • Minikube klaster s minimalno jednim radnim čvorom
  • Alat za naredbeni redak Kubectl

Sada prelazimo na sljedeći odjeljak gdje ćemo demonstrirati kako možete koristiti nodeSelector na Kubernetes klasteru.



Konfiguracija selektora čvorova u Kubernetesu

Pod se može ograničiti tako da se može izvoditi samo na određenom čvoru korištenjem nodeSelector-a. NodeSelector je ograničenje odabira čvora koje je navedeno u specifikaciji PodSpec. Jednostavnim riječima, nodeSelector je značajka raspoređivanja koja vam daje kontrolu nad modulom za planiranje modula na čvoru koji ima istu oznaku koju je odredio korisnik za oznaku nodeSelector. Da biste koristili ili konfigurirali nodeSelector u Kubernetesu, potreban vam je minikube klaster. Pokrenite minikube klaster naredbom danom u nastavku:





> pokrenite minikube

Sada kada je minikube klaster uspješno pokrenut, možemo započeti s implementacijom konfiguracije nodeSelektora u Kubernetesu. U ovom dokumentu uputit ćemo vas da izradite dvije implementacije, jedna je bez selektora čvorova, a druga je s selektorom čvorova.



Konfigurirajte implementaciju bez nodeSelektora

Prvo ćemo izdvojiti detalje svih čvorova koji su trenutno aktivni u klasteru pomoću naredbe dane u nastavku:

> kubectl dobiti čvorove

Ova naredba će ispisati sve čvorove prisutne u klasteru s pojedinostima imena, statusa, uloga, starosti i parametara verzije. Pogledajte primjer izlaza dat u nastavku:

Sada ćemo provjeriti koja su oštećenja aktivna na čvorovima u klasteru kako bismo u skladu s tim mogli planirati implementaciju podova na čvoru. Naredba navedena u nastavku koristi se za dobivanje opisa kvarova primijenjenih na čvor. Na čvoru ne bi trebalo biti aktivnih kvarova kako bi se kapsule mogle lako rasporediti na njemu. Dakle, da vidimo koji su kvarovi aktivni u klasteru izvršavanjem sljedeće naredbe:

> kubectl opisuju čvorove minikube | zahvat mrlja

Iz gore danog izlaza možemo vidjeti da na čvor nema primijenjene mrlje, već upravo onoliko koliko nam je potrebno da postavimo mahune na čvor. Sada je sljedeći korak kreiranje implementacije bez navođenja bilo kakvog selektora čvorova u njoj. Što se toga tiče, koristit ćemo YAML datoteku u koju ćemo pohraniti konfiguraciju nodeSelector-a. Ovdje priložena naredba koristit će se za stvaranje YAML datoteke:

> nano deplond.yaml

Ovdje pokušavamo stvoriti YAML datoteku pod nazivom deplond.yaml s naredbom nano.

Nakon izvršenja ove naredbe, imat ćemo deplond.yaml datoteku u koju ćemo pohraniti konfiguraciju implementacije. Pogledajte konfiguraciju implementacije danu u nastavku:

Sada ćemo kreirati implementaciju pomoću konfiguracijske datoteke implementacije. Datoteka deplond.yaml koristit će se zajedno s naredbom 'create' za stvaranje konfiguracije. Pogledajte kompletnu naredbu u nastavku:

> kubectl stvoriti -f deplond.yaml

Kao što je gore prikazano, implementacija je uspješno kreirana, ali bez nodeSelector-a. Sada provjerimo čvorove koji su već dostupni u klasteru s naredbom danom u nastavku:

> kubectl dobiti mahune

Ovo će ispisati sve mahune dostupne u klasteru. Pogledajte izlaz dat u nastavku:

  Tekst Opis automatski generiran

Zatim moramo promijeniti broj replika što se može učiniti uređivanjem datoteke deplond.yaml. Samo otvorite datoteku deplond.yaml i uredite vrijednost replika. Ovdje mijenjamo replike: 3 u replike: 30. Pogledajte modifikaciju na slici ispod:

Sada se promjene moraju primijeniti na implementaciju iz datoteke definicije implementacije, a to se može učiniti pomoću sljedeće naredbe:

> kubectl primijeniti -f deplond.yaml

  Tekst Opis automatski generiran

Sada provjerimo više pojedinosti o podovima pomoću opcije -o wide:

> kubectl dobiti mahune -The širok

  Tekst Opis automatski generiran

Iz gore danog izlaza možemo vidjeti da se novi čvorovi stvaraju i raspoređuju na čvoru budući da na čvoru koji koristimo iz klastera nema aktivne mrlje. Stoga posebno trebamo aktivirati kvar kako bismo osigurali da se podovi zakažu samo na željenom čvoru. Za to moramo stvoriti oznaku na glavnom čvoru:

> kubectl oznaka čvorova master on-master= pravi

Konfigurirajte implementaciju s nodeSelectorom

Da bismo konfigurirali implementaciju s nodeSelektorom, slijedit ćemo isti postupak koji je slijedio za konfiguraciju implementacije bez ikakvog nodeSelektora.

Prvo ćemo izraditi YAML datoteku s naredbom 'nano' u koju trebamo pohraniti konfiguraciju implementacije.

> nano nd.yaml

Sada spremite definiciju postavljanja u datoteku. Možete usporediti obje konfiguracijske datoteke kako biste vidjeli razliku između definicija konfiguracije.

Sada kreirajte implementaciju nodeSelector-a pomoću naredbe dane u nastavku:

> kubectl stvoriti -f nd.yaml

Dobijte pojedinosti o podovima pomoću široke zastavice -o:

> kubectl dobiti mahune -The širok

  Tekst, kalendar Opis automatski generiran sa srednjom pouzdanošću

Iz gore navedenog izlaza možemo primijetiti da se moduli postavljaju na minikube čvor. Promijenimo broj replika kako bismo provjerili gdje se nove jedinice raspoređuju u klasteru.

Primijenite nove promjene na implementaciju pomoću sljedeće naredbe:

> kubectl primijeniti -f nd.yaml

  Tekst Opis automatski generiran

Zaključak

U ovom smo članku imali pregled ograničenja konfiguracije nodeSelector u Kubernetesu. Naučili smo što je nodeSelector u Kubernetesu i uz pomoć jednostavnog scenarija naučili smo kako stvoriti implementaciju sa i bez konfiguracijskih ograničenja nodeSelektora. Možete pogledati ovaj članak ako ste novi u konceptu nodeSelector i pronaći sve relevantne informacije.