Kubernetes

Kas ir Kubernetes?

Kas ir Kubernetes?

Kas ir Kubernetes? Un kāda ir tā arhitektūra?

Konteinerizācija ir pārtraukusi vadu starp programmatūras izstrādātājiem un ražošanas vidi. Ne tādā ziņā, ka jums vispār nav vajadzīga ražošanas sistēma, bet jums nav jāuztraucas par ražošanas vides specifiku.

Lietotnes tagad ir pievienotas tām nepieciešamajām atkarībām vieglā konteinerā, nevis VM. Tas ir lieliski! Tomēr tas nenodrošina imunitāti pret sistēmas kļūmēm, tīkla kļūmēm vai diska kļūmēm. Piemēram, ja tiek uzturēts datu centrs, kurā darbojas jūsu serveri, jūsu lietojumprogramma tiks bezsaistē.

Kubernetes nonāk attēlā, lai atrisinātu šīs problēmas. Tas prasa konteineru ideju un paplašina to, lai darbotos vairākos skaitļošanas mezglos (kas varētu būt mākoņa mitinātā virtuālā mašīna vai tukša metāla serveri). Ideja ir izveidot izplatītu sistēmu konteinerizētu lietojumprogrammu darbībai.

Kāpēc Kubernetes?

Kāpēc jums vispār vajadzētu būt izplatītai videi?

Vairāku iemeslu dēļ pirmkārt un galvenokārt ir augsta pieejamība. Jūs vēlaties, lai jūsu e-komercijas vietne paliktu tiešsaistē visu diennakti, vai arī jūs zaudēsiet biznesu. Tam izmantojiet Kubernetes. Otrkārt, ir mērogojamība, kur vēlaties mērogot “ārā”. Mērogošana šeit ietver vairāk skaitļošanas mezglu pievienošanu, lai jūsu augošajai lietojumprogrammai būtu vairāk iespēju darboties kājās.

Dizains un arhitektūra

Tāpat kā jebkurai izplatītai sistēmai, arī Kubernetes kopai ir galvenais mezgls un pēc tam daudz darba ņēmēju mezglu, kur jūsu lietojumprogrammas faktiski darbotos. Kapteinis ir atbildīgs par uzdevumu plānošanu, darba slodžu pārvaldīšanu un jaunu mezglu drošu pievienošanu kopai.

Tagad, protams, pats galvenais mezgls var neizdoties un paņemt līdzi visu kopu, tāpēc Kubernetes atlaišanas labad faktiski ļauj jums būt vairākiem galvenajiem mezgliem.

Putna acs skats uz tipisku Kubernetes izvietojumu

Kubernetes meistars

Kubernetes meistars ir tas, ko DevOps komanda mijiedarbojas un izmanto jaunu mezglu nodrošināšanai, jaunu lietotņu izvietošanai, resursu uzraudzībai un pārvaldībai. Galvenā mezgla pamatuzdevums ir grafiku efektīva darba slodze starp visiem darba ņēmēju mezgliem, lai maksimāli palielinātu resursu izmantošanu, uzlabotu veiktspēju un ievērotu dažādas DevOps komandas izvēlētās politikas attiecībā uz viņu konkrēto slodzi.

Vēl viena svarīga sastāvdaļa ir utt kas ir dēmons, kas seko darbinieku mezgliem un glabā datu bāzi, kurā glabājas viss kopas stāvoklis. Tas ir atslēgas vērtības datu krājums, kuru var darbināt arī sadalītā vidē vairākos galvenajos mezglos. Etcd saturs satur visus attiecīgos datus par visu kopu. Darba ņēmēja mezgls laiku pa laikam apskatīja etcd saturu, lai noteiktu, kā tam vajadzētu uzvesties.

Kontrolieris ir entītija, kas ņems no API servera instrukcijas (kuras mēs apskatīsim vēlāk) un veiks nepieciešamās darbības, piemēram, lietojumprogrammu un pakotņu izveidi, dzēšanu un atjaunināšanu.

The API serveris pakļauj Kubernetes API, kas izmanto JSON lietderīgās slodzes, izmantojot HTTPS, lai sazinātos ar lietotāja saskarni, ar kuru izstrādātāju komandas vai DevOps personāls galu galā nonāktu mijiedarbībā. Gan tīmekļa lietotāja interfeiss, gan CLI patērē šo API, lai mijiedarbotos ar Kubernetes kopu.

API serveris ir atbildīgs arī par saziņu starp darba ņēmēja mezgliem un dažādiem galvenajiem mezglu komponentiem, piemēram, etcd.

