Kutumiza mapulogalamu ku VM, Nomad ndi Kubernetes

Moni nonse! Dzina langa ndine Pavel Agaletsky. Ndimagwira ntchito ngati gulu lotsogolera gulu lomwe limapanga njira yobweretsera Lamoda. Mu 2018, ndinalankhula pamsonkhano wa HighLoad ++, ndipo lero ndikufuna kufotokoza zolemba za lipoti langa.

Mutu wanga umaperekedwa ku zomwe kampani yathu ikuchita potumiza machitidwe ndi mautumiki kumadera osiyanasiyana. Kuyambira nthawi zakale, pomwe tidayika makina onse kukhala ma seva wamba, kutha ndikusintha pang'onopang'ono kuchokera ku Nomad kupita ku Kubernetes. Ndikuuzani chifukwa chake tinachitira izi komanso mavuto omwe tinali nawo panthawiyi.

Kutumiza mapulogalamu ku VM

Tiyeni tiyambe ndi mfundo yakuti zaka 3 zapitazo machitidwe ndi ntchito zonse za kampani zidayikidwa pa ma seva okhazikika. Mwaukadaulo, idakonzedwa m'njira yoti ma code onse a machitidwe athu adasungidwa ndikusonkhanitsidwa pogwiritsa ntchito zida zolumikizirana zokha, pogwiritsa ntchito jenkins. Pogwiritsa ntchito Ansible, idatulutsidwa kuchokera kumayendedwe athu owongolera kukhala ma seva enieni. Komanso, dongosolo lililonse lomwe kampani yathu linali nayo idatumizidwa kwa ma seva osachepera a 2: imodzi pamutu, yachiwiri pamchira. Machitidwe awiriwa anali ofanana mwamtheradi m'makonzedwe awo onse, mphamvu, kasinthidwe, ndi zina zotero. Kusiyana kokha pakati pawo kunali kuti mutu udalandira kuchuluka kwa anthu ogwiritsa ntchito, pomwe mchira sunalandirepo magalimoto.

Kodi chinali cha chiyani?

Pamene tidatumiza zatsopano zamapulogalamu athu, tinkafuna kuwonetsetsa kuti pulogalamu yathu yatulutsidwa, ndiye kuti, popanda zotsatira zowonekera kwa ogwiritsa ntchito. Izi zidatheka chifukwa chakuti kutulutsidwa kotsatira komwe kunapangidwa pogwiritsa ntchito Ansible kudatulutsidwa mpaka mchira. Kumeneko, anthu omwe adagwira nawo ntchitoyo amatha kuyang'ana ndikuwonetsetsa kuti zonse zili bwino: ma metrics onse, zigawo ndi ntchito zikugwira ntchito; zolemba zofunika zimayambitsidwa. Atangotsimikiza kuti zonse zili bwino, magalimoto adasinthidwa. Idayamba kupita ku seva yomwe inali mchira kale. Ndipo yomwe kale inali mutu idakhalabe yopanda anthu ogwiritsa ntchito, pomwe inali ndi mtundu wakale wa pulogalamu yathu.

Kotero izo zinali zopanda msoko kwa ogwiritsa ntchito. Chifukwa kusinthaku kumachitika nthawi yomweyo, chifukwa ndikungosintha chowongolera. Mutha kubwereranso ku mtundu wam'mbuyo mosavuta ndikungosinthiranso chowerengera. Titha kutsimikiziranso kuti pulogalamuyo imatha kupanga ngakhale isanalandire kuchuluka kwa ogwiritsa ntchito, zomwe zinali zosavuta.

Kodi tidawona zabwino zotani mu zonsezi?

  1. Choyamba, ndi zokwanira zimangogwira ntchito. Aliyense amamvetsetsa momwe ndondomeko yotumizira yotere imagwirira ntchito, chifukwa anthu ambiri adatumizirapo ma seva okhazikika.
  2. Izi ndi zokwanira modalirika, popeza teknoloji yotumizira ndi yosavuta, yoyesedwa ndi zikwi zamakampani. Mamiliyoni a maseva amatumizidwa motere. Ndizovuta kuswa chinachake.
  3. Ndipo potsiriza ife tikhoza kupeza kutumizidwa kwa atomiki. Kutumiza komwe kumachitika nthawi imodzi kwa ogwiritsa ntchito, popanda gawo lodziwika lakusintha pakati pa mtundu wakale ndi watsopano.

