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é nodesAquesta 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.yamlAquí, 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 beinesAixò enumerarà tots els pods disponibles al clúster. Vegeu la sortida que es mostra a continuació:
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
Ara, comprovem més detalls dels pods utilitzant l'opció -o wide:
> kubectl obtenir beines -El ample
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= veritatConfigura 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.yamlAra, 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
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
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.