DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Kubernetes huwa għodda kbira għat-tħaddim ta' kontenituri Docker f'ambjent ta' produzzjoni miġbura. Madankollu, hemm problemi li Kubernetes ma jistax isolvi. Għal skjeramenti ta 'produzzjoni frekwenti, neħtieġu skjerament Blu/Aħdar kompletament awtomatizzat biex jiġi evitat ħin ta' waqfien fil-proċess, li jeħtieġ ukoll li jimmaniġġja talbiet HTTP esterni u jwettaq offloads SSL. Dan jeħtieġ integrazzjoni ma' load balancer bħal ha-proxy. Sfida oħra hija l-iskala semi-awtomatika tal-cluster Kubernetes innifsu meta taħdem f'ambjent ta 'sħaba, pereżempju tnaqqis parzjali tal-cluster bil-lejl.

Filwaqt li Kubernetes m'għandux dawn il-karatteristiċi barra mill-kaxxa, jipprovdi API li tista 'tuża biex issolvi problemi simili. Ġew żviluppati għodod għall-iskjerament awtomatizzat tal-Blue/Green u l-iskala ta' cluster Kubernetes bħala parti mill-proġett Cloud RTI, li nħoloq ibbażat fuq sors miftuħ.

Dan l-artikolu, traskrizzjoni tal-vidjo, jurik kif twaqqaf Kubernetes flimkien ma 'komponenti open source oħra biex toħloq ambjent lest għall-produzzjoni li jaċċetta kodiċi minn git commit mingħajr waqfien fil-produzzjoni.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 1

Allura, ladarba jkollok aċċess għall-applikazzjonijiet tiegħek mid-dinja ta 'barra, tista' tibda twaqqaf kompletament l-awtomazzjoni, jiġifieri, ġġibha fl-istadju fejn tista 'twettaq git commit u kun żgur li dan il-git commit jispiċċa fil-produzzjoni. Naturalment, meta nimplimentaw dawn il-passi, meta nimplimentaw l-iskjerament, ma rridux niltaqgħu ma' waqfien. Allura, kwalunkwe awtomazzjoni f'Kubernetes tibda bl-API.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Kubernetes mhix għodda li tista 'tintuża b'mod produttiv barra mill-kaxxa. Naturalment, tista 'tagħmel dan, uża kubectl u l-bqija, iżda xorta l-API hija l-iktar ħaġa interessanti u utli dwar din il-pjattaforma. Billi tuża l-API bħala sett ta 'funzjonijiet, tista' taċċessa kważi kull ħaġa li trid tagħmel f'Kubernetes. kubectl innifsu juża wkoll l-API REST.

Dan huwa REST, għalhekk tista' tuża kwalunkwe lingwa jew għodda biex taħdem ma' din l-API, iżda ħajtek se ssir ħafna aktar faċli minn libreriji tad-dwana. It-tim tiegħi kiteb 2 libreriji bħal dawn: waħda għal Java/OSGi u waħda għal Go. It-tieni waħda ma tintużax spiss, iżda fi kwalunkwe każ għandek dawn l-affarijiet utli għad-dispożizzjoni tiegħek. Huma proġett ta' sors miftuħ parzjalment liċenzjat. Hemm ħafna libreriji bħal dawn għal lingwi differenti, sabiex inti tista 'tagħżel dawk li jixirqu l-aħjar għalik.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Għalhekk, qabel ma tibda tawtomatizza l-iskjerament tiegħek, trid tiżgura li l-proċess mhux se jkun suġġett għal xi ħin ta' waqfien. Pereżempju, it-tim tagħna jmexxi skjeramenti tal-produzzjoni matul nofs il-ġurnata meta n-nies qed jużaw l-applikazzjonijiet l-aktar, għalhekk huwa importanti li jiġi evitat dewmien fil-proċess. Sabiex jiġi evitat ħin ta 'waqfien, jintużaw 2 metodi: skjerament blu/aħdar jew aġġornament rolling. F'dan l-aħħar każ, jekk għandek 5 repliki ta' l-applikazzjoni għaddejjin, dawn jiġu aġġornati b'mod sekwenzjali wieħed wara l-ieħor. Dan il-metodu jaħdem tajjeb, iżda mhuwiex adattat jekk għandek verżjonijiet differenti tal-applikazzjoni li qed taħdem fl-istess ħin matul il-proċess tal-iskjerament. F'dan il-każ, tista 'taġġorna l-interface tal-utent waqt li l-backend ikun qed jaħdem il-verżjoni l-antika, u l-applikazzjoni tieqaf taħdem. Għalhekk, mil-lat ta 'programmazzjoni, ix-xogħol f'kundizzjonijiet bħal dawn huwa pjuttost diffiċli.

