Kuendesa zvikumbiro kuVM, Nomad uye Kubernetes

Mhoroi mose! Zita rangu ndiPavel Agaletsky. Ini ndinoshanda sechikwata chinotungamira muchikwata chinogadzira iyo Lamoda delivery system. Muna 2018, ndakataura pamusangano weHighLoad ++, uye nhasi ndinoda kuunza chinyorwa chemushumo wangu.

Musoro wangu wakatsaurirwa kune ruzivo rwekambani yedu mukuendesa masisitimu nemasevhisi kunzvimbo dzakasiyana. Kutanga kubva kunguva dzedu dzeprehistoric, patakaisa masisitimu ese mumasevha akajairwa, achipera nekuchinja zvishoma nezvishoma kubva kuNomad kuenda kuendeswa kuKubernetes. Ndichakuudza kuti sei takazviita uye matambudziko api atakasangana nawo mukuita.

Kuendesa maapplication kuVM

Ngatitangei nenyaya yekuti makore matatu apfuura masisitimu nemasevhisi ese ekambani akaiswa pamaseva enguva dzose. Nehunyanzvi, yaive yakarongeka nenzira yekuti kodhi yese yemasisitimu edu yakachengetwa uye yakaunganidzwa uchishandisa otomatiki maturusi ekugadzira, uchishandisa jenkins. Uchishandisa Ansible, yakaburitswa kubva kune yedu vhezheni control system kuenda kumaseva chaiwo. Uyezve, imwe neimwe system yaive nekambani yedu yakaendeswa kune angangoita 3 maseva: imwe yacho mumusoro, yechipiri pamuswe. Aya masisitimu maviri aive akanyatsofanana kune imwe neimwe mune zvese zvigadziriso, simba, kumisikidzwa, nezvimwe. Musiyano chete pakati pavo waive wekuti musoro wakagashira mushandisi traffic, nepo muswe usina kumbogamuchira mushandisi traffic.

Izvi zvakaitirwei?

Patakatumira zvitsva zvekushandisa kwedu, taida kuve nechokwadi chekuburitswa pasina musono, kureva kuti, pasina mhedzisiro inooneka kune vashandisi. Izvi zvakawanikwa nekuda kwekuti iyo inotevera yakaunganidzwa kuburitswa uchishandisa Ansible yakatenderedzwa kumuswe. Ikoko, vanhu vaibatanidzwa mukutumirwa vaigona kutarisa uye kuona kuti zvinhu zvose zvakanaka: zvose zviyero, zvikamu uye zvikumbiro zvaive kushanda; zvinyorwa zvinodiwa zvinotangwa. Mushure mekunge vagutsikana kuti zvese zvaive zvakanaka, traffic yakachinjwa. Yakatanga kuenda kuserver yaimbova muswe. Uye iyo yaimbove musoro yakaramba isina mushandisi traffic, ichiri neyakapfuura vhezheni yedu yekushandisa pairi.

Saka yaive isina musono kune vashandisi. Nekuti iyo switching ndeye pakarepo, sezvo iri kungochinja iyo balancer. Iwe unogona nyore kudzosera kumashure kune yakapfuura vhezheni nekungochinja iyo balancer kumashure. Isu taigona zvakare kuona kuti application yacho yaikwanisa kugadzira kunyangwe isati yagamuchira mushandisi traffic, izvo zvaive nyore.

Ndezvipi zvakanakira zvatakaona mune zvese izvi?

  1. Chokutanga pane zvose, zvakakwana zvinongoshanda. Wese munhu anonzwisisa kuti chirongwa chekutumira chakadaro chinoshanda sei, nekuti vanhu vazhinji vakamboiswa kumaseva enguva dzose.
  2. Izvi zvakakwana zvakavimbika, sezvo tekinoroji yekuendesa iri nyore, yakaedzwa nezviuru zvemakambani. Mamirioni emaseva akaiswa nenzira iyi. Zvakaoma kutyora chimwe chinhu.
  3. Uye pakupedzisira taigona kuwana atomic deployments. Kutumirwa kunoitika panguva imwe chete kune vashandisi, pasina nhanho inooneka yekuchinja pakati peiyo yekare vhezheni neitsva.