Koma tidawonanso zolakwika zingapo pazonsezi:

  1. Kuphatikiza pa malo opangira zinthu, malo otukuka, palinso malo ena. Mwachitsanzo, qa ndi preproduction. Panthawiyo tinali ndi ma seva ambiri ndi mautumiki pafupifupi 60. Pachifukwa ichi kunali kofunikira pa ntchito iliyonse, sungani mtundu waposachedwa wake makina pafupifupi. Komanso, ngati mukufuna kusintha malaibulale kapena kukhazikitsa zodalira zatsopano, muyenera kuchita izi m'malo onse. Mumafunikanso kulunzanitsa nthawi yoti mutumize mtundu watsopano wotsatira wa pulogalamu yanu ndi nthawi yomwe ma devops amakwaniritsa zofunikira za chilengedwe. Pamenepa, n’zosavuta kulowa m’malo omwe malo athu adzakhala osiyana pang’ono m’madera onse mwakamodzi. Mwachitsanzo, m'malo a QA padzakhala mabuku ena a mabuku, ndipo m'malo opangira zinthu padzakhala zosiyana, zomwe zidzabweretse mavuto.
  2. Zovuta kukonzanso zodalira ntchito yanu. Sizitengera inu, koma gulu lina. Mwakutero, kuchokera ku gulu la devops lomwe limasunga ma seva. Muyenera kuwapatsa ntchito yoyenera ndi kufotokozera zomwe mukufuna kuchita.
  3. Panthaŵiyo, tinkafunanso kugawa ma monoliths aakulu amene tinali nawo m’mautumiki ang’onoang’ono ang’onoang’ono, popeza tinazindikira kuti padzakhala ochuluka. Panthawiyo, tinali kale ndi oposa 100. Pautumiki watsopano uliwonse, kunali koyenera kupanga makina atsopano atsopano, omwe amafunikanso kusamalidwa ndi kutumizidwa. Komanso, simufunika galimoto imodzi, koma osachepera awiri. Zowonjezera pa zonsezi ndi chilengedwe cha QA. Izi zimabweretsa mavuto ndikupangitsa kuti zikhale zovuta kuti mupange ndikuyendetsa machitidwe atsopano. njira zovuta, zodula komanso zazitali.

Chifukwa chake, tidaganiza kuti zingakhale zabwino kwambiri kuchoka pakugwiritsa ntchito makina okhazikika mpaka kuyika mapulogalamu athu mumtsuko wa docker. Ngati muli ndi docker, muyenera dongosolo lomwe limatha kuyendetsa ntchitoyo pagulu, chifukwa simungathe kungokweza chidebe. Nthawi zambiri mumafuna kutsatira kuchuluka kwa zotengera zomwe zakwezedwa kuti zidzikweza zokha. Pachifukwa ichi, tinafunika kusankha dongosolo lolamulira.

Tinaganizira kwa nthawi yaitali kuti tingatenge iti. Chowonadi n'chakuti panthawiyo zosungira izi pa ma seva wamba zinali zachikale, chifukwa analibe machitidwe aposachedwa. Panthawi ina, panali FreeBSD, yomwe sinali yabwino kuthandizira. Tidamvetsetsa kuti tifunika kusamukira ku docker mwachangu momwe tingathere. Ma devops athu adayang'ana zomwe adakumana nazo ndi mayankho osiyanasiyana ndikusankha dongosolo ngati Nomad.

Pitani ku Nomad

Nomad ndi chida cha HashiCorp. Amadziwikanso ndi mayankho awo ena:

Kutumiza mapulogalamu ku VM, Nomad ndi Kubernetes

"Consul" ndi chida chopezera ntchito.

"Terraform" - dongosolo loyang'anira ma seva omwe amakulolani kuti muwakonze kudzera mu kasinthidwe, zomwe zimatchedwa zomangamanga-monga-code.

"Wamba" amakulolani kuti mutumize makina enieni kwanuko kapena mumtambo kudzera pamafayilo osintha ena.

Nomad panthawiyo inkawoneka ngati yankho losavuta lomwe lingasinthidwe mwachangu popanda kusintha zida zonse. Komanso, n'zosavuta kuphunzira. Ichi ndichifukwa chake tidasankha ngati njira yosefera pachidebe chathu.

Mukufunikira chiyani kuti mutumize makina anu ku Nomad?

  1. Choyamba muyenera chithunzi cha docker ntchito yanu. Muyenera kuyimanga ndikuyiyika pamalo osungiramo zithunzi za docker. Kwa ife, ichi ndi chojambula - kachitidwe kamene kamakulolani kukankhira zinthu zosiyanasiyana zamitundu yosiyanasiyana mmenemo. Ikhoza kusunga zolemba zakale, zithunzi za docker, mapepala a PHP, mapepala a NPM, ndi zina zotero.
  2. Komanso zofunika configuration file, yomwe idzauze Nomad chiyani, kuti ndi kuchuluka kwanji komwe mukufuna kutumiza.