Din hija waħda mir-raġunijiet għalfejn nippreferu nużaw l-iskjerament blu/aħdar biex nawtomatizzaw l-iskjerament tal-applikazzjonijiet tagħna. B'dan il-metodu, trid tiżgura li verżjoni waħda biss tal-applikazzjoni tkun attiva kull darba.

Il-mekkaniżmu ta 'skjerament blu/aħdar jidher bħal dan. Nirċievu traffiku għall-applikazzjonijiet tagħna permezz ta' ha-proxy, li jgħaddih lil repliki li qed jaħdmu tal-applikazzjoni tal-istess verżjoni.

Meta jsir skjerament ġdid, nużaw Deployer, li jingħata l-komponenti l-ġodda u juża l-verżjoni l-ġdida. L-iskjerament ta' verżjoni ġdida ta' applikazzjoni jfisser li sett ġdid ta' repliki jittella', u wara dawn ir-repliki tal-verżjoni l-ġdida jiġu mnedija f'pod ġdid separat. Madankollu, ha-proxy ma jaf xejn dwarhom u għadu ma jgħaddilhom l-ebda ammont ta' xogħol.

Għalhekk, l-ewwelnett, huwa meħtieġ li jsir kontroll tal-prestazzjoni ta 'verżjonijiet ġodda ta' verifika tas-saħħa biex jiġi żgurat li r-repliki jkunu lesti biex iservu t-tagħbija.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Il-komponenti kollha tal-iskjerament għandhom jappoġġjaw xi forma ta' kontroll tas-saħħa. Dan jista 'jkun verifika ta' sejħa HTTP sempliċi ħafna, meta tirċievi kodiċi bi status 200, jew verifika aktar fil-fond, li fiha tiċċekkja l-konnessjoni tar-repliki mad-database u servizzi oħra, l-istabbiltà tal-konnessjonijiet tal-ambjent dinamiku , u jekk kollox jibda u jaħdem sew. Dan il-proċess jista 'jkun pjuttost kumpless.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Wara li s-sistema tivverifika li r-repliki aġġornati kollha qed jaħdmu, Deployer se jaġġorna l-konfigurazzjoni u jgħaddi l-konfd korretta, li se terġa 'tikkonfigura ha-proxy.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Wara dan biss it-traffiku jkun dirett lejn il-pod b'repliki tal-verżjoni l-ġdida, u l-pod l-antik se jisparixxi.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Dan il-mekkaniżmu mhuwiex karatteristika ta 'Kubernetes. Il-kunċett ta 'skjerament Blu/aħdar ilu għal żmien pjuttost twil u dejjem uża load balancer. L-ewwel, inti tidderieġi t-traffiku kollu lejn il-verżjoni l-antika tal-applikazzjoni, u wara l-aġġornament, tittrasferih kompletament għall-verżjoni l-ġdida. Dan il-prinċipju jintuża mhux biss f'Kubernetes.

Issa ser nintroduċik komponent ġdid ta 'skjerament - Deployer, li jwettaq kontrolli tas-saħħa, jikkonfigura mill-ġdid prokuri, eċċ. Dan huwa kunċett li ma japplikax għad-dinja ta 'barra u jeżisti ġewwa Kubernetes. Ser nuruk kif tista' toħloq il-kunċett ta' Deployer tiegħek stess billi tuża għodod open-source.