Asi isu takaona zvakare akati wandei kukanganisa mune zvese izvi:

  1. Pamusoro penzvimbo yekugadzira, nharaunda yekusimudzira, kune dzimwe nzvimbo. Semuenzaniso, qa uye preproduction. Panguva iyoyo takanga tine maseva akawanda uye anenge makumi matanhatu masevhisi. Nokuda kwechikonzero ichi zvakanga zvakakodzera pasevhisi yega yega, chengetedza yazvino vhezheni yayo virtual muchina. Uyezve, kana iwe uchida kugadzirisa maraibhurari kana kuisa zvitsva zvinotsamira, unofanirwa kuita izvi munzvimbo dzese. Iwe zvakare waifanira kuwiriranisa iyo nguva yauchazoendesa iyo inotevera vhezheni yechishandiso chako nenguva iyo devops ichiita inodiwa nharaunda marongero. Muchiitiko ichi, zviri nyore kupinda mumamiriro ezvinhu apo nharaunda yedu ichave yakasiyana mune zvose zvakatipoteredza kamwechete. Semuenzaniso, munharaunda yeQA pachava nedzimwe shanduro dzemaraibhurari, uye munzvimbo yekugadzira pachava nemhando dzakasiyana, izvo zvinotungamirira kumatambudziko.
  2. Zvakaoma kuvandudza zvinoenderana chikumbiro chako. Izvo zvinoenderana kwete newe, asi pane imwe timu. Kureva, kubva kuchikwata che devops chinochengetedza maseva. Unofanira kuvapa basa rakakodzera uye tsananguro yezvaunoda kuita.
  3. Panguva iyoyo, taidawo kukamura mamonoliths makuru makuru ataiva nawo kuva masevhisi maduku akasiyana, sezvo tainzwisisa kuti kwaizova akawanda uye akawanda awo. Panguva iyoyo, takanga tatova nevanopfuura 100. Pasevhisi imwe neimwe itsva, zvaive zvakafanira kuumba imwe yakasiyana-siyana yemuchina chaiwo, iyo yaidawo kuchengetedzwa uye kushandiswa. Mukuwedzera, haufaniri motokari imwe chete, asi maviri. Yakawedzerwa kune izvi zvese inzvimbo yeQA. Izvi zvinokonzeresa matambudziko uye zvinoita kuti zvinyanye kuomera iwe kuvaka nekumhanyisa masisitimu matsva. yakaoma, inodhura uye yakareba maitiro.

Naizvozvo, isu takafunga kuti zvingave zviri nyore kubva pakuisa akajairika muchina muchina kuenda kukuisa maapplication edu mumudziyo wedocker. Kana iwe uine docker, iwe unoda sisitimu inogona kumhanyisa application musumbu, sezvo usingakwanise kungosimudza mudziyo. Kazhinji iwe unoda kutarisa kuti mangani midziyo inosimudzwa kuti isimudze otomatiki. Nechikonzero ichi, isu taifanira kusarudza control system.

Takafunga kwenguva refu kuti ndeipi yataigona kutora. Icho chokwadi ndechekuti panguva iyoyo iyi stack yekutumirwa pamaseva enguva dzose yaive yakare, sezvo vaive vasina vhezheni dzazvino dzemashandisirwo ekushandisa. Pane imwe nguva, pakanga paine kunyange FreeBSD, iyo yakanga isiri nyore kutsigira. Isu takanzwisisa kuti taifanira kutamira kudocker nekukurumidza sezvinobvira. Ma devops edu akatarisa chiitiko chavo chiripo nemhinduro dzakasiyana uye vakasarudza system senge Nomad.

Chinja kuna Nomad

Nomad chigadzirwa cheHashiCorp. Ivo vanozivikanwa zvakare kune mamwe magadziriso avo:

Kuendesa zvikumbiro kuVM, Nomad uye Kubernetes

"Consul" chishandiso chekutsvaga sevhisi.

"Terraform" - sisitimu yekutarisira maseva iyo inobvumidza iwe kuti uvagadzirise kuburikidza nekumisikidza, iyo inonzi dhizaini-se-a-code.

"Vagrant" inokutendera kuti utumire chaiwo muchina munharaunda kana mugore kuburikidza neakananga mafaera ekugadzirisa.

Nomad panguva iyoyo yaiita senge mhinduro iri nyore yaigona kukurumidza kuchinjirwa pasina kushandura zvese zvivakwa. Mukuwedzera, zviri nyore chaizvo kudzidza. Ndosaka takasarudza iyo sefiltration system yemudziyo wedu.