Tikamalankhula za Nomad, imagwiritsa ntchito chilankhulo cha HCL ngati fayilo yake yazidziwitso, yomwe imayimira Chilankhulo cha HashiCorp Configuration. Ili ndi gulu lapamwamba la Yaml lomwe limakupatsani mwayi wofotokozera ntchito yanu m'mawu a Nomad.

Kutumiza mapulogalamu ku VM, Nomad ndi Kubernetes

Imakulolani kuti munene kuchuluka kwa nkhokwe zomwe mukufuna kuyika, kuchokera pazithunzi zomwe zimadutsa magawo osiyanasiyana kwa iwo panthawi yotumizidwa. Chifukwa chake, mumadyetsa fayiloyi kwa Nomad, ndipo imayambitsa zotengera kuti zipangidwe molingana ndi izo.

Kwa ife, tazindikira kuti kungolemba mafayilo a HCL ofanana kwambiri pautumiki uliwonse sikungakhale kosavuta, chifukwa pali ntchito zambiri ndipo nthawi zina mumafuna kuzisintha. Zimachitika kuti ntchito imodzi imaperekedwa osati nthawi imodzi, koma mumitundu yosiyanasiyana. Mwachitsanzo, imodzi mwamakina omwe tili nawo popanga imakhala ndi zochitika zopitilira 100 popanga. Amathamanga kuchokera kuzithunzi zomwezo, koma amasiyana muzosintha zosintha ndi mafayilo osintha.

Chifukwa chake, tidaganiza kuti zingakhale zabwino kwa ife kusunga mafayilo athu onse osinthira kuti atumizidwe m'malo amodzi. Mwanjira iyi zidawoneka: zinali zosavuta kuzisamalira ndipo timatha kuwona machitidwe omwe tinali nawo. Ngati ndi kotheka, ndizosavuta kusintha kapena kusintha china chake. Kuwonjezera dongosolo latsopano sikovuta - mumangofunika kupanga fayilo yokonzekera mkati mwachikwatu chatsopano. M'kati mwake muli mafayilo otsatirawa: service.hcl, yomwe ili ndi kufotokozera za utumiki wathu, ndi mafayilo ena a env omwe amalola kuti ntchitoyi, yomwe ikugwiritsidwa ntchito popanga, ikonzedwe.

Kutumiza mapulogalamu ku VM, Nomad ndi Kubernetes

Komabe, machitidwe athu ena amatumizidwa mukupanga osati m'kope limodzi, koma angapo nthawi imodzi. Chifukwa chake, tidaganiza kuti zingakhale zabwino kwa ife kuti tisasunge ma configs mu mawonekedwe awo oyera, koma mawonekedwe awo. Ndipo ife tinasankha jinja 2. Mwanjira iyi, timasunga ma configs a ntchito yokhayo komanso mafayilo a env omwe amafunikira.

Kuphatikiza apo, tayika m'malo osungiramo zolemba zofananira ndi ma projekiti onse, zomwe zimakupatsani mwayi woyambitsa ndikutumiza ntchito yanu popanga, kumalo omwe mukufuna, kupita kumalo omwe mukufuna. Pankhani yomwe tidatembenuza makonzedwe athu a HCL kukhala template, ndiye fayilo ya HCL, yomwe kale inali yokhazikika ya Nomad, pankhaniyi idayamba kuwoneka mosiyana.

Kutumiza mapulogalamu ku VM, Nomad ndi Kubernetes

Ndiko kuti, tidasintha masinthidwe amtundu wina ndikuyika zosintha zomwe zimatengedwa kuchokera kumafayilo a env kapena magwero ena. Kuphatikiza apo, tinali ndi mwayi wosonkhanitsa mafayilo a HCL mwamphamvu, ndiye kuti, sitingagwiritse ntchito zolemba wamba zokha. Popeza jinja imathandizira malupu ndi mikhalidwe, mutha kupanganso mafayilo osinthira pamenepo, omwe amasintha kutengera komwe mumayika mapulogalamu anu.