Allura, l-ewwel ħaġa li tagħmel Deployer hija li toħloq kontrollur ta 'replikazzjoni RC billi juża l-API Kubernetes. Din l-API toħloq pods u servizzi għal aktar skjerament, jiġifieri, toħloq cluster kompletament ġdid għall-applikazzjonijiet tagħna. Hekk kif RC ikun konvint li r-repliki bdew, se jwettaq verifika tas-Saħħa fuq il-funzjonalità tagħhom. Biex tagħmel dan, Deployer juża l-kmand GET /health. Imexxi l-komponenti tal-iskannjar xierqa u jiċċekkja l-elementi kollha li jappoġġjaw it-tħaddim tal-cluster.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Wara li l-imżiewed kollha jkunu rrappurtaw is-saħħa tagħhom, Deployer joħloq element ta 'konfigurazzjoni ġdid - ħażna distribwita etcd, li tintuża internament minn Kubernetes, inkluż il-ħażna tal-konfigurazzjoni tal-bilanċjar tat-tagħbija. Aħna niktbu data lil etcd, u għodda żgħira msejħa confd monitors etcd għal data ġdida.

Jekk jiskopri xi tibdil fil-konfigurazzjoni inizjali, jiġġenera fajl tas-settings ġdid u jittrasferih lil ha-proxy. F'dan il-każ, ha-proxy jerġa 'jibda mingħajr ma jitlef l-ebda konnessjoni u jindirizza t-tagħbija għal servizzi ġodda li jippermettu li l-verżjoni l-ġdida tal-applikazzjonijiet tagħna taħdem.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Kif tistgħu taraw, minkejja l-abbundanza ta 'komponenti, m'hemm xejn ikkumplikat hawn. Għandek bżonn biss li tagħti aktar attenzjoni lill-API u etcd. Irrid ngħidilkom dwar is-sejra ta' sors miftuħ li aħna stess nużaw - Amdatu Kubernetes Deployer.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Hija għodda għall-orkestrazzjoni tal-iskjeramenti ta' Kubernetes u għandha l-karatteristiċi li ġejjin:

  • Skjerament blu/aħdar;
  • it-twaqqif ta' load balancer estern;
  • ġestjoni tad-deskritturi tal-iskjerament;
  • il-ġestjoni tal-iskjerament attwali;
  • il-verifika tal-funzjonalità tal-kontrolli tas-Saħħa waqt l-iskjerament;
  • implimentazzjoni ta' varjabbli ambjentali f'miżwed.

Dan Deployer huwa mibni fuq il-Kubernetes API u jipprovdi REST API għall-ġestjoni tal-manki u l-iskjeramenti, kif ukoll Websocket API għall-istriming logs matul il-proċess tal-iskjerament.

Tpoġġi d-dejta tal-konfigurazzjoni tal-balancer tat-tagħbija f'etcd, sabiex ma jkollokx għalfejn tuża ha-proxy b'appoġġ out-of-the-box, iżda faċilment tuża l-fajl tal-konfigurazzjoni tal-balancer tat-tagħbija tiegħek stess. Amdatu Deployer huwa miktub f'Go, bħal Kubernetes innifsu, u huwa liċenzjat minn Apache.

Qabel bdejt nuża din il-verżjoni tal-iskjerament, użajt id-deskrittur tal-iskjerament li ġej, li jispeċifika l-parametri li għandi bżonn.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Wieħed mill-parametri importanti ta 'dan il-kodiċi huwa li tippermetti l-bandiera "useHealthCheck". Irridu nispeċifikaw li verifika tas-sanità trid titwettaq matul il-proċess ta 'skjerament. Dan l-issettjar jista 'jiġi diżattivat meta l-iskjerament juża kontenituri ta' partijiet terzi li m'għandhomx għalfejn jiġu vverifikati. Dan id-deskrittur jindika wkoll in-numru ta' repliki u l-URL tal-frontend li jeħtieġ ha-proxy. Fl-aħħar hemm il-bandiera tal-ispeċifikazzjoni tal-pods "podspec", li ssejjaħ lil Kubernetes għal informazzjoni dwar il-konfigurazzjoni tal-port, l-immaġni, eċċ. Dan huwa deskrittur JSON pjuttost sempliċi.

Għodda oħra li hija parti mill-proġett Amdatu open-source hija Deploymentctl. Għandha UI għall-konfigurazzjoni tal-iskjeramenti, taħżen l-istorja tal-iskjerament, u fiha webhooks għal callbacks minn utenti u żviluppaturi terzi. Inti ma tistax tuża l-UI peress li Amdatu Deployer innifsu huwa API REST, iżda din l-interface tista 'tagħmel l-iskjerament ħafna aktar faċli għalik mingħajr ma tinvolvi l-ebda API. Deploymentctl huwa miktub f'OSGi/Vertx bl-użu ta 'Angular 2.

