Paano Itakda ang mga Kubernetes Tolerations

Paano Itakda Ang Mga Kubernetes Tolerations



Ngayon, natutunan natin ang tungkol sa pagpapaubaya sa Kubernetes sa tulong ng mga simple at pangunahing halimbawa. Idinisenyo ang artikulong ito upang matutunan ang pangunahing konsepto ng pagpapaubaya sa Kubernetes at kung paano ito maipapatupad sa Kubernetes upang maiiskedyul ang mga pod. Dahil nagtutulungan ang toleration at taints, magkakaroon tayo ng maikling talakayan tungkol sa taints para maunawaan din ang buong konsepto ng taint at toleration sa Kubernetes. Magsimula tayo sa mga pangunahing kahulugan ng bahid at pagpaparaya.

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 minikube

Sa 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 [ * ] .epekto

Inililista 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 . Mula sa nakaraang output, makikita natin na walang node. Samakatuwid, nilikha muna namin ang node at pagkatapos ay itinakda ang pagpapaubaya. Para itakda ang pagpapaubaya sa isang pod sa Kubernetes, kailangan muna naming mag-deploy ng app sa isang cluster. Ipinapakita ng susunod na ilang hakbang kung paano mag-deploy ng app sa isang cluster.

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 frontend

Ang 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 frontend

Nagde-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:

  Awtomatikong nabuo ang Paglalarawan ng Teksto

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 frontend

Dahil 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 frontend

Inililista 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:

  Awtomatikong nabuo ang Paglalarawan ng Teksto

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.