Mwachitsanzo, mukufuna kutumiza ntchito yanu pakupanga ndi kupanga. Tinene kuti popanga zisanachitike simukufuna kuyendetsa zolemba za cron, koma ndikungofuna kuwona ntchitoyo pagawo lina kuti muwonetsetse kuti ikugwira ntchito. Kwa aliyense amene amagwiritsa ntchito ntchitoyi, ndondomekoyi ikuwoneka yosavuta komanso yowonekera. Zomwe muyenera kuchita ndikukhazikitsa fayilo ya deploy.sh, tchulani ntchito yomwe mukufuna kugwiritsa ntchito komanso chandamale. Mwachitsanzo, mukufuna kutumiza dongosolo linalake ku Russia, Belarus kapena Kazakhstan. Kuti muchite izi, ingosinthani magawo amodzi, ndipo mudzakhala ndi fayilo yoyenera yosinthira.

Pamene ntchito ya Nomad yatumizidwa kale ku gulu lanu, zikuwoneka ngati izi.

Kutumiza mapulogalamu ku VM, Nomad ndi Kubernetes

Choyamba, muyenera mtundu wina wa balancer kunja, amene adzalandira onse osuta magalimoto. Igwira ntchito limodzi ndi Consul ndikupeza komwe, pa node iti, pa adilesi ya IP yomwe pali ntchito inayake yomwe imagwirizana ndi dzina lachidziwitso. Ntchito ku Consul zimachokera ku Nomad mwiniwake. Popeza izi ndi zinthu zochokera ku kampani imodzi, zimagwirizana kwambiri. Titha kunena kuti Nomad m'bokosilo akhoza kulembetsa mautumiki onse omwe adakhazikitsidwa mkati mwa Consul.

Katundu wanu wakutsogolo akadziwa ntchito yomwe angatumizeko magalimoto, amatumiza ku chidebe choyenera kapena zotengera zingapo zomwe zimagwirizana ndi pulogalamu yanu. Mwachibadwa, m'pofunikanso kuganizira za chitetezo. Ngakhale ntchito zonse zimagwira ntchito pamakina ofanana omwe ali m'mitsuko, izi nthawi zambiri zimafunikira kuletsa mwayi wopezeka pautumiki uliwonse kupita kwina. Tidakwanitsa izi kudzera mu magawo. Utumiki uliwonse unayambika mu intaneti yake yeniyeni, yomwe malamulo oyendetsera maulendo ndi malamulo olola / kukana kupeza machitidwe ndi mautumiki ena adayikidwa. Zitha kupezeka mkati mwa tsango ili komanso kunja kwake. Mwachitsanzo, ngati mukufuna kuletsa ntchito kuti isalumikizidwe ndi nkhokwe inayake, izi zitha kuchitika kudzera mu magawo a network. Ndiko kuti, ngakhale molakwitsa, simungathe kulumikiza mwangozi kuchokera kumalo oyesera kupita ku database yanu yopanga.

Kodi kusinthako kunatiwonongera ndalama zingati pankhani ya ntchito za anthu?

Kusintha kwa kampani yonse kupita ku Nomad kunatenga pafupifupi miyezi 5-6. Tinasuntha pa ntchito-ndi-ntchito, koma mofulumira. Gulu lirilonse lidayenera kupanga zotengera zawozawo zogwirira ntchito.

Tatengera njira yoteroyo kuti gulu lililonse limayang'anira zithunzi za docker pamakina awo palokha. Ma DevOps amapereka maziko ofunikira kuti atumizidwe, ndiye kuti, kuthandizira gululo, kuthandizira dongosolo la CI, ndi zina zotero. Ndipo panthawiyo, tinali ndi makina opitilira 60 omwe adasamukira ku Nomad, omwe anali pafupifupi 2 zikwizikwi.

Devops ali ndi udindo pazomangamanga zonse zokhudzana ndi kutumiza ndi ma seva. Ndipo gulu lililonse lachitukuko, nalonso, limakhala ndi udindo wokhazikitsa zida zamakina ake, popeza ndi gulu lomwe limadziwa zomwe limafunikira mu chidebe china.

Zifukwa zosiya Nomad