Issa se nuri dak ta' hawn fuq fuq l-iskrin billi tuża reġistrazzjoni reġistrata minn qabel sabiex ma jkollokx għalfejn tistenna. Se nkunu qed niskjeraw applikazzjoni Go sempliċi. Tinkwetax jekk ma ppruvajtx Mur qabel, hija applikazzjoni sempliċi ħafna u għalhekk għandek tkun tista' taraha.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Hawnhekk qed noħolqu server HTTP li jirrispondi biss għal /health, għalhekk din l-applikazzjoni tittestja biss il-kontroll tas-saħħa u xejn aktar. Jekk il-kontroll jgħaddi, tintuża l-istruttura JSON murija hawn taħt. Fiha l-verżjoni tal-applikazzjoni li se tiġi skjerata minn min iħaddem, il-messaġġ li tara fil-quċċata tal-fajl, u t-tip ta 'dejta boolean - kemm jekk l-applikazzjoni tagħna qed taħdem jew le.

I misruqin ftit bl-aħħar linja, għax poġġejt valur boolean fiss fil-quċċata tal-fajl, li fil-futur se jgħinni niskjera anke applikazzjoni "ħżiena għas-saħħa". Aħna ser nittrattaw dan aktar tard.

Mela ejja nibdew. L-ewwel, aħna niċċekkjaw għall-preżenza ta 'kwalunkwe pods li qed jaħdmu bl-użu tal-kmand ~ kubectl get pods u, ibbażat fuq in-nuqqas ta' rispons mill-URL tal-frontend, niżguraw li bħalissa m'huma qed isiru l-ebda skjerament.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Sussegwentement fuq l-iskrin tara l-interface Deploymentctl li semmejt, li fiha l-parametri tal-iskjerament huma stabbiliti: namespace, isem tal-applikazzjoni, verżjoni tal-iskjerament, numru ta’ repliki, URL front-end, isem tal-kontenitur, immaġni, limiti tar-riżorsi, numru tal-port għall-kontroll tas-saħħa, eċċ. Il-limiti tar-riżorsi huma importanti ħafna, peress li jippermettulek tuża l-ammont massimu possibbli ta 'hardware. Hawnhekk tista' tara wkoll ir-reġistru tal-Iskjerament.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Jekk issa tirrepeti l-kmand ~ kubectl get pods, tista 'tara li s-sistema "tiffriża" għal 20 sekonda, li matulhom ha-proxy jiġi kkonfigurat mill-ġdid. Wara dan, il-pod jibda, u r-replika tagħna tista' tidher fir-reġistru tal-iskjerament.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Qatt l-istennija ta '20 sekonda mill-video, u issa tista' tara fuq l-iskrin li l-ewwel verżjoni tal-applikazzjoni ġiet skjerata. Dan kollu sar bl-użu biss tal-UI.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Issa ejja nippruvaw it-tieni verżjoni. Biex tagħmel dan, nibdel il-messaġġ tal-applikazzjoni minn "Hello, Kubernetes!" fuq "Hello, Deployer!", Is-sistema toħloq din l-immaġni u tpoġġiha fir-reġistru Docker, u wara sempliċement nikklikkjaw fuq il-buttuna "Skjerament" mill-ġdid fit-tieqa Deploymentctl. F'dan il-każ, ir-reġistru tal-iskjerament jiġi mniedi awtomatikament bl-istess mod kif ġara meta ġiet skjerata l-ewwel verżjoni tal-applikazzjoni.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Il-kmand ~ kubectl get pods juri li bħalissa hemm 2 verżjonijiet tal-applikazzjoni li qed jaħdmu, iżda l-frontend juri li għadna qed inħaddmu l-verżjoni 1.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Il-load balancer jistenna li l-kontroll tas-saħħa jitlesta qabel ma jerġa' jidderieġi t-traffiku għall-verżjoni l-ġdida. Wara 20 sekonda, naqilbu għal curl u naraw li issa għandna l-verżjoni 2 tal-applikazzjoni skjerata, u l-ewwel waħda ġiet imħassra.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Dan kien l-iskjerament ta 'applikazzjoni "b'saħħitha". Ejja naraw x'jiġri jekk għal verżjoni ġdida tal-applikazzjoni nbiddel il-parametru Healthy minn veru għal falz, jiġifieri, nipprova niskjera applikazzjoni ħżiena għas-saħħa li falliet mill-kontroll tas-saħħa. Dan jista 'jiġri jekk saru xi żbalji ta' konfigurazzjoni fl-applikazzjoni fl-istadju ta 'żvilupp, u ntbagħtet fil-produzzjoni f'din il-forma.

