Hva er Kubernetes Nodeselector?
En noderelektor er en planleggingsbegrensning i Kubernetes som spesifiserer et kart i form av en nøkkel: Verdipar tilpassede POD -velgere og nodetiketter brukes til å definere nøkkelen, Value Pair. Nodeselektor merket på noden skal samsvare med nøkkelen: Verdipar slik at en viss pod kan kjøres på en bestemt node. For å planlegge pod, brukes etiketter på noder, og noderelektorer brukes på pods. OpenShift Container -plattformen planlegger belgene på nodene ved hjelp av noderelektoren ved å matche etikettene.
Dessuten brukes etiketter og noderelektor til å kontrollere hvilken pod som skal planlegges på en spesifikk node. Når du bruker etikettene og noderelektoren, må du merke noden først slik at belgene ikke blir descheduled og legger deretter nodeselector til pod. For å plassere en viss pod på en viss node, brukes noderelektoren, mens klyngen-brede noderelektor lar deg plassere en ny pod på en viss node som er til stede hvor som helst i klyngen. Project Nodeselector brukes til å sette den nye poden på en viss node i prosjektet.
Forutsetninger
For å bruke Kubernetes Nodeselector, må du sørge for at du har følgende verktøy installert i systemet ditt:
Nå flytter vi til neste avsnitt hvor vi vil demonstrere hvordan du kan bruke noderelektor på en Kubernetes -klynge.
Nodeselector -konfigurasjon i Kubernetes
En pod kan begrenses til å bare være i stand til å kjøre på en spesifikk node ved å bruke noderelektoren. Nodeselector er en begrensning av nodevalg som er spesifisert i POD -spesifikasjonen PODSPEC. Med enkle ord er Nodeselector en planleggingsfunksjon som gir deg kontroll over poden for å planlegge poden på en node som har den samme etiketten spesifisert av brukeren for Nodeselector -etiketten. For å bruke eller konfigurere noderelektoren i Kubernetes, trenger du Minikube -klyngen. Start Minikube -klyngen med kommandoen gitt nedenfor:
> Minikube Start
Nå som Minikube -klyngen er startet med hell, kan vi starte implementeringen av konfigurasjonen av nodeselector i Kubernetes. I dette dokumentet vil vi guide deg til å lage to distribusjoner, den ene er uten noen noderelektor og den andre er med Nodeselector.
Konfigurer distribusjon uten noderelektor
Først vil vi hente ut detaljene i alle nodene som for tiden er aktive i klyngen ved å bruke kommandoen gitt nedenfor:
> Kubectl Få noder
Denne kommandoen vil liste opp alle nodene som er til stede i klyngen med detaljene om navn, status, roller, alder og versjonsparametere. Se prøveutgangen gitt nedenfor:
Nå vil vi sjekke hvilke taints som er aktive på nodene i klyngen, slik at vi kan planlegge å distribuere belgene på noden deretter. Kommandoen gitt nedenfor skal brukes for å få beskrivelsen av smaken som brukes på noden. Det skal ikke være noen taints aktive på noden slik at belgene enkelt kan distribueres på den. Så la oss se hvilke taints som er aktive i klyngen ved å utføre følgende kommando:
> Kubectl Beskriv noder Minikube | grep taint
Fra utdataene som er gitt ovenfor, kan vi se at det ikke blir brukt noen taint på noden, akkurat hva vi trenger for å distribuere belgene på noden. Nå er neste trinn å lage en distribusjon uten å spesifisere noen noderelektor i den. For den saks skyld vil vi bruke en YAML -fil der vi lagrer noderelektor -konfigurasjonen. Kommandoen som er vedlagt her vil bli brukt til å opprette YAML -filen:
> Nano Deplond.Yaml
Her prøver vi å lage en YAML -fil som heter Deplond.yaml med nano -kommandoen.
Når vi utfører denne kommandoen, vil vi ha en deplond.YAML -fil der vi lagrer distribusjonskonfigurasjonen. Se distribusjonskonfigurasjonen gitt nedenfor:
Nå oppretter vi distribusjonen ved å bruke distribusjonskonfigurasjonsfilen. Deplond.YAML -fil vil bli brukt sammen med 'Create' -kommandoen for å opprette konfigurasjonen. Se den komplette kommandoen gitt nedenfor:
> Kubectl Create -F Deplond.Yaml
Som vist ovenfor, er distribusjonen blitt opprettet, men uten noderelektor. La oss nå sjekke nodene som allerede er tilgjengelige i klyngen med kommandoen gitt nedenfor:
> kubectl få pods
Dette vil liste opp alle podene som er tilgjengelige i klyngen. Se utgangen gitt nedenfor:
Deretter må vi endre tellingen av kopier som kan gjøres ved å redigere deplondet.YAML -fil. Bare åpne tappen.YAML -fil og rediger verdien av kopier. Her endrer vi kopiene: 3 til kopier: 30. Se modifiseringen i øyeblikksbildet gitt nedenfor:
Nå må endringene brukes på distribusjonen fra distribusjonsdefinisjonsfilen, og det kan gjøres ved å bruke følgende kommando:
> KUBECTL Søk -f Deplond.Yaml
La oss nå sjekke flere detaljer om belgene ved å bruke -O -brede alternativet:
> Kubectl Get Pods -o Wide
Fra utdataene som er gitt ovenfor, kan vi se at de nye nodene har blitt opprettet og planlagt på noden siden det ikke er noen taint aktiv på noden vi bruker fra klyngen. Derfor trenger vi spesifikt å aktivere en taint for å sikre at belgene bare blir planlagt på ønsket node. For det må vi lage etiketten på masternoden:
> Kubectl Label Nodes Master On-Master = True
Konfigurer distribusjon med noderelektor
For å konfigurere distribusjonen med en noderelektor, vil vi følge den samme prosessen som har fulgt for konfigurasjonen av distribusjonen uten noen noderelektor.
Først oppretter vi en YAML -fil med 'Nano' -kommandoen der vi trenger å lagre konfigurasjonen av distribusjonen.
> Nano nd.Yaml
Lagre distribusjonsdefinisjonen i filen. Du kan sammenligne begge konfigurasjonsfilene for å se forskjellen mellom konfigurasjonsdefinisjonene.
Lag nå distribusjonen av noderelektoren med kommandoen gitt nedenfor:
> kubectl opprette -f nd.Yaml
Få detaljene i belgene ved å bruke den brede flagget:
> Kubectl Get Pods -o Wide
Fra utgangen gitt ovenfor kan vi legge merke til at belgene blir distribuert på Minikube -noden. La oss endre tellingen av kopier for å sjekke hvor de nye belgene blir distribuert i klyngen.
Bruk de nye endringene på distribusjonen ved å bruke følgende kommando:
> Kubectl gjelder -f nd.Yaml
Konklusjon
I denne artikkelen hadde vi en oversikt over Nodeselector -konfigurasjonsbegrensningen i Kubernetes. Vi lærte hva en noderelektor er i Kubernetes, og ved hjelp av et enkelt scenario lærte vi hvordan vi lager en distribusjon med og uten noderelektorkonfigurasjonsbegrensninger. Du kan henvise til denne artikkelen hvis du er ny i Nodeselector -konseptet og finne all relevant informasjon.