Chii chaunoda kuendesa system yako kuNomad?

  1. Chokutanga pane zvose zvaunoda docker mufananidzo chikumbiro chako. Iwe unofanirwa kuivaka uye kuiisa mune docker mufananidzo repository. Muchiitiko chedu, iyi inyanzvi yekugadzira - hurongwa hunokubvumira kuti usundire zvinhu zvakasiyana-siyana zvemarudzi akasiyana-siyana mairi. Inogona kuchengeta zvinyorwa, docker mifananidzo, muimbi PHP mapakeji, NPM mapakeji, zvichingodaro.
  2. Zvakare zvinodiwa configuration file, iyo ichaudza Nomad chii, kupi uye muhuwandu hwaunoda kuendesa.

Kana isu tichitaura nezve Nomad, inoshandisa iyo HCL mutauro seyayo ruzivo faira fomati, inomiririra HashiCorp Configuration Mutauro. Iyi superset yeYaml iyo inokutendera iwe kutsanangura sevhisi yako muNomad mazwi.

Kuendesa zvikumbiro kuVM, Nomad uye Kubernetes

Inokutendera kuti utaure kuti mangani midziyo yaunoda kuendesa, kubva papi mifananidzo yekupfuudza akasiyana ma paramita kwavari panguva yekuendesa. Saka, iwe unodyisa iyi faira kuna Nomad, uye inotangisa midziyo mukugadzira zvinoenderana nayo.

Kwatiri, takaona kuti kungonyora mafaera eHCL akanyatsofanana pasevhisi yega yega kwaisazonyanyonakira, nekuti kune akawanda masevhisi uye dzimwe nguva unoda kuavandudza. Zvinoitika kuti sevhisi imwe inoiswa kwete mune imwe chiitiko, asi mumhando dzakasiyana dzakasiyana. Semuenzaniso, imwe yemasisitimu atinawo mukugadzira ane anopfuura zana zviitiko mukugadzira. Ivo vanomhanya kubva pamifananidzo yakafanana, asi vanosiyana mukugadzirisa zvigadziriso uye mafaera ekugadzirisa.

Naizvozvo, isu takasarudza kuti zvingave zvakatinakira isu kuchengeta ese edu ekugadzirisa mafaera kuti aendeswe mune imwechete repository. Nenzira iyi dzaionekwa: dzaive nyore kuchengetedza uye taigona kuona maitiro ataive nawo. Kana zvichidikanwa, zvakare zvakare nyore kugadzirisa kana kuchinja chimwe chinhu. Kuwedzera hurongwa hutsva zvakare hakuna kuoma - iwe unongoda kugadzira faira yekumisikidza mukati meiyo dhairekitori nyowani. Mukati mayo mune mafaira anotevera: service.hcl, ine tsananguro yebasa redu, uye mamwe env mafaira anobvumira iyi sevhisi chaiyo, iri kuiswa mukugadzirwa, kugadziridzwa.

Kuendesa zvikumbiro kuVM, Nomad uye Kubernetes

Nekudaro, mamwe masisitimu edu anoiswa mukugadzira kwete mukopi imwe, asi mune akati wandei kamwechete. Naizvozvo, isu takasarudza kuti zvingave zvakatinakira isu kuti tichengete kwete ma configs muchimiro chawo chakachena, asi chimiro chavo chetemplate. Uye takasarudza jinja 2. Mune iyi fomati, tinochengeta ese magadzirirwo esevhisi pachayo uye env mafaera anodiwa kwairi.

Pamusoro pezvo, isu takaisa mune repository script yekutumira yakajairika kune ese mapurojekiti, ayo anotendera iwe kuti utange uye kuendesa sevhisi yako mukugadzira, munzvimbo inodiwa, mune yaunoda chinangwa. Muchiitiko icho patakashandura yedu HCL config kuita template, ipapo iyo HCL faira, iyo yaimbove yakajairwa Nomad config, mune iyi kesi yakatanga kutaridzika zvishoma.

Kuendesa zvikumbiro kuVM, Nomad uye Kubernetes

Ndokureva kuti, takatsiva mamwe magadzirirwo enzvimbo neakaiswa akasiyana anotorwa kubva kune env mafaera kana mamwe masosi. Uye zvakare, isu takawana mukana wekuunganidza mafaera eHCL zvine simba, ndiko kuti, isu hatigone kushandisa kwete chete zvakajairwa kusiyanisa kuiswa. Sezvo jinja inotsigira zvishwe uye mamiriro, iwe unogona zvakare kugadzira mafaera ekugadzirisa ipapo, ayo anochinja zvichienderana nekuti ndepapi chaipo paunotumira zvikumbiro zvako.

