Com utilitzar Kubernetes nodeSelector

Com Utilitzar Kubernetes Nodeselector



El clúster de Kubernetes utilitza les restriccions de programació com ara: taques, etiquetes, toleracions i nodeSelector per segregar i programar la càrrega de treball en diferents grups de nodes. Les restriccions de programació són un requisit habitual a Kubernetes per a la gestió de la infraestructura. Ens centrarem en les restriccions de programació de nodeSelector en aquest article. Explorarem què és un nodeSelector, com funciona i com es pot utilitzar a Kubernetes. Presentarem un escenari senzill per ajudar-vos a entendre com utilitzar de manera eficient el nodeSelector de Kubernetes.

Què és Kubernetes nodeSelector?

Un nodeSelector és una restricció de programació a Kubernetes que especifica un mapa en forma de clau: parell de valors, selectors de pod personalitzats i etiquetes de nodes s'utilitzen per definir la clau i el parell de valors. El nodeSelector etiquetat al node hauria de coincidir amb el parell clau: valor perquè un determinat pod es pugui executar en un node específic. Per programar el pod, s'utilitzen etiquetes als nodes i nodeSelectors als pods. L'OpenShift Container Platform programa els pods als nodes mitjançant el nodeSelector fent coincidir les etiquetes.

A més, les etiquetes i nodeSelector s'utilitzen per controlar quin pod s'ha de programar en un node específic. Quan utilitzeu les etiquetes i el nodeSelector, etiqueteu primer el node perquè els pods no es deixin de programar i, a continuació, afegiu el nodeSelector al pod. Per col·locar un pod determinat en un node determinat, s'utilitza el nodeSelector, mentre que el nodeSelector de tot el clúster us permet col·locar un pod nou en un determinat node present a qualsevol lloc del clúster. El projecte nodeSelector s'utilitza per posar el nou pod en un node determinat del projecte.







Requisits previs

Per utilitzar el Kubernetes nodeSelector, assegureu-vos que teniu instal·lades les eines següents al vostre sistema:



  • Ubuntu 20.04 o qualsevol altra versió més recent
  • Clúster Minikube amb un mínim d'un node de treball
  • Eina de línia d'ordres Kubectl

Ara, passem a la següent secció on demostrarem com podeu utilitzar nodeSelector en un clúster de Kubernetes.



Configuració del nodeSelector a Kubernetes

Un pod es pot restringir perquè només es pugui executar en un node específic mitjançant el nodeSelector. El nodeSelector és una restricció de selecció de nodes que s'especifica a l'especificació del pod PodSpec. En paraules senzilles, el nodeSelector és una característica de programació que us permet controlar el pod per programar el pod en un node que tingui la mateixa etiqueta especificada per l'usuari per a l'etiqueta nodeSelector. Per utilitzar o configurar el nodeSelector a Kubernetes, necessiteu el clúster minikube. Inicieu el clúster minikube amb l'ordre que es mostra a continuació:





> iniciar minikube

Ara que el clúster minikube s'ha iniciat amb èxit, podem iniciar la implementació de la configuració del nodeSelector a Kubernetes. En aquest document us guiarem per crear dos desplegaments, un sense cap nodeSelector i l'altre amb el nodeSelector.



Configura el desplegament sense nodeSelector

Primer, extreurem els detalls de tots els nodes que estan actualment actius al clúster mitjançant l'ordre que es mostra a continuació:

> kubectl obté nodes

Aquesta ordre enumerarà tots els nodes presents al clúster amb els detalls del nom, l'estat, els rols, l'edat i els paràmetres de versió. Vegeu la sortida de mostra que es mostra a continuació:

Ara, comprovarem quines taques estan actives als nodes del clúster perquè puguem planificar desplegar els pods al node en conseqüència. L'ordre que es dóna a continuació s'ha d'utilitzar per obtenir la descripció de les taques aplicades al node. No hi hauria d'haver cap contaminació activa al node perquè les beines s'hi puguin desplegar fàcilment. Per tant, vegem quines taques estan actives al clúster executant l'ordre següent:

