Kako uporabljati Kubernetes nodeSelector

Kako Uporabljati Kubernetes Nodeselector



Gruča Kubernetes uporablja omejitve razporejanja, kot so: madeži, oznake, tolerance in izbirnik vozlišč za ločevanje in razporejanje delovne obremenitve na različnih področjih vozlišč. Omejitve razporejanja so pogosta zahteva v Kubernetesu za upravljanje infrastrukture. V tem članku se bomo osredotočili na omejitve razporejanja nodeSelector. Raziskovali bomo, kaj je nodeSelector, kako deluje in kako ga je mogoče uporabiti v Kubernetesu. Predstavili vam bomo preprost scenarij, ki vam bo pomagal razumeti, kako učinkovito uporabljati Kubernetes nodeSelector.

Kaj je Kubernetes nodeSelector?

NodeSelector je omejitev razporejanja v Kubernetesu, ki določa zemljevid v obliki ključa: za definiranje para ključ in vrednost se uporabljajo izbirniki podov po meri in oznake vozlišč. NodeSelector, označen na vozlišču, se mora ujemati s parom ključ: vrednost, tako da je mogoče določen pod zagnati na določenem vozlišču. Za načrtovanje sklopa se na vozliščih uporabljajo oznake, na sklopih pa se uporabljajo izbirniki vozlišč. OpenShift Container Platform načrtuje pode na vozliščih z uporabo nodeSelectorja tako, da se ujema z oznakami.

Poleg tega se oznake in izbirnik vozlišč uporabljajo za nadzor, kateri pod naj bo načrtovan na določenem vozlišču. Ko uporabljate oznake in izbirnik vozlišč, najprej označite vozlišče, tako da podov ne bodo preklicali, nato pa dodajte izbirnik vozlišč v pod. Za postavitev določenega poda na določeno vozlišče se uporabi nodeSelector, medtem ko vam nodeSelector za celotno gručo omogoča, da postavite nov pod na določeno vozlišče, ki je prisotno kjer koli v gruči. Project nodeSelector se uporablja za postavitev novega sklopa na določeno vozlišče v projektu.







Predpogoji

Če želite uporabljati Kubernetes nodeSelector, se prepričajte, da imate v sistemu nameščena naslednja orodja:



  • Ubuntu 20.04 ali katero koli drugo najnovejšo različico
  • Grozd Minikube z najmanj enim delovnim vozliščem
  • Orodje ukazne vrstice Kubectl

Zdaj prehajamo na naslednji razdelek, kjer bomo prikazali, kako lahko uporabite nodeSelector v gruči Kubernetes.



Konfiguracija nodeSelector v Kubernetesu

Pod je mogoče omejiti, da se lahko izvaja samo na določenem vozlišču z uporabo nodeSelector. NodeSelector je omejitev izbire vozlišča, ki je podana v specifikaciji PodSpec sklopa. Preprosto povedano, nodeSelector je funkcija razporejanja, ki vam omogoča nadzor nad podom za razporejanje poda na vozlišču z isto oznako, ki jo je določil uporabnik za oznako nodeSelector. Če želite uporabiti ali konfigurirati nodeSelector v Kubernetesu, potrebujete gručo minikube. Zaženite gručo minikube s spodnjim ukazom:





> zaženi minikube

Zdaj, ko je bila gruča minikube uspešno zagnana, lahko začnemo izvajati konfiguracijo nodeSelectorja v Kubernetesu. V tem dokumentu vas bomo vodili do ustvarjanja dveh razmestitev, ena je brez izbirnika vozlišč, druga pa z izbirnikom vozlišč.



Konfigurirajte razmestitev brez izbirnika vozlišč

Najprej bomo izvlekli podrobnosti vseh vozlišč, ki so trenutno aktivna v gruči, z uporabo spodnjega ukaza:

> kubectl pridobi vozlišča

Ta ukaz bo prikazal seznam vseh vozlišč, prisotnih v gruči, s podrobnostmi o imenu, statusu, vlogah, starosti in parametrih različice. Oglejte si spodnji vzorčni rezultat:

Zdaj bomo preverili, kateri madeži so aktivni na vozliščih v gruči, da bomo lahko ustrezno načrtovali namestitev podov na vozlišču. Spodnji ukaz je treba uporabiti za pridobitev opisa madežev, uporabljenih na vozlišču. Na vozlišču ne sme biti aktivnih madežev, tako da je mogoče stroke enostavno namestiti nanj. Torej, poglejmo, kateri madeži so aktivni v gruči, tako da izvedemo naslednji ukaz:

