Kubernetes

Lietotņu izvietošana Kubernetes kopās

Lietotņu izvietošana Kubernetes kopās

Iepriekšējā rakstā mēs izvietojām Kubernetes kopu ar vienu galveno un vienu darba mezglu. Kubernetes kopas galvenokārt attiecas uz divām lietām; Mezgli un pākstis. Pākstis ir konteinerizētās lietojumprogrammas, kuras vēlaties izvietot klasterī, un mezgli ir atsevišķi skaitļošanas serveri, kas ir atbildīgi par klastera pārvaldīšanu vai lietotņu palaišanu. Lai viss būtu vienkāršāk, mēs sākam ar bezvalstnieku lietojumprogrammu un ieviešam dažādus jēdzienus, piemēram, etiķetes un atlasītājus, kurus izmanto, lai pākstis sasietu savā starpā.

Ir arī citi svarīgi jēdzieni, piemēram, kopiju komplekti, pakalpojumi un izvietošana, kurus mēs mācīsimies šajā rakstā.


Tradicionālā lietotņu izvietošana

Ja paskatās uz tradicionālo pieeju tīmekļa lietotnes izvietošanai, mērogojamība ir kaut kas, kas jums būtu jāapsver pirms darba uzsākšanas. Ja jums ir nepieciešama atsevišķa datu bāze no tīmekļa priekšgala, labāk to darīt tūlīt, nevis darīt vēlāk. Vai plānojat palaist vairākas tīmekļa lietotnes?? Iepriekš labāk konfigurējiet reverso starpniekserveri.

Ar Kubernetes pieeja ir mainījusies. Izvietošanu var veikt, paturot prātā pašreizējās vajadzības, un vēlāk tā var būt apjomīga, augot jūsu biznesam. Konteinerizācija ļauj nošķirt būtiskus jūsu tīmekļa pakalpojumu komponentus, pat ja tie darbojas vienā mezglā. Vēlāk, mērogojot horizontāli (tas nozīmē, ka savai videi pievienojat vairāk serveru), jums vienkārši jāpagriež vairāk konteineru, un Kubernetes to ieplānos jums atbilstošajos mezglos.  Apgrieztais starpniekserveris? Kubernetes dienesti iesaistīsies šīs problēmas risināšanā.


Pākstis

Vispirms pagriezīsim pāksti. Lai to izdarītu, mums būtu nepieciešams YAML fails, kas definētu dažādus pākšauga atribūtus.

apiVersion: v1
veids: Pod
metadati:
nosaukums: nginx
spec:
konteineri:
- nosaukums: nginx
attēls: nginx: 1.7.9
ostas:
- containerPort: 80

Pievienojiet iepriekš a pāksts.yaml failu un saglabājiet to. Aplūkojot tekstu iepriekš, jūs varat redzēt, ka laipns mūsu radītais resurss ir pāksts. Mēs to nosaucām ninks, un attēls ir ninks: 1.7.9 kas pēc noklusējuma nozīmē, ka Kubernetes no Docker centrmezgla publiski pieejamajiem attēliem iegūs atbilstošo nginx attēlu.

Liela mēroga organizācijās K8 bieži tiek konfigurēts norādīt uz privātu reģistru, no kura tas var izvilkt atbilstošos konteinera attēlus.

Tagad, lai sāktu pod palaist:

$ kubectl izveidot -f pod.yaml

Jūs nevarat piekļūt pākšaugam ārpus klastera. Tas vēl nav pakļauts, un tas pastāv tikai kā vientuļš pāksts. Lai pārliecinātos, ka tā patiešām ir izvietota, palaidiet:

$ kubectl iegūst pākstis

Lai atbrīvotos no nosauktajām pākstīm ninks, palaidiet komandu:

$ kubectl izdzēst pod nginx

Izvietošana

Iegūt tikai vienu funkcionējošu pāksti nav Kubernetes punkts, ideālā gadījumā mēs vēlētos, lai būtu vairākas pākšu kopijas, kas bieži tiek plānotas dažādos mezglos, tādēļ, ja viens vai vairāki mezgli neizdodas, pārējie pākstis joprojām būs jāņem palielinātu papildu slodzi.

Turklāt no attīstības viedokļa mums vajadzētu būt kaut kādam veidam, kā izvilkt pākstis ar jaunāku programmatūras versiju un padarīt vecākās pākstis pasīvās. Gadījumā, ja rodas problēma ar jaunāku pāksti, kuru mēs varam atgriezties, atgriežot vecākas pākstis un izdzēšot neizdevušos versiju. Izvietošana ļauj mums to izdarīt.

Šis ir ļoti izplatīts izvietojuma definēšanas veids:

apiVersion: apps / v1beta1
veids: izvietošana
metadati:
nosaukums: nginx-izvietošana
spec:
kopijas: 2
veidne:
metadati:
etiķetes:
lietotne: nginx
spec:
konteineri:
- nosaukums: nginx
attēls: nginx: 1.7.9
ostas:
- containerPort: 80

