Ano ang Mga Pagpaparaya at Dumi sa Kubernetes?
Ang pagpapaubaya at bahid sa Kubernetes ay ginagamit upang matiyak na ang mga pod ay nakalagay sa tamang node. Ang pagpapaubaya ay tinukoy sa detalye ng pod habang ang mga mantsa ay tinukoy sa detalye ng node. Kapag inilapat mo ang pagpapaubaya sa isang pod, pinapayagan nito ang scheduler na iiskedyul ang mga pod sa isang partikular na node. Gayunpaman, ang mga bahid ay gumagana nang kabaligtaran sa pagpapaubaya. Pinapayagan nito ang node na tanggihan ang mga pod na naka-iskedyul dito. Ang mga pod ay pinapayagan lamang na ma-iskedyul sa node kung mayroon silang mga pagpapaubaya na inilapat sa mga ito na may katugmang mga mantsa.
Gumagana ang Kubernetes sa mga pod, cluster, node, event, atbp. Sa ilang mga kaso, para pamahalaan ang mga bagay na ito, kailangan ng Kubernetes ng mga pagpapaubaya at bahid. Ang pagpapaubaya ay ang pagpapatupad ng proseso ng pag-iiskedyul. Kailangang naka-iskedyul ang mga pod upang gumana ang mga ito nang maayos at magkaroon sila ng sapat na mapagkukunan kapag kinakailangan upang maisagawa ang kanilang operasyon. Ang mga pagpapaubaya ay inilalapat sa mga pod laban sa mantsa upang hindi sila magkaroon ng anumang pagkaantala o pagkagambala habang nagtatrabaho.
Ang mga mantsa sa Kubernetes ay nagbibigay-daan sa isang pod na tanggihan ang pag-iskedyul ng isang pod. Ito ay inilapat sa isang node gamit ang 'NodeSpec' na detalye ng Node. Ang scheduler ay hindi makapaglagay ng pod sa isang node na may bahid dito. Gayunpaman, kung kailangan mong i-iskedyul ang mga pod sa isang node kung saan nalalapat na ang isang mantsa, kailangan mong ideklara ang pagpapaubaya laban dito.
Ang pagpapaubaya sa Kubernetes ay nagbibigay-daan sa isang pod na maiiskedyul sa isang node kung saan nalalapat na ang isang mantsa. Ang pagpapaubaya sa isang pod ay inilalapat gamit ang 'PodSpec' na detalye ng Pod. Kapag inilapat mo ang pagpapaubaya sa isang pod na may katugmang mantsa, madaling maiiskedyul ng iskedyul ang mga pod sa isang partikular na node.
Ngayon, hayaan kaming magpakita ng isang senaryo upang matulungan kang maunawaan kung paano mo maipapatupad ang pagpapaubaya sa isang pod sa Kubernetes. Bago ka magpatuloy sa seksyon ng pagpapatupad, tiyaking mayroon ka ng lahat ng kinakailangang kinakailangan.
Kinakailangan:
Ang mga sumusunod ay ang mga bagay na kailangan mong ipatupad ang pagpapaubaya sa isang node sa Kubernetes:
- Ubuntu 20.04 o anumang iba pang pinakabagong bersyon ng anumang Linux system
- Minikube (pinakabagong bersyon)
- Naka-install na virtual machine sa iyong Linux/Unix system
- Kubectl command line tool
Sa pag-aakalang natutugunan ng iyong system ang lahat ng pangangailangan ng mga kinakailangan, simulan nating itakda ang pagpapaubaya ng Kubernetes.
Hakbang 1: Simulan ang Minikube Terminal
Ang unang bagay na kailangan mong gawin ay simulan ang minikube terminal para magamit mo ang kubectl commands para sa pagpapatupad ng Kubernetes toleration sa isang node. Upang simulan ang minikube, ang sumusunod na utos ay ginagamit:
> simulan ang minikubeSa pagpapatupad ng utos na ito, makukuha mo ang sumusunod na output sa iyong terminal:
Hakbang 2: Kunin ang Listahan ng Mga Aktibong Node
Ngayong sinimulan na namin ang minikube, handa na ang aming system na itakda ang pagpapaubaya sa mga pod sa Kubernetes. Bago natin itakda ang pagpapaubaya sa mga pod, suriin natin kung gaano karaming mga node at kung anong uri ng mga node ang mayroon na tayo. Upang gawin iyon, ginagamit namin ang sumusunod na kasunod na utos:
> kubectl makakuha ng mga node -Ang =custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints [ * ] .key,TaintValue:.spec.taints [ * ] .value,TaintEffect:.spec.taints [ * ] .epektoInililista ng tagubiling ito ang lahat ng node na may bahid ng default na pag-install ng Kubernetes. Tingnan muna natin ang output ng command na ito. Pagkatapos, tinatalakay namin ang listahan ng mga node:
Dahil walang mga node na nilikha at nabahiran ng default na pag-install ng Kubernetes at hindi rin kami partikular na gumawa ng anumang node, ang resulta ay
Hakbang 3: Gumawa ng Namespace
Una, gumawa kami ng namespace para mag-deploy ng app sa isang cluster. Dito, gumawa kami ng app na may value na 'frontend' sa tulong ng sumusunod na command:
> kubectl lumikha ng ns frontendAng command na ito ay lumilikha ng namespace na mayroong 'frontend' na halaga. Tingnan ang sumusunod na output:
Hakbang 4: I-deploy ang Nginx Pod sa Namespace
Ngayon, i-deploy ang nginx pod sa namespace na kakagawa lang namin. Ginagamit namin ang sumusunod na command upang i-deploy ang nginx:
> kubectl run nginx – larawan =nginx –namespace frontendNagde-deploy ito ng app sa isang cluster na walang configuration ng pagpapaubaya sa detalye ng deployment ng app. Gamit ang kubectl command, ini-deploy namin ang nginx pod sa namespace frontend:
Hakbang 5: Kunin ang Listahan ng Mga Pod
Ngayon, tingnan natin ang mga ginawang pod para makita ang kanilang mga status. Ang ibinigay na utos ay naglilista ng lahat ng mga pod at ang kanilang mga katayuan din:
> kubectl makakuha ng mga pod -n frontendDahil nilikha lang namin ang nginx, dapat ilista ng command na ito ang pod na may status nito. Tingnan ang sumusunod na output:
Hakbang 6: Suriin ang Mga Kaganapan sa Kubernetes
Ngayon, suriin natin ang mga kaganapan sa Kubernetes upang maitakda natin ang pagpapaubaya sa mga pod nang naaayon. Ginagamit namin ang sumusunod na kubectl command upang makuha ang listahan ng mga kaganapan sa Kubernetes:
> kubectl makakuha ng mga kaganapan -n frontendInililista nito ang lahat ng mga kaganapan na nauugnay sa halaga ng front-end kasama ang kanilang mga katangian tulad ng uri, dahilan, bagay, at mensahe. Tingnan ang ibinigay na listahan sa sumusunod na output:
Tulad ng nakikita mo mula sa nakaraang output, ang nginx pod ay naka-iskedyul na may partikular na pagpapaubaya. Ipinapakita ng property na 'mensahe' ang listahan ng mga pagkilos na isinagawa sa proseso.
Hakbang 7: Suriin ang Katayuan ng Mga Pod
Ang huling hakbang ay suriin muli ang status ng pod na ginawa namin dati upang matiyak na matagumpay itong nakaiskedyul sa isang tiyak at tamang node. Upang gawin iyon, ginagamit namin ang sumusunod na kubectl command:
> kubectl makakuha ng mga pod -n frontend
Tulad ng makikita sa nakaraang output, ang pod ay pinapayagan na ngayong tumakbo sa tainted node dahil ang pagpapaubaya ay nakatakda laban dito.
Konklusyon
Sa gabay na ito, ginalugad namin ang tungkol sa mga bahid at pagpapaubaya. Natutunan namin ang tungkol sa pangunahing gawain ng mga mantsa at pagpaparaya. Pagkatapos, ipinatupad namin ang pagpapaubaya sa isang pod. Sa tulong ng isang simpleng halimbawa, natutunan namin kung paano itakda ang pagpapaubaya sa isang node sa Kubernetes.