> kubectl opisuje vozlišča minikube | prijem madež

Iz zgoraj navedenega izhoda lahko vidimo, da na vozlišču ni nanešenega madeža, ampak točno toliko, kot ga potrebujemo za namestitev podov na vozlišču. Zdaj je naslednji korak ustvariti razmestitev, ne da bi v njej določili kateri koli izbirnik vozlišč. Glede na to bomo uporabili datoteko YAML, kamor bomo shranili konfiguracijo nodeSelector. Tukaj priloženi ukaz bo uporabljen za ustvarjanje datoteke YAML:

> nano deplond.yaml

Tukaj poskušamo z ukazom nano ustvariti datoteko YAML z imenom deplond.yaml.

Po izvedbi tega ukaza bomo imeli datoteko deplond.yaml, kamor bomo shranili konfiguracijo uvajanja. Oglejte si spodaj navedeno konfiguracijo uvajanja:

Zdaj bomo ustvarili uvajanje z uporabo konfiguracijske datoteke uvajanja. Datoteka deplond.yaml bo uporabljena skupaj z ukazom 'create' za ustvarjanje konfiguracije. Oglejte si celoten ukaz spodaj:

> kubectl ustvari -f deplond.yaml

Kot je prikazano zgoraj, je bila uvedba uspešno ustvarjena, vendar brez nodeSelectorja. Zdaj pa preverimo vozlišča, ki so že na voljo v gruči, s spodnjim ukazom:

> kubectl dobiti pods

To bo prikazalo seznam vseh podov, ki so na voljo v gruči. Oglejte si spodnji rezultat:

  Samodejno ustvarjen besedilni opis

Nato moramo spremeniti število replik, kar lahko storimo z urejanjem datoteke deplond.yaml. Samo odprite datoteko deplond.yaml in uredite vrednost replik. Tukaj spreminjamo replike: 3 v replike: 30. Oglejte si spremembo na spodnjem posnetku:

Zdaj je treba spremembe uporabiti za uvajanje iz datoteke z definicijo uvajanja, kar lahko storite z naslednjim ukazom:

> kubectl uporabite -f deplond.yaml

  Samodejno ustvarjen besedilni opis

Zdaj pa preverimo več podrobnosti o podih z uporabo možnosti -o wide:

> kubectl dobiti pods -The široka

  Samodejno ustvarjen besedilni opis

Iz zgornjega izhoda lahko vidimo, da so bila nova vozlišča ustvarjena in načrtovana v vozlišču, ker na vozlišču, ki ga uporabljamo iz gruče, ni aktivnega madeža. Zato moramo posebej aktivirati madež, da zagotovimo, da so podi načrtovani samo na želenem vozlišču. Za to moramo ustvariti oznako na glavnem vozlišču:

> kubectl label nodes master on-master= prav

Konfigurirajte razmestitev z nodeSelector

Za konfiguracijo uvajanja z izbirnikom vozlišč bomo sledili istemu postopku, ki je sledil za konfiguracijo uvajanja brez izbirnika vozlišč.

Najprej bomo ustvarili datoteko YAML z ukazom 'nano', kamor moramo shraniti konfiguracijo uvajanja.

> nano nd.yaml

Zdaj shranite definicijo razmestitve v datoteko. Obe konfiguracijski datoteki lahko primerjate, da vidite razliko med konfiguracijskima definicijama.

Zdaj ustvarite razmestitev nodeSelectorja s spodnjim ukazom:

> kubectl ustvari -f nd.yaml

Pridobite podrobnosti o sklopih z uporabo široke zastavice -o:

> kubectl dobiti pods -The široka

  Besedilo, koledar Opis samodejno ustvarjen s srednjo stopnjo zanesljivosti

Iz zgoraj navedenega izhoda lahko opazimo, da so podi nameščeni na vozlišču minikube. Spremenimo število replik, da preverimo, kje so v gruči nameščeni novi sklopi.

Uporabite nove spremembe pri razmestitvi z naslednjim ukazom:

> kubectl uporabite -f nd.yaml

  Samodejno ustvarjen besedilni opis

Zaključek

V tem članku smo imeli pregled konfiguracijske omejitve nodeSelector v Kubernetesu. Naučili smo se, kaj je nodeSelector v Kubernetesu, in s pomočjo preprostega scenarija smo se naučili, kako ustvariti uvajanje z in brez konfiguracijskih omejitev nodeSelector. Če še niste spoznali koncepta nodeSelector, si lahko ogledate ta članek in poiščete vse ustrezne informacije.