Ndi maubwino ati omwe tidapeza posinthira kutumizidwa pogwiritsa ntchito Nomad ndi docker, pakati pa ena?

  1. ife anapereka mikhalidwe yofanana kwa chilengedwe chonse. Pachitukuko, chilengedwe cha QA, kupanga chisanadze, kupanga, zithunzi zachidebe zomwezo zimagwiritsidwa ntchito, ndi kudalira komweko. Chifukwa chake, mulibe mwayi woti zomwe zitha kupangidwa sizomwe mudayesa kwanuko kapena komwe mumayesa.
  2. Tinapezanso kuti ndi zokwanira zosavuta kuwonjezera ntchito yatsopano. Kuchokera pamawonedwe otumizidwa, machitidwe atsopano aliwonse amayambitsidwa mosavuta. Ingopitani kumalo osungira omwe amasungira ma configs, onjezani kasinthidwe kena ka dongosolo lanu pamenepo, ndipo mwakonzeka. Mutha kuyika makina anu kuti apange popanda kuyesetsa kwina kuchokera ku ma devops.
  3. onse configuration files m'malo amodzi wamba zidakhala zikuwunikiridwa. Pa nthawi yomwe timayika makina athu pogwiritsa ntchito ma seva enieni, tidagwiritsa ntchito Ansible, momwe ma configs anali m'malo omwewo. Komabe, kwa opanga ambiri izi zinali zovuta kwambiri kugwira nawo ntchito. Apa kuchuluka kwa ma configs ndi ma code omwe muyenera kuwonjezera kuti mutumize ntchitoyo kwakhala kocheperako. Kuphatikiza apo, ndizosavuta kuti ma devops akonze kapena kusintha. Pakusintha, mwachitsanzo, ku mtundu watsopano wa Nomad, atha kutenga ndikusintha mafayilo onse omwe ali pamalo amodzi.

Koma tidakumananso ndi zovuta zingapo:

Zinapezeka kuti ife sanathe kukwaniritsa kutumizidwa mosasamala pa nkhani ya Nomad. Mukatulutsa zotengera mosiyanasiyana, zitha kukhala kuti zikuyenda, ndipo Nomad adaziwona ngati chidebe chokonzeka kulandira magalimoto. Izi zidachitika pulogalamuyo isanakhale ndi mwayi woyambitsa. Pachifukwa ichi, dongosololi linayamba kutulutsa zolakwika za 500 kwa nthawi yochepa, chifukwa magalimoto anayamba kupita ku chidebe chomwe sichinali chokonzeka kuvomereza.

Tinakumana ndi zina nsikidzi. Choyipa chachikulu ndichakuti Nomad sagwira gulu lalikulu bwino ngati muli ndi makina ambiri ndi zotengera. Mukafuna kutulutsa imodzi mwama seva omwe akuphatikizidwa mgulu la Nomad kuti akonzere, pali mwayi waukulu kuti gululo silingamve bwino ndipo litha. Zotengera zina zitha, mwachitsanzo, kugwa osawuka - izi zidzakuwonongerani ndalama zambiri pambuyo pake ngati makina anu onse opanga ali mgulu loyendetsedwa ndi Nomad.

Conco, tinaganiza zoganizila kumene tiyenela kupitako. Panthawi imeneyo, tinakhala ozindikira kwambiri zomwe tikufuna kukwaniritsa. Izi: tikufuna kudalirika, ntchito zochulukirapo kuposa zomwe Nomad amapereka, ndi dongosolo lokhwima, lokhazikika.

Pachifukwa ichi, kusankha kwathu kudagwera Kubernetes ngati nsanja yotchuka kwambiri yoyambitsa magulu. Makamaka chifukwa kukula ndi chiwerengero cha matumba athu anali aakulu mokwanira. Pazifukwa zotere, Kubernetes adawoneka ngati njira yoyenera kwambiri yomwe titha kuyang'ana.

Kusintha kwa Kubernetes

Ndikuuzani pang'ono za malingaliro oyambira a Kubernetes ndi momwe amasiyanirana ndi Nomad.

Kutumiza mapulogalamu ku VM, Nomad ndi Kubernetes

Choyamba, lingaliro lofunikira kwambiri ku Kubernetes ndilo lingaliro la pod. Pod ndi gulu la chidebe chimodzi kapena zingapo zomwe zimayendera limodzi nthawi zonse. Ndipo nthawi zonse amagwira ntchito ngati makina amodzi. Amatha kupezeka wina ndi mnzake kudzera pa IP 127.0.0.1 pamadoko osiyanasiyana.

Tiyerekeze kuti muli ndi pulogalamu ya PHP yomwe ili ndi nginx ndi php-fpm - dongosolo lachikale. Mwinamwake, mudzafuna kusunga zonse za nginx ndi php-fpm pamodzi nthawi zonse. Kubernetes amakulolani kuti mukwaniritse izi powafotokozera ngati pod wamba. Izi ndi zomwe sitinathe kupeza ndi Nomad.

Lingaliro lachiwiri ndilo kutumizidwa. Chowonadi ndi chakuti pod palokha ndi chinthu chachilendo; imayamba ndikuzimiririka. Mukufuna kupha zotengera zanu zonse kaye, kenako ndikuyambitsanso zatsopano nthawi imodzi, kapena mukufuna kuzitulutsa pang'onopang'ono? Imalongosola momwe mumatumizira ma pod anu, kuchuluka kwake komanso momwe mungasinthire.