> kubectl descriu els nodes minikube | agafar Tact

A partir de la sortida anterior, podem veure que no s'aplica cap contaminació al node, exactament el que necessitem per desplegar els pods al node. Ara, el següent pas és crear un desplegament sense especificar-hi cap nodeSelector. Per això, utilitzarem un fitxer YAML on emmagatzemarem la configuració del nodeSelector. L'ordre adjunta aquí s'utilitzarà per a la creació del fitxer YAML:

> nano deplond.yaml

Aquí, estem intentant crear un fitxer YAML anomenat deplond.yaml amb l'ordre nano.

En executar aquesta ordre, tindrem un fitxer deplond.yaml on emmagatzemarem la configuració del desplegament. Vegeu la configuració de desplegament que es mostra a continuació:

Ara, crearem el desplegament mitjançant el fitxer de configuració del desplegament. El fitxer deplond.yaml s'utilitzarà juntament amb l'ordre 'crear' per crear la configuració. Vegeu la comanda completa que es mostra a continuació:

> kubectl crear -f deplond.yaml

Com es mostra a dalt, el desplegament s'ha creat correctament però sense nodeSelector. Ara, comprovem els nodes que ja estan disponibles al clúster amb l'ordre que es mostra a continuació:

> kubectl obtenir beines

Això enumerarà tots els pods disponibles al clúster. Vegeu la sortida que es mostra a continuació:

  Descripció de text generada automàticament

A continuació, hem de canviar el recompte de rèpliques que es pot fer editant el fitxer deplond.yaml. Només cal que obriu el fitxer deplond.yaml i editeu el valor de les rèpliques. Aquí, estem canviant les rèpliques: 3 a rèpliques: 30. Vegeu la modificació a la instantània que es mostra a continuació:

Ara, els canvis s'han d'aplicar al desplegament des del fitxer de definició de desplegament i això es pot fer mitjançant l'ordre següent:

> s'aplica kubectl -f deplond.yaml

  Descripció de text generada automàticament

Ara, comprovem més detalls dels pods utilitzant l'opció -o wide:

> kubectl obtenir beines -El ample

  Descripció de text generada automàticament

A partir de la sortida anterior, podem veure que els nous nodes s'han creat i programat al node, ja que no hi ha cap contaminació activa al node que estem utilitzant des del clúster. Per tant, hem d'activar específicament una contaminació per assegurar-nos que les beines només es programin al node desitjat. Per això, hem de crear l'etiqueta al node mestre:

> kubectl label nodes master on-master= veritat

Configura el desplegament amb nodeSelector

Per configurar el desplegament amb un nodeSelector, seguirem el mateix procés que s'ha seguit per a la configuració del desplegament sense cap nodeSelector.

Primer, crearem un fitxer YAML amb l'ordre 'nano' on hem d'emmagatzemar la configuració del desplegament.

> nano nd.yaml

Ara, deseu la definició de desplegament al fitxer. Podeu comparar els dos fitxers de configuració per veure la diferència entre les definicions de configuració.

Ara, creeu el desplegament del nodeSelector amb l'ordre que es mostra a continuació:

> kubectl crear -f nd.yaml

Obteniu els detalls dels pods utilitzant la bandera -o wide:

> kubectl obtenir beines -El ample

  Text, calendari Descripció generada automàticament amb una confiança mitjana

A partir de la sortida anterior, podem notar que els pods s'estan desplegant al node minikube. Canviem el recompte de rèpliques per comprovar on es despleguen els nous pods al clúster.

Apliqueu els nous canvis al desplegament mitjançant l'ordre següent:

> s'aplica kubectl -f nd.yaml

  Descripció de text generada automàticament

Conclusió

En aquest article, teníem una visió general de la restricció de configuració de nodeSelector a Kubernetes. Vam aprendre què és un nodeSelector a Kubernetes i amb l'ajuda d'un escenari senzill vam aprendre a crear un desplegament amb i sense restriccions de configuració de nodeSelector. Podeu consultar aquest article si sou nou al concepte nodeSelector i trobar tota la informació rellevant.