Semuenzaniso, iwe unoda kuendesa sevhisi yako kune pre-kugadzirwa uye kugadzira. Ngatitii mu-pre-kugadzirwa haudi kumhanyisa cron scripts, asi kungoda kuona sevhisi pane yakaparadzana domain kuti uve nechokwadi chekuti iri kushanda. Kune ani nani anotumira sevhisi, maitiro acho anotaridzika ari nyore uye akajeka. Zvese zvaunoda kuti uite kuita deploy.sh faira, tsanangura kuti ndeipi sevhisi yaunoda kuendesa uye kune chinangwa chipi. Semuenzaniso, iwe unoda kuendesa imwe system kuRussia, Belarus kana Kazakhstan. Kuti uite izvi, ingo shandura imwe yemaparamita, uye iwe uchave neiyo chaiyo yekumisikidza faira.

Kana iyo Nomad sevhisi yatoiswa kune yako cluster, inoita seizvi.

Kuendesa zvikumbiro kuVM, Nomad uye Kubernetes

Kutanga, iwe unoda imwe mhando yekuenzanisa kunze, iyo inogashira ese mushandisi traffic. Ichashanda pamwe chete neConsul uye nekuziva kubva kwairi, pane ipi node, pane ipi IP kero iyo chaiyo sevhisi inowanikwa inoenderana nerimwe zita rezita. Masevhisi muConsul anobva kuNomad pachayo. Sezvo izvi zviri zvigadzirwa kubva kukambani imwechete, zvine hukama kune mumwe nemumwe. Tinogona kutaura kuti Nomad kunze kwebhokisi anogona kunyoresa ese masevhisi akatangwa mairi mukati meConsul.

Kamwe yako yekumberi-yekupedzisira-yekuremedza chiyero inoziva kuti ndeipi sevhisi yekutumira traffic kwairi, inoiendesa kune yakakodzera mudziyo kana akawanda midziyo inoenderana nekushandisa kwako. Sezvingatarisirwa, zvinokoshawo kufunga nezvekuchengeteka. Kunyangwe masevhisi ese achimhanya pamichina yakafanana mumidziyo, izvi zvinowanzoda kudzivirira kupinda kwemahara kubva kune chero sevhisi kune chero imwe. Isu takawana izvi kuburikidza nechikamu. Sevhisi yega yega yakatangwa mune yayo yega network network, pairi mitemo yenzira nemitemo yekubvumidza/kuramba kupinda kune mamwe masisitimu nemasevhisi zvakatemwa. Vaigona kuwanikwa mukati me cluster iyi uye kunze kwayo. Semuenzaniso, kana iwe uchida kudzivirira sevhisi kubva pakubatanidza kune yakatarwa dhatabhesi, izvi zvinogona kuitwa kuburikidza netiweki-level segmentation. Ndokunge, kunyangwe nekukanganisa, haugone kubatana netsaona kubva kunzvimbo yekuyedza kune yako yekugadzira dhatabhesi.

Kuchinja kwacho kwakatidyira marii panyaya yehupfumi hwevanhu?

Shanduko yekambani yese kuenda kuNomad yakatora inenge 5-6 mwedzi. Isu takafamba pane sevhisi-ne-sevhisi, asi nekumhanya kwakaringana. Chikwata chega chega chaifanira kugadzira midziyo yavo yekuitira masevhisi.

Isu takatora nzira yakadai yekuti timu yega yega ine basa rekuita docker mifananidzo yemasisitimu avo zvakazvimirira. DevOps inopa iyo general infrastructure inodiwa pakutumirwa, kureva, tsigiro yesumbu pachayo, tsigiro yeCI system, zvichingodaro. Uye panguva iyoyo, takanga tine anopfuura 60 masisitimu akaendeswa kuNomad, ayo aisvika zviuru zviviri zvemidziyo.

Devops ine basa reiyo general infrastructure yezvese zvine chekuita nekuendesa uye maseva. Uye chimwe nechimwe chikwata chekusimudzira, zvakare, chine basa rekushandisa midziyo yehurongwa hwayo, sezvo chiri chikwata chinoziva zvachinowanzoda mune imwe mudziyo.

Zvikonzero zvekusiya Nomad