Jūs, cita starpā, pamanīsit galveno vērtību pāri, kas ir:

etiķetes:
lietotne:
ninks

Etiķetes ir svarīgas kopu pārvaldībai, jo tās palīdz izsekot daudziem pākstiem, kuriem visiem ir tāds pats pienākums. Pāksti tiek izveidoti pēc galvenā mezgla komandas, un tie sazinās ar galveno mezglu. Tomēr mums joprojām ir nepieciešams efektīvs veids, kā viņi var sarunāties savā starpā un strādāt kopā kā komanda.


Pakalpojumi

Katram pākstim ir sava iekšējā IP adrese, un tāds sakaru slānis kā Flannel palīdz pākstīm sazināties savā starpā. Šī IP adrese tomēr mainās diezgan daudz, un galu galā viss, kam ir daudz pākšu, ir ļaut tiem būt vienreizējiem. Pākstis bieži tiek nogalinātas un augšāmcēlušās.

Tagad rodas šāds jautājums - kā priekšējās daļas pākstis runās ar aizmugures pākstīm, kad klastera lietas ir tik dinamiskas?

Pakalpojumi nonāk attēlā, lai atrisinātu šo sarežģītību. Pakalpojums ir vēl viens bloks, kas darbojas kā slodzes līdzsvarotājs starp pākšaugu apakškopu un pārējo Kubernetes kopu. Tas saistās ar visām pākstīm, kurām ir pievienota īpaša etiķete, piemēram, datu bāze, un pēc tam tā tiek pakļauta pārējai kopai.

Piemēram, ja mums ir datu bāzes pakalpojums ar 10 datu bāzes pākšaugiem, dažas no datu bāzes pākstīm var parādīties vai tikt nogalinātas, taču pakalpojums nodrošinātu, ka pārējā klastera daļa saņem “pakalpojumu”, kas ir datu bāze. Pakalpojumus var izmantot arī, lai saskarne saskartos ar pārējo internetu.

Šeit ir tipiska pakalpojuma definīcija.

apiVersion: v1
veids: Pakalpojums
metadati:
nosaukums: wordpress-mysql
etiķetes:
lietotne: wordpress
spec:
ostas:
- osta: 3306
atlasītājs:
lietotne: wordpress
līmenis: mysql
clusterIP: nav

Pākstis, kas apzīmētas ar WordPress ar norādīto mysql līmeni, ir tās, kuras šis serviss uzņems un pakļaus tīmekļa servera pākstīm tipiskai WordPress, kas iestatīta, izmantojot Kubernetes.


Piesardzības vārds

Izvietojot milzīgu daudzpakāpju lietotni, kas vērsta uz lielu patērētāju bāzi, kļūst ļoti vilinoši rakstīt daudz pakalpojumu (vai mikropakalpojumus, kā tie ir tautā zināmi). Lai gan tas ir elegants risinājums lielākajai daļai lietošanas gadījumu, lietas var ātri izkļūt no rokas.

Pakalpojumi, tāpat kā pākstis, ir pakļauti neveiksmēm. Vienīgā atšķirība ir tāda, ka tad, kad pakalpojums neizdodas, daudzi pākstis, kas ir pilnīgi funkcionāli, tiek padarīti bezjēdzīgi. Līdz ar to, ja jums ir plašs pakalpojumu (gan iekšējo, gan ārējo) savienojums un kaut kas neizdodas, kļūmes vietas noteikšana kļūtu neiespējama.

Pēc īkšķa noteikuma, ja jums ir aptuvena klastera vizualizācija vai ja varat izmantot programmatūru, piemēram, pilotu kabīni, lai apskatītu klasteru un saprastu to, iestatīšana ir laba. Kubernetes dienas beigās ir paredzēts, lai samazinātu sarežģītību, nevis uzlabotu to.

Atdariniet peles klikšķus, virzot kursoru, izmantojot operētājsistēmā Windows 10 bezklikšķu peli
Peles vai tastatūras lietošana nepareizā pozā, ja to lieto pārmērīgi daudz, var izraisīt daudz veselības problēmu, tostarp spriedzi, karpālā kanāla si...
Pievienojiet peles žestus operētājsistēmai Windows 10, izmantojot šos bezmaksas rīkus
Pēdējos gados datori un operētājsistēmas ir ievērojami attīstījušās. Bija laiks, kad lietotājiem bija jāizmanto komandas, lai pārvietotos pa failu pār...
Kontrolējiet un pārvaldiet peles kustību starp vairākiem monitoriem sistēmā Windows 10
Dual Display Mouse Manager ļauj kontrolēt un konfigurēt peles kustību starp vairākiem monitoriem, palēninot tās kustību robežas tuvumā. Windows 10/8 ļ...