Lingaliro lachitatu ndilo utumiki. Ntchito yanu kwenikweni ndi dongosolo lanu, lomwe limalandira kuchuluka kwa magalimoto ndikutumiza ku imodzi kapena zingapo zomwe zikugwirizana ndi ntchito yanu. Ndiko kuti, zimakulolani kuti munene kuti magalimoto onse obwera kuzinthu zotere ndi izi ndi dzina lotere ayenera kutumizidwa ku ma pod awa. Ndipo nthawi yomweyo imakupatsirani kusanja kwa magalimoto. Ndiye kuti, mutha kuyambitsa ma pod awiri a pulogalamu yanu, ndipo magalimoto onse omwe akubwera azikhala olingana pakati pa ma pod okhudzana ndi ntchitoyi.

Ndipo lingaliro lofunikira lachinayi ndilo Ingress. Uwu ndi ntchito yomwe imayenda pagulu la Kubernetes. Imakhala ngati chowongolera katundu wakunja chomwe chimatenga zopempha zonse. Pogwiritsa ntchito Kubernetes API, Ingress ikhoza kudziwa komwe zopemphazi ziyenera kutumizidwa. Komanso, amachita izi momasuka kwambiri. Mutha kunena kuti zopempha zonse kwa wolandirayo ndi ma URL awa amatumizidwa ku msonkhanowu. Ndipo zopempha izi zomwe zimabwera kwa wolandirayo komanso ku URL ina zimatumizidwa ku ntchito ina.

Chosangalatsa kwambiri pakuwona kwa munthu yemwe amapanga pulogalamu ndikuti mumatha kudziwongolera nokha. Pokhazikitsa ma Ingress config, mutha kutumiza magalimoto onse omwe akubwera ku API yotere kuti alekanitse zolembedwa, mwachitsanzo, mu Go. Koma magalimotowa, akubwera kumalo omwewo, koma ku URL yosiyana, ayenera kutumizidwa kuzinthu zolembedwa mu PHP, kumene kuli zomveka zambiri, koma sizithamanga kwambiri.

Tikayerekeza malingaliro onsewa ndi Nomad, titha kunena kuti malingaliro atatu oyamba onse ali pamodzi Utumiki. Ndipo lingaliro lomaliza kulibe ku Nomad komwe. Tidagwiritsa ntchito balancer yakunja monga: itha kukhala haproxy, nginx, nginx +, ndi zina zotero. Pankhani ya cube, simuyenera kutchula lingaliro lowonjezera ili padera. Komabe, ngati muyang'ana Ingress mkati, mwina ndinx, haproxy, kapena traefik, koma yomangidwa mu Kubernetes.

Malingaliro onse omwe ndidawafotokozera, kwenikweni, ndi zinthu zomwe zilipo mkati mwa gulu la Kubernetes. Kuti muwafotokoze mu cube, mawonekedwe a yaml amagwiritsidwa ntchito, omwe amawerengedwa komanso odziwika bwino kuposa mafayilo a HCL pankhani ya Nomad. Koma mwadongosolo amafotokozera zomwezo pankhani ya, mwachitsanzo, pod. Amati - ndikufuna kuyika ma pod apo, ndi zithunzi zotere, motere.

Kutumiza mapulogalamu ku VM, Nomad ndi Kubernetes

Kuphatikiza apo, tidazindikira kuti sitikufuna kupanga gwero lililonse ndi dzanja: kutumiza, ntchito, Ingress, ndi zina. M'malo mwake, tinkafuna kufotokozera machitidwe athu onse molingana ndi Kubernetes panthawi yotumizidwa, kuti tisasowenso kukonzanso pamanja zonse zofunikira zomwe zimadalira m'njira yoyenera. Helm anasankhidwa kukhala dongosolo lomwe limatilola kuchita izi.

Malingaliro oyambira mu Helm

Helm ndi woyang'anira phukusi za Kubernetes. Ndizofanana kwambiri ndi momwe oyang'anira phukusi azilankhulo zamapulogalamu amagwirira ntchito. Amakulolani kuti musunge ntchito yomwe ili ndi, mwachitsanzo, kutumiza nginx, kutumiza php-fpm, config for Ingress, configmaps (ichi ndi bungwe lomwe limakupatsani mwayi woyika env ndi magawo ena a dongosolo lanu) mwanjira yo- otchedwa ma chart. Pa nthawi yomweyo Helm imayenda pamwamba pa Kubernetes. Ndiko kuti, uwu si mtundu wina wa dongosolo loyima pambali, koma ntchito ina yomwe idakhazikitsidwa mkati mwa kyubu. Mumalumikizana nawo kudzera pa API yake kudzera pa lamulo la console. Kusavuta komanso kukongola kwake ndikuti ngakhale helm itathyoka kapena mutayichotsa pagulu, ntchito zanu sizidzatha, chifukwa helm imangoyambitsa dongosolo. Kubernetes mwiniyo ndiye amayang'anira magwiridwe antchito ndi ntchito.