Ndeapi mabhenefiti atakawana nekuchinjira kukuendesa tichishandisa Nomad uye docker, pakati pevamwe?

  1. Isu tiri akapa mamiriro akaenzana kunharaunda dzese. Mukusimudzira, QA nharaunda, pre-kugadzirwa, kugadzirwa, iyo yakafanana midziyo mifananidzo inoshandiswa, ine zvakafanana zvinotsamira. Saizvozvo, iwe hauna kana mukana wekuti izvo zvinozoguma mukugadzirwa hazvisi izvo zvawakamboyedza munharaunda yako kana munzvimbo yako yekuyedza.
  2. Takaonawo kuti zvakwana nyore kuwedzera sevhisi itsva. Kubva pakuona kwekutumira, chero masisitimu matsva anotangwa zvakanyanya nyore. Ingoenda kune repository iyo inochengetedza configs, wedzera imwe config kune yako system ipapo, uye iwe wagadzirira. Iwe unogona kuendesa sisitimu yako kugadzira pasina kumwe kuedza kubva kuma devops.
  3. zvose configuration files mune imwe common repository zvakazoitika zvichiongororwa. Panguva yatakatumira masisitimu edu tichishandisa maseva chaiwo, takashandisa Ansible, umo magadzirirwo aive mune imwechete repository. Nekudaro, kune vazhinji vanogadzira izvi zvaive zvakaoma kushanda nazvo. Pano huwandu hwema configs uye kodhi yaunoda kuwedzera kuti utumire sevhisi yave idiki kwazvo. Uyezve, zviri nyore kwazvo kuti devops igadzirise kana kuishandura. Panyaya yekuchinja, semuenzaniso, kune imwe vhezheni yeNomad, ivo vanogona kutora uye nekuvandudza akawanda mafaera ekushandisa ari munzvimbo imwechete.

Asi isu takasanganawo nezvakawanda zvakashata:

Zvakazoitika isu Hatina kukwanisa kutumirwa zvisina musono panyaya yaNomad. Pakuburitsa midziyo pasi pemamiriro akasiyana, inogona kuita kunge ichimhanya, uye Nomad akazviona semudziyo wakagadzirira kugamuchira traffic. Izvi zvakaitika application mukati mayo isati yatombowana mukana wekuvhura. Nokuda kwechikonzero ichi, hurongwa hwakatanga kubudisa zvikanganiso zve500 kwenguva pfupi, nokuti motokari yakatanga kuenda kumudziyo wakanga usati wagadzirira kugamuchira.

Takasangana nezvimwe tsikidzi. Chinonyanya kukosha ndechekuti Nomad haabate sumbu rakakura chaizvo kana uine akawanda masisitimu nemidziyo. Paunenge uchida kuburitsa imwe yemaseva inosanganisirwa muNomad cluster yekugadzirisa, pane yakaringana mukana wekuti cluster yacho haizonzwa zvakanaka uye ichadonha. Mimwe midziyo inogona, semuenzaniso, kudonha uye kusasimuka - izvi zvinokubhadharira zvakanyanya gare gare kana ako ese ekugadzira masisitimu ari musumbu rinotungamirwa naNomad.

Saka takafunga kufunga kuti toenda kupi. Panguva iyoyo, takanga tava kuziva zvataida kuita. Kureva: isu tinoda kuvimbika, zvishoma zvishoma mabasa kupfuura izvo Nomad inopa, uye yakakura, yakagadzikana sisitimu.

Panyaya iyi, sarudzo yedu yakawira Kubernetes sepuratifomu inonyanya kufarirwa yekutanga masumbu. Kunyanya kupiwa kuti kukura uye nhamba yemidziyo yedu yakanga yakakura zvakakwana. Nezvinangwa zvakadaro, Kubernetes yaiita seyakanyanya kukodzera sisitimu yataigona kutarisa.

Shanduko kuenda Kubernetes

Ini ndichakuudza zvishoma nezve ekutanga mazano eKubernetes uye kuti akasiyana sei naNomad.

Kuendesa zvikumbiro kuVM, Nomad uye Kubernetes

Chekutanga pane zvese, iyo inonyanya kukosha pfungwa muKubernetes ipfungwa yepodhi. Pod iboka remudziyo mumwe kana kupfuura zvinogara zvichimhanya pamwechete. Uye ivo vanogara vachishanda sekunge vakanyanya pamushini mumwe chete chaiwo. Ivo vanosvikika kune mumwe nemumwe kuburikidza ne IP 127.0.0.1 pane dzakasiyana zviteshi.

Ngatifungei kuti une PHP application iyo ine nginx uye php-fpm - iyo yekare chirongwa. Zvingangodaro, iwe uchada kuchengeta zvese nginx uye php-fpm midziyo pamwe chete nguva dzese. Kubernetes inobvumidza iwe kuti uite izvi nekuzvitsanangura senge imwe yakajairika pod. Izvi ndizvo chaizvo zvatakatadza kuwana naNomad.