Kif tistgħu taraw, l-iskjerament jgħaddi mill-passi kollha ta 'hawn fuq u ~kubectl get pods juri li ż-żewġ imżiewed qed jaħdmu. Iżda b'differenza mill-iskjerament preċedenti, ir-reġistru juri l-istatus ta 'timeout. Jiġifieri, minħabba l-fatt li l-kontroll tas-saħħa falla, il-verżjoni l-ġdida tal-applikazzjoni ma tistax tiġi skjerata. Bħala riżultat, tara li s-sistema reġgħet reġgħet tuża l-verżjoni l-antika tal-applikazzjoni, u l-verżjoni l-ġdida sempliċement ġiet diżinstallata.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Il-ħaġa tajba dwar dan hija li anki jekk ikollok numru kbir ta 'talbiet simultanji li jidħlu fl-applikazzjoni, lanqas biss jindunaw bil-ħin ta' waqfien waqt li jimplimentaw il-proċedura ta 'skjerament. Jekk tittestja din l-applikazzjoni billi tuża l-qafas Gatling, li jibgħatha kemm jista' jkun talbiet, allura l-ebda waħda minn dawn it-talbiet ma titwarrab. Dan ifisser li l-utenti tagħna lanqas biss se jindunaw bl-aġġornamenti tal-verżjoni f'ħin reali. Jekk jonqos, ix-xogħol se jkompli fuq il-verżjoni l-antika; jekk jirnexxi, l-utenti jaqilbu għall-verżjoni l-ġdida.

Hemm ħaġa waħda biss li tista 'tfalli - jekk il-kontroll tas-saħħa jirnexxi, iżda l-applikazzjoni tfalli malli l-ammont ta' xogħol jiġi applikat għaliha, jiġifieri, il-kollass iseħħ biss wara li jitlesta l-iskjerament. F'dan il-każ, ser ikollok tirritorna manwalment għall-verżjoni l-antika. Allura, ħares lejn kif nużaw Kubernetes bl-għodod open-source ddisinjati għaliha. Il-proċess ta' skjerament se jkun ħafna aktar faċli jekk tibni dawn l-għodod fil-pipelines Ibni/Skjerament tiegħek. Fl-istess ħin, biex tibda l-iskjerament, tista 'tuża jew l-interface tal-utent jew awtomat għal kollox dan il-proċess billi tuża, pereżempju, impenn għall-kaptan.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Is-Server tal-Bini tagħna se joħloq immaġni Docker, imbottaha f'Docker Hub jew kwalunkwe reġistru li tuża. Docker Hub jappoġġja webhook, sabiex inkunu nistgħu nixprunaw l-iskjerament remot permezz ta 'Deployer bil-mod muri hawn fuq. B'dan il-mod tista' awtomat bis-sħiħ l-iskjerament tal-applikazzjoni tiegħek għall-produzzjoni potenzjali.

Ejja ngħaddu għas-suġġett li jmiss - l-iskala tal-cluster Kubernetes. Innota li l-kmand kubectl huwa kmand tal-iskala. B'aktar għajnuna, nistgħu faċilment inżidu n-numru ta 'repliki fil-cluster eżistenti tagħna. Madankollu, fil-prattika, ġeneralment irridu nżidu n-numru ta 'nodi aktar milli imżiewed.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Fl-istess ħin, matul il-ħinijiet tax-xogħol jista 'jkollok bżonn iżżid, u bil-lejl, biex tnaqqas l-ispiża tas-servizzi tal-Amazon, jista' jkollok bżonn tnaqqas in-numru ta 'istanzi ta' applikazzjoni li qed jaħdmu. Dan ma jfissirx li l-iskala tan-numru biss ta 'miżwed se tkun biżżejjed, għaliex anki jekk wieħed min-nodi jkun idle, xorta jkollok tħallas Amazon għaliha. Jiġifieri, flimkien mal-iskala tal-imżiewed, ser ikollok bżonn tiskala n-numru ta 'magni użati.