Tinazindikiranso kuti templateization, zomwe tinakakamizika kuchita tokha poyambitsa jinja m'makonzedwe athu, ndi chimodzi mwa zinthu zazikulu za helm. Zosintha zonse zomwe mumapanga pamakina anu zimasungidwa mu helm ngati ma templates, ofanana pang'ono ndi jinja, koma, kwenikweni, pogwiritsa ntchito templating ya chilankhulo cha Go, momwe helm imalembedwa, monga Kubernetes.

Helm imawonjezera malingaliro ena angapo kwa ife.

Tchati - ichi ndi kufotokozera za utumiki wanu. M'malo ena oyang'anira phukusi angatchedwe phukusi, mtolo kapena china chofanana. Apa amatchedwa tchati.

Makhalidwe ndi zosintha zomwe mukufuna kugwiritsa ntchito kupanga ma configs kuchokera ku ma templates.

kumasulidwa. Nthawi iliyonse yomwe ntchito yomwe ikugwiritsidwa ntchito pogwiritsa ntchito helm imalandira mtundu wowonjezereka wa kumasulidwa. Helm amakumbukira zomwe kasinthidwe kautumiki kanali pakutulutsidwa koyambirira, kumasulidwa kusanachitike, ndi zina zotero. Chifukwa chake, ngati mukufuna kubweza, ingoyendetsani helm callback command, ndikulozera ku mtundu waposachedwa. Ngakhale masinthidwe ofananirako munkhokwe yanu sakupezeka panthawi yobweza, helm idzakumbukirabe chomwe chinali ndipo idzabwezeretsanso dongosolo lanu momwe linalili pakumasulidwa kwapita.

Ngati tigwiritsa ntchito helm, ma configs nthawi zonse a Kubernetes amasinthanso kukhala ma tempuleti momwe amatha kugwiritsa ntchito zosinthika, ntchito, ndikugwiritsa ntchito mawu okhazikika. Mwanjira iyi mutha kusonkhanitsa zosintha zanu zautumiki kutengera chilengedwe.

Kutumiza mapulogalamu ku VM, Nomad ndi Kubernetes

M'machitidwe, tinaganiza zopanga zinthu mosiyana ndi momwe timachitira ndi Nomad. Ngati ku Nomad ma configs onse ndi ma n-variable omwe amafunikira kuti atumize ntchito yathu adasungidwa m'malo amodzi, apa tidaganiza zowagawa m'malo awiri osiyana. Malo osungiramo "deploy" amangosunga zosinthika za n zokha zomwe zimafunikira kuti zitumizidwe, ndipo "helm" imasunga masinthidwe kapena ma chart.

Kutumiza mapulogalamu ku VM, Nomad ndi Kubernetes

Kodi zimenezi zinatipatsa chiyani?

Ngakhale kuti sitisunga deta yodziwika bwino m'mafayilo osintha okha. Mwachitsanzo, mawu achinsinsi ku database. Amasungidwa ngati zinsinsi ku Kubernetes, komabe, pali zinthu zina zomwe sitikufuna kupatsa aliyense mwayi. Chifukwa chake, mwayi wopita kumalo osungiramo "deploy" ndiocheperako, ndipo chosungira cha "helm" chimangokhala ndi kufotokozera za ntchitoyo. Pachifukwa ichi, ikhoza kupezedwa bwino ndi anthu osiyanasiyana.

Popeza tilibe kupanga kokha, komanso malo ena, chifukwa cha kulekanitsa uku tikhoza kugwiritsanso ntchito ma chart athu a helm kuti titumize ntchito osati kupanga kokha, komanso, mwachitsanzo, ku chilengedwe cha QA. Ngakhale kuyika iwo kwanuko ntchito Minikube - ichi ndi chinthu choyendetsa Kubernetes kwanuko.