Galvenais mezgls nekad nav pakļauts galalietotājam, jo ​​tas apdraud visas klastera drošību.

Kubernetes mezgli

Mašīnai (fiziskai vai virtuālai) būtu nepieciešami daži svarīgi komponenti, kas pēc pareizas instalēšanas un iestatīšanas var šo serveri pārvērst par Kubernetes kopas dalībnieku.

Pirmā lieta, kas jums būs nepieciešama, ir tajā instalēts un palaists konteinera izpildlaiks, piemēram, Docker. Tas, protams, būs atbildīgs par konteineru vērpšanu un apsaimniekošanu.

Kopā ar Docker izpildlaiku mums ir nepieciešama arī Kubelet dēmons. Tas sazinās ar galvenajiem mezgliem, izmantojot API serveri, un vaicā utt., Kā arī sniedz informāciju par veselību un lietošanu par pākstīm, kas darbojas šajā mezglā.

Tomēr paši konteineri ir diezgan ierobežoti, tāpēc Kubernetes ir augstāka abstrakcija, kas uzbūvēta virs konteineru kolekcijas, kas pazīstama kā Pākstis.

Kāpēc nākt klajā ar pākstīm?

Docker politikai ir viena lietojumprogrammas palaišana vienā konteinerā. Bieži tiek aprakstīts kā “Viens process vienā konteinerā” politika. Tas nozīmē, ka, ja jums nepieciešama WordPress vietne, ieteicams izmantot divus konteinerus, lai darbotos datu bāze, un otru, lai darbotos tīmekļa serveris. Šādu saistītu lietojumprogrammas komponentu apvienošana pogā nodrošina, ka ikreiz, kad tiek palielināts mērogs, abi savstarpēji atkarīgie konteineri vienmēr pastāv līdzās vienā mezglā un tādējādi ātri un viegli runā viens ar otru.

Pākstis ir galvenā izvietošanas vienība Kubernetes. Izvēršoties, klasterim pievienojat vairāk pākšu. Katram podam klastera iekšējā tīklā tiek piešķirta sava unikālā IP adrese.

Atpakaļ uz Kubernetes mezglu

Tagad mezglā var darboties vairākas pākstis, un šādu mezglu var būt daudz. Tas viss ir labi, kamēr nedomājat mēģināt sazināties ar ārējo pasauli. Ja jums ir vienkāršs tīmekļa pakalpojums, kā jūs norādītu savu domēna vārdu uz šo pākšu kolekciju ar daudzām IP adresēm?

Nevar, un nevajag! Kube-proxy ir pēdējais puzles gabals, kas ļauj operatoriem atklāt internetā noteiktas pākstis. Piemēram, jūsu priekšpusi var padarīt publiski pieejamu, un kube-proxy sadalīs trafiku starp visām dažādajām pākstīm, kas ir atbildīgas par priekšgala mitināšanu. Jūsu datu bāze nav jāpublisko, un kube-proxy ļaus tikai iekšējo saziņu šādām ar aizmuguri saistītām slodzēm.

Vai jums tas viss ir vajadzīgs?

Ja jūs tikko sākat strādāt kā hobijs vai students, Kubernetes izmantošana vienkāršai lietošanai faktiski būtu neefektīva. Visa rigmarole patērētu vairāk resursu nekā jūsu faktiskā lietojumprogramma, un tas radītu vairāk neskaidrību vienam indivīdam.

Tomēr, ja jūs gatavojaties strādāt ar lielu komandu un izvietot savas lietotnes nopietnai komerciālai lietošanai, Kubernetes ir vērts papildus pieskaitīt. Jūs varat apturēt to, ka viss kļūst haotisks. Atstājiet vietu apkopei bez dīkstāves. Iestatiet izveicīgus A / B testēšanas apstākļus un pakāpeniski paplašiniet, pārāk daudz neiztērējot infrastruktūrai jau iepriekš.

Komerciālo spēļu dzinēju atvērtā koda porti
Bezmaksas, atvērtā koda un starpplatformu spēļu dzinēju atpūtu var izmantot, lai spēlētu vecos, kā arī dažus no diezgan nesenajiem spēļu nosaukumiem. ...
Labākās komandrindas spēles Linux
Komandrinda nav tikai lielākais sabiedrotais, lietojot Linux, bet tā var būt arī izklaides avots, jo to var izmantot, lai spēlētu daudzas jautras spēl...
Labākās Linux spēļu gamepad kartēšanas lietotnes
Ja jums patīk spēlēt spēles Linux ar parastu tastatūru, nevis parasto tastatūru un peles ievades sistēmu, jums ir dažas noderīgas lietotnes. Daudzas d...