Dan jista’ jkun ta’ sfida għaliex kemm jekk nużaw Amazon jew servizz ieħor tal-cloud, Kubernetes ma jaf xejn dwar in-numru ta’ magni li qed jintużaw. Hija nieqsa minn għodda li tippermettilek li tiskala s-sistema fil-livell tan-nodu.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Allura se jkollna nieħdu ħsieb kemm in-nodi kif ukoll il-miżwed. Nistgħu faċilment niskalaw it-tnedija ta 'nodi ġodda billi tuża l-AWS API u l-magni tal-grupp Scaling biex tikkonfigura n-numru ta' nodi tal-ħaddiema Kubernetes. Tista 'wkoll tuża cloud-init jew skript simili biex tirreġistra nodi fil-cluster Kubernetes.

Il-magna l-ġdida tibda fil-grupp Scaling, tibda ruħha bħala node, tirreġistra fir-reġistru tal-kaptan u tibda taħdem. Wara dan, tista 'żżid in-numru ta' repliki għall-użu fuq in-nodi li jirriżultaw. It-tnaqqis jeħtieġ aktar sforz, peress li għandek bżonn tiżgura li pass bħal dan ma jwassalx għall-qerda ta 'applikazzjonijiet li diġà qed jaħdmu wara li titfi magni "mhux meħtieġa". Biex tipprevjeni xenarju bħal dan, għandek bżonn issettja n-nodi għall-istatus "mhux skedabbli". Dan ifisser li l-iskedar default se jinjora dawn in-nodi meta jiskeda l-imżiewed DaemonSet. L-iskeder mhu se jħassar xejn minn dawn is-servers, iżda ma jniedi wkoll l-ebda kontenitur ġdid hemmhekk. Il-pass li jmiss huwa li tneħħi n-nodu tad-drenaġġ, jiġifieri li tittrasferixxi l-imżiewed tal-ġiri minnha għal magna oħra, jew nodi oħra li għandhom kapaċità suffiċjenti għal dan. Ladarba tkun żgurajt li m'għadx hemm kontenituri fuq dawn in-nodi, tista' tneħħihom minn Kubernetes. Wara dan, sempliċement ma jibqgħux jeżistu għal Kubernetes. Sussegwentement, għandek bżonn tuża l-API AWS biex tiddiżattiva nodi jew magni mhux meħtieġa.
Tista 'tuża Amdatu Scalerd, għodda oħra ta' skalar ta 'sors miftuħ simili għall-API AWS. Jipprovdi CLI biex iżżid jew tneħħi nodi fi cluster. Il-karatteristika interessanti tagħha hija l-abbiltà li tikkonfigura l-iskeduler billi tuża l-fajl json li ġej.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Il-kodiċi muri jnaqqas il-kapaċità tal-cluster bin-nofs matul il-perjodu tal-lejl. Jikkonfigura kemm in-numru ta 'repliki disponibbli kif ukoll il-kapaċità mixtieqa tal-cluster Amazon. L-użu ta 'dan l-iskeduler se jnaqqas awtomatikament in-numru ta' nodi bil-lejl u jżidhom filgħodu, u jiffranka l-ispiża tal-użu ta 'nodi minn servizz cloud bħal Amazon. Din il-karatteristika mhix mibnija f'Kubernetes, iżda l-użu ta' Scalerd jippermettilek li tiskala din il-pjattaforma kif trid.

Nixtieq nirrimarka li ħafna nies jgħiduli, "Dak kollu tajjeb u tajjeb, imma xi ngħidu dwar id-database tiegħi, li normalment tkun statika?" Kif tista 'tmexxi xi ħaġa bħal din f'ambjent dinamiku bħal Kubernetes? Fl-opinjoni tiegħi, m'għandekx tagħmel dan, m'għandekx tipprova tmexxi maħżen tad-dejta f'Kubernetes. Dan huwa teknikament possibbli, u hemm tutorials fuq l-Internet dwar dan is-suġġett, iżda se jikkomplika serjament ħajtek.