Mkati mwa nkhokwe iliyonse, tinasiya chigawo kukhala ndandanda yosiyana ya utumiki uliwonse. Ndiko kuti, mkati mwa chikwatu chilichonse muli ma templates okhudzana ndi tchati chofananira ndikufotokozera zinthu zomwe zimayenera kutumizidwa kuti zikhazikitse dongosolo lathu. Tinasiya ma envs okha mu "deploy" repository. Pankhaniyi, sitinagwiritse ntchito template pogwiritsa ntchito jinja, chifukwa helm yokha imapereka template kuchokera m'bokosi - iyi ndi imodzi mwa ntchito zake zazikulu.

Tidasiya deployment script - deploy.sh, yomwe imathandizira ndikuwongolera kukhazikitsidwa kuti itumizidwe pogwiritsa ntchito helm. Chifukwa chake, kwa aliyense amene akufuna kutumiza, mawonekedwe otumizira amawoneka chimodzimodzi momwe amachitira potumiza kudzera ku Nomad. Momwemonso deploy.sh, dzina la ntchito yanu, ndi komwe mukufuna kuyiyika. Izi zimapangitsa kuti helm iyambe mkati. Iwo, nawonso, amasonkhanitsa ma configs kuchokera ku ma templates, amaika mafayilo ofunika mwa iwo, kenako amawatumiza, kuwayambitsa Kubernetes.

anapezazo

Ntchito ya Kubernetes ikuwoneka ngati yovuta kuposa Nomad.

Kutumiza mapulogalamu ku VM, Nomad ndi Kubernetes

Apa magalimoto otuluka amabwera ku Ingress. Uyu ndiye wowongolera wakutsogolo, yemwe amatenga zopempha zonse ndikuzitumiza kuzinthu zomwe zikugwirizana ndi zomwe zafunsidwa. Zimasankha kutengera ma configs omwe ali gawo la kufotokozera kwa ntchito yanu mu helm ndi omwe opanga amakhazikitsa okha. Ntchitoyi imatumiza zopempha ku ma pod ake, ndiye kuti, zotengera zinazake, kulinganiza kuchuluka kwa magalimoto omwe akubwera pakati pa zotengera zonse za ntchitoyi. Ndipo, ndithudi, sitiyenera kuiwala kuti sitiyenera kupita kulikonse kuchokera ku chitetezo pa intaneti. Chifukwa chake, magawo amagwira ntchito m'gulu la Kubernetes, lomwe limatengera ma tagging. Ntchito zonse zili ndi ma tag omwe maufulu opezeka pazithandizo zina zakunja / zamkati mkati kapena kunja kwa gulu amalumikizidwa.

Pamene tidasintha, tidawona kuti Kubernetes anali ndi mphamvu zonse za Nomad, zomwe tidagwiritsapo ntchito kale, ndikuwonjezeranso zinthu zambiri zatsopano. Itha kukulitsidwa kudzera mu mapulagini, ndipo kwenikweni kudzera mumitundu yazothandizira. Ndiko kuti, muli ndi mwayi osati kungogwiritsa ntchito zomwe zimabwera ndi Kubernetes kuchokera m'bokosi, koma kuti mupange zothandizira zanu ndi ntchito zomwe zingawerenge zomwe mumagwiritsa ntchito. Izi zimakupatsani zosankha zowonjezera kuti mukulitse dongosolo lanu popanda kuyikanso Kubernetes komanso osafuna kusinthidwa.

Chitsanzo cha ntchito yotere ndi Prometheus, yomwe imayenda mkati mwa gulu lathu la Kubernetes. Kuti iyambe kusonkhanitsa ma metrics kuchokera ku ntchito inayake, tifunika kuwonjezera mtundu wina wazinthu, zomwe zimatchedwa kuti service monitor, kumafotokozedwe a utumiki. Prometheus, chifukwa chakuti imatha kuwerenga mtundu wazinthu zomwe zimakhazikitsidwa ku Kubernetes, zimangoyamba kutolera ma metric kuchokera kudongosolo latsopano. Ndi yabwino ndithu.

Kutumiza koyamba komwe tidapanga ku Kubernetes kunali mu Marichi 2018. Ndipo panthawiyi sitinakumanepo ndi vuto lililonse. Zimagwira ntchito mokhazikika popanda zovuta zazikulu. Kuwonjezera apo, tikhoza kukulitsanso. Lero tili ndi mphamvu zokwanira zomwe zili nazo, ndipo timakonda kwambiri mayendedwe a Kubernetes. Pakadali pano, zotengera zopitilira 3000 zili ku Kubernetes. Gululi limakhala ndi Node zingapo. Pa nthawi yomweyo, ndi serviceable, khola ndi controlable kwambiri.

Source: www.habr.com

Kuwonjezera ndemanga