Pfungwa yechipiri ndeye kutumirwa. Icho chokwadi ndechekuti iyo pod pachayo chinhu che ephemeral; inotanga uye inonyangarika. Unoda kuuraya midziyo yako yese yekutanga kutanga, wobva watanga mavhezheni matsva kamwechete, kana kuti unoda kuaburitsa zvishoma nezvishoma? Inotsanangura maitiro aunoita mapods ako, muhuwandu hupi uye maitiro ekuavandudza.

Pfungwa yechitatu ndeye sevhisi. Sevhisi yako ndiyo yako system, iyo inogamuchira imwe traffic uye yozoendesa kune imwe kana akawanda pods inoenderana nebasa rako. Ndiko kuti, zvinokutendera kuti utaure kuti traffic yese inouya kune yakadaro uye sevhisi ine zita rakadaro uye rakadaro rinofanira kutumirwa kune aya chaiwo mapodhi. Uye panguva imwe chete inokupa iwe traffic kuenzanisa. Ndokunge, iwe unogona kuvhura mapodhi maviri echishandiso chako, uye traffic yese inouya ichave yakaenzana pakati pemapodhi ane chekuita nesevhisi iyi.

Uye yechina yakakosha pfungwa ndeye Ingress. Iri ibasa rinomhanya paKubernetes cluster. Inoita semuyero wekunze wemutoro unotora zvese zvikumbiro. Uchishandisa Kubernetes API, Ingress inogona kuona kuti izvi zvikumbiro zvinofanirwa kutumirwa kupi. Uyezve, anoita izvi zviri nyore. Iwe unogona kutaura kuti zvikumbiro zvese kune uyu muenzi uye akadaro uye akadaro URL zvinotumirwa kune ino sevhisi. Uye izvi zvikumbiro zvinouya kune uyu muenzi uye kune imwe URL zvinotumirwa kune imwe sevhisi.

Chinhu chinotonhorera kubva pakuona kweumwe munhu anogadzira application ndechekuti iwe unokwanisa kuzvibata wega wega. Nekuisa iyo Ingress config, unogona kutumira traffic yese ichiuya kune yakadaro uye yakadai API kuparadzanisa midziyo yakanyorwa, semuenzaniso, muGo. Asi iyi traffic, inouya kune imwechete domain, asi kune imwe URL yakasiyana, inofanirwa kutumirwa kumidziyo yakanyorwa muPHP, uko kune yakawanda pfungwa, asi haina kukurumidza.

Kana tikaenzanisa ese aya pfungwa neNomad, tinogona kutaura kuti pfungwa nhatu dzekutanga dziri pamwe chete Service. Uye iyo yekupedzisira pfungwa haipo muNomad pachayo. Isu takashandisa yekunze balancer sezvairi: inogona kuve haproxy, nginx, nginx +, zvichingodaro. Munyaya yecube, haufanire kusuma iyi imwe pfungwa zvakasiyana. Nekudaro, kana iwe ukatarisa Ingress mukati, ingangove nginx, haproxy, kana traefik, asi rudzi rwakavakwa muKubernetes.

Mafungiro ese andakatsanangura ndeaya, zviwanikwa zviripo mukati meKubernetes cluster. Kuti uvatsanangure mucube, iyo yaml fomati inoshandiswa, inoverengeka uye inozivikanwa kupfuura mafaira eHCL mune yeNomad. Asi muhutano vanotsanangura chinhu chimwe chete munyaya ye, semuenzaniso, pod. Vanoti - ndinoda kuendesa mapodhi akadai neakadaro ipapo, nemifananidzo yakadai, muhuwandu hwakadai.

Kuendesa zvikumbiro kuVM, Nomad uye Kubernetes

Uye zvakare, takaona kuti isu takanga tisingadi kugadzira munhu wega sosi neruoko: kutumira, masevhisi, Ingress, nezvimwe. Pane kudaro, isu taida kutsanangura imwe neimwe yemasisitimu edu maererano neKubernetes panguva yekuendeswa, kuti isu tisazofanira kugadziridza nemaoko zvese zvinodiwa zviwanikwa zvinoenderana nenzira kwayo. Helm yakasarudzwa sehurongwa hwaitibvumira kuita izvi.

Basic concepts muHelm