Iva, hemm kunċett ta 'ħwienet persistenti f'Kubernetes, u tista' tipprova tmexxi ħwienet tad-dejta bħal Mongo jew MySQL, iżda dan huwa kompitu pjuttost intensiv ta 'xogħol. Dan huwa dovut għall-fatt li l-imħażen tad-dejta ma jappoġġjawx bis-sħiħ l-interazzjoni ma 'ambjent dinamiku. Il-biċċa l-kbira tad-databases jeħtieġu konfigurazzjoni sinifikanti, inkluża l-konfigurazzjoni manwali tar-raggruppament, ma jħobbux autoscaling u affarijiet simili oħra.
Għalhekk, m'għandekx tikkomplika ħajtek billi tipprova tmexxi maħżen tad-dejta f'Kubernetes. Organizza x-xogħol tagħhom bil-mod tradizzjonali billi tuża servizzi familjari u sempliċement ipprovdi lil Kubernetes bil-kapaċità li tużahom.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Biex nikkonkludi s-suġġett, nixtieq nintroduċik il-pjattaforma Cloud RTI ibbażata fuq Kubernetes, li t-tim tiegħi qed jaħdem fuqha. Jipprovdi illoggjar ċentralizzat, applikazzjoni u monitoraġġ tal-clusters, u ħafna karatteristiċi utli oħra li se jkunu utli. Juża diversi għodod open-source bħal Grafana biex juri l-monitoraġġ.

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

DEVOXX UK. Kubernetes fil-produzzjoni: Deployment Blue/Green, autoscaling u awtomazzjoni tal-iskjerament. Parti 2

Kien hemm mistoqsija dwar għaliex tuża l-ha-proxy load balancer ma' Kubernetes. Mistoqsija tajba għaliex bħalissa hemm 2 livelli ta 'ibbilanċjar tat-tagħbija. Is-servizzi Kubernetes għadhom jgħixu fuq indirizzi IP virtwali. Ma tistax tużahom għal portijiet fuq magni host esterni għax jekk Amazon tgħabbi żżejjed l-host cloud tagħha, l-indirizz jinbidel. Huwa għalhekk li npoġġu ha-proxy quddiem is-servizzi - biex noħolqu struttura aktar statika għat-traffiku biex jikkomunika bla xkiel ma 'Kubernetes.

Mistoqsija oħra tajba hija kif tista' tieħu ħsieb il-bidliet fl-iskema tad-database meta tagħmel iskjerament blu/aħdar? Il-fatt hu li irrispettivament mill-użu ta 'Kubernetes, it-tibdil tal-iskema tad-database huwa kompitu diffiċli. Trid tiżgura li l-iskema l-antika u l-ġdida huma kompatibbli, u wara tista 'taġġorna d-database u mbagħad taġġorna l-applikazzjonijiet infushom. Tista 'hot swap-database u mbagħad taġġorna l-applikazzjonijiet. Naf b'nies li bdew cluster tad-database kompletament ġdid bi skema ġdida, din hija għażla jekk għandek database bla skema bħal Mongo, iżda xorta waħda mhix biċċa xogħol faċli. Jekk m'għandekx aktar mistoqsijiet, grazzi tal-attenzjoni tiegħek!

Xi reklami 🙂

Grazzi talli bqajt magħna. Tħobb l-artikoli tagħna? Trid tara aktar kontenut interessanti? Appoġġuna billi tagħmel ordni jew tirrakkomanda lill-ħbieb, Cloud VPS għall-iżviluppaturi minn $4.99, analogu uniku ta 'servers ta' livell ta 'dħul, li ġie ivvintat minna għalik: Il-verità kollha dwar VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps minn $19 jew kif taqsam server? (disponibbli b'RAID1 u RAID10, sa 24 core u sa 40GB DDR4).

Dell R730xd 2 darbiet orħos fiċ-ċentru tad-dejta Equinix Tier IV f'Amsterdam? Hawn biss 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV minn $199 fl-Olanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - minn $99! Aqra dwar Kif tibni l-infrastruttura corp. klassi bl-użu ta 'servers Dell R730xd E5-2650 v4 li jiswew 9000 ewro għal ċenteżmu?

Sors: www.habr.com

Żid kumment