Helm ndiye package manager for Kubernetes. Izvo zvakafanana nemabatiro emapakeji mumitauro yekuronga anoshanda. Ivo vanokutendera iwe kuchengeta sevhisi inosanganisira, semuenzaniso, deployment nginx, deployment php-fpm, config for Ingress, configmaps (ichi chinhu chinokutendera kuti uise env uye mamwe ma paramita ehurongwa hwako) muchimiro che- so- anonzi machati. Panguva imwe chete Helm inomhanya pamusoro peKubernetes. Ndokunge, iyi haisi imwe mhando yehurongwa yakamira parutivi, asi imwe sevhisi yakatangwa mukati mecube. Iwe unopindirana nayo kuburikidza neAPI yayo kuburikidza nekoni yekuraira. Kurerukira kwayo uye runako ndechekuti kunyangwe helm ikatsemuka kana kuibvisa kubva musumbu, masevhisi ako haazopera, nekuti helm inongoshanda chete kutanga sisitimu. Kubernetes pachayo ndiyo inokonzera mashandiro uye mamiriro emasevhisi.

Takazvionawo kuti templateization, iyo yatakambomanikidzwa kuita isu pachedu nekuunza jinja mumagadzirirwo edu, chimwe chezvinhu zvikuru zvehelm. Ese magadzirirwo aunogadzira masisitimu ako anochengetwa muhelm mumhando yematemplate, zvishoma zvakafanana nejinja, asi, kutaura zvazviri, uchishandisa template yemutauro weGo, umo helm yakanyorwa, saKubernetes.

Helm inowedzera mamwe mashoma pfungwa kwatiri.

chati - iyi ndiyo tsanangudzo yebasa rako. Mune mamwe vatariri vepakeji yaizodaidzwa kuti package, bundle kana chimwe chinhu chakafanana. Pano panonzi chati.

Values ndiwo akasiyana aunoda kushandisa kuvaka configs kubva kumatemplate.

rusununguko. Nguva imwe neimwe sevhisi inoiswa uchishandisa helm inogamuchira yakawedzera vhezheni yekuburitswa. Helm inoyeuka kuti sevhisi config yaive chii mukuburitswa kwekare, kuburitswa kusati kwasvika, zvichingodaro. Naizvozvo, kana iwe uchida kudzoreredza, ingo mhanyisa helm callback command, uchinongedzera kune yakapfuura kuburitswa vhezheni. Kunyangwe kana iyo inowirirana kumisikidzwa mune yako repository isiri kuwanikwa panguva yekudzoreredzwa, helm icharamba ichirangarira zvayanga iri uye ichadzosera system yako kumamiriro yayaive mukuburitswa kwapfuura.

Muchiitiko kana isu tichishandisa helm, magadzirirwo enguva dzose eKubernetes zvakare anoshanduka kuita matemplate umo zvinogoneka kushandisa zvinoshanduka, mabasa, uye kushandisa zvirevo zvine zvirevo. Nenzira iyi unogona kuunganidza yako sevhisi config zvichienderana nenharaunda.

Kuendesa zvikumbiro kuVM, Nomad uye Kubernetes

Mukuita, takasarudza kuita zvinhu zvishoma zvishoma pane zvatakaita naNomad. Kana muNomad zvese deployment configs uye n-variables izvo zvaidiwa kuendesa sevhisi yedu zvakachengetwa mune imwe repository, pano isu takafunga kuzvipatsanura kuita maviri akasiyana repositori. Iyo "deploy" repository inongochengeta n-mavheti anodiwa pakutumirwa, uye "helm" repository zvitoro zvinogadzira kana machati.

Kuendesa zvikumbiro kuVM, Nomad uye Kubernetes

Izvi zvakatipei?

Kunyangwe chokwadi chekuti isu hatichengete chero yakanyatso nyoro data mumafaira ekugadzirisa ivo pachavo. Semuenzaniso, mapassword kune databases. Izvo zvakachengetwa sezvakavanzika muKubernetes, asi zvakadaro, kuchine zvimwe zvinhu ipapo zvatisingade kupa munhu wese mukana mazviri. Naizvozvo, kupinda kune "deploy" repository kune kushomeka, uye "helm" repository inongove ine tsananguro yebasa. Nechikonzero ichi, inogona kusvikwa zvakachengeteka neruzhinji rwakakura rwevanhu.

Sezvo isu tisina kugadzirwa chete, asiwo mamwe nharaunda, nekuda kwekupatsanurwa uku tinogona kushandisa zvakare machati ehelm yedu kuendesa masevhisi kwete chete kugadzira, asiwo, semuenzaniso, kune QA nharaunda. Kunyangwe kuvaendesa munharaunda vachishandisa Minikube - ichi chinhu chekumhanyisa Kubernetes munharaunda.

Mukati medura rega rega, takasiya chikamu mudhairekitori dzakasiyana dzebasa rega rega. Ndiko kuti, mukati medhairekitori rega rega mune matemplate ane hukama nechati inoenderana uye inotsanangura zviwanikwa zvinoda kuendeswa kuvhura sisitimu yedu. Isu takasiya chete envs mu "deploy" repository. Muchiitiko ichi, isu hatina kushandisa templating tichishandisa jinja, nokuti helm pachayo inopa templating kunze kwebhokisi - iyi ndeimwe yemabasa ayo makuru.

Isu takasiya deployment script - deploy.sh, iyo inorerutsa uye inomisa kuvhurwa kwekutumira uchishandisa helm. Saka, kune ani nani anoda kuendesa, iyo deployment interface inotaridzika chaizvo sezvayakaita pakuendesa kuburikidza neNomad. Iyo yakafanana deploy.sh, zita rebasa rako, uye kwaunoda kuiendesa. Izvi zvinoita kuti helm itange mukati. Iyo, zvakare, inounganidza zvigadziriso kubva kumatemplate, inoisa inodiwa mafaera mukati mayo, yobva yaatumira, ichiavhura muKubernetes.

zvakawanikwa

Iyo Kubernetes sevhisi inoita kunge yakaoma kupfuura Nomad.

Kuendesa zvikumbiro kuVM, Nomad uye Kubernetes

Apa traffic inobuda inouya kuIngress. Iyi ingori yekumberi controller, iyo inotora zvese zvikumbiro uye zvozozvitumira kune masevhisi anoenderana nedata rekukumbira. Iyo inovasarudza zvichibva pane zvigadziriso izvo zviri chikamu chetsananguro yechishandiso chako muhelm uye ndevapi vanogadzira vanogadzika vega. Iyo sevhisi inotumira zvikumbiro kune mapods ayo, kureva, midziyo chaiyo, kuenzanisa traffic inouya pakati pemidziyo yese yebasa iri. Uye, hongu, isu hatifanirwe kukanganwa kuti isu hatifanirwe kuenda chero kubva kune chengetedzo padanho retiweki. Naizvozvo, segmentation inoshanda muKubernetes cluster, iyo yakavakirwa pakumaka. Masevhisi ese ane mamwe ma tag ayo masevhisi 'kodzero yekuwana kune zvimwe zvekunze / zvemukati zviwanikwa mukati kana kunze kwesumbu.

Patakaita shanduko, takaona kuti Kubernetes aive nehunyanzvi hwese hweNomad, hwatakamboshandisa, uyezve akawedzera zvinhu zvakawanda zvitsva. Inogona kuwedzerwa kuburikidza nemapulagi, uye muchokwadi kuburikidza netsika zviwanikwa mhando. Ndiko kuti, iwe une mukana kwete kungoshandisa chimwe chinhu chinouya naKubernetes kunze kwebhokisi, asi kugadzira yako sosi uye sevhisi inoverenga yako sosi. Izvi zvinokupa iwe dzimwe sarudzo dzekuwedzera sisitimu yako pasina kudzoreredza Kubernetes uye pasina kuda kugadziridzwa.

Muenzaniso wekushandiswa kwakadaro ndiPrometheus, iyo inomhanya mukati meKubernetes cluster. Kuti itange kuunganidza metrics kubva kune imwe sevhisi, isu tinofanirwa kuwedzera imwe mhando yechishandiso, iyo inonzi sevhisi yekutarisa, kune tsananguro yebasa. Prometheus, nekuda kwekuti inogona kuverenga yemhando yemhando yemhando kana yakatangwa muKubernetes, inotanga kuunganidza metrics kubva kuhurongwa hutsva. Zviri nyore.

Kwekutanga kutumira kwatakaita kuKubernetes kwaive munaKurume 2018. Uye panguva iyi hatina kumbosangana nematambudziko nazvo. Inoshanda zvakadzikama pasina akakosha tsikidzi. Mukuwedzera, tinogona kuwedzera kuwedzera. Nhasi tine zvakakwana zvekwaniso yainayo, uye isu tinonyatsoda kumhanya kwekusimudzira kweKubernetes. Parizvino, anopfuura zviuru zvitatu zvemidziyo zviri muKubernetes. Iyo cluster inotora maNode akati wandei. Panguva imwecheteyo, inoshanda, yakagadzikana uye inodzoreka zvakanyanya.

Source: www.habr.com

Voeg