Mametraka fampiharana amin'ny VM, Nomad ary Kubernetes

Salama daholo! Pavel Agaletsky no anarako. Miasa amin'ny maha-mpitarika ekipa ahy aho amin'ny ekipa iray izay mamolavola ny rafitra fanaterana Lamoda. Tamin'ny taona 2018, niresaka tamin'ny fihaonambe HighLoad ++ aho, ary androany aho dia te-hanolotra dika mitovy amin'ny tatitra nataoko.

Ny lohahevitro dia natokana ho an'ny traikefan'ny orinasanay amin'ny fametrahana rafitra sy serivisy amin'ny tontolo samihafa. Nanomboka tamin'ny vanim-potoanantsika taloha, rehefa nametraka ny rafitra rehetra ho amin'ny lohamilina virtoaly mahazatra isika, nifarana tamin'ny fifindrana tsikelikely avy amin'ny Nomad mankany amin'ny fametrahana ao Kubernetes. Holazaiko anao ny antony nanaovanay izany sy ny olana nanananay tamin'ny dingana.

Mametraka fampiharana amin'ny VM

Andeha isika hanomboka amin'ny zava-misy fa 3 taona lasa izay ny rafitra sy ny serivisy rehetra an'ny orinasa dia napetraka amin'ny lohamilina virtoaly mahazatra. Ara-teknika, dia nokarakaraina tamin'ny fomba izay ny kaody rehetra ho an'ny rafitra misy antsika dia voatahiry sy natambatra tamin'ny fampiasana fitaovana famoriam-bahoaka mandeha ho azy, mampiasa jenkins. Amin'ny alàlan'ny Ansible, dia navoaka avy amin'ny rafitra fanaraha-maso ny kinova mankany amin'ny lohamilina virtoaly. Ankoatr'izay, ny rafitra tsirairay izay ananan'ny orinasanay dia napetraka amin'ny mpizara 2 farafahakeliny: ny iray amin'izy ireo eo amin'ny lohany, ny faharoa amin'ny rambony. Ireo rafitra roa ireo dia nitovy tanteraka tamin'ny toe-javatra rehetra, ny heriny, ny fanamafisana, sns. Ny hany mahasamihafa azy ireo dia ny loha nahazo ny fifamoivoizana mpampiasa, raha ny rambony dia tsy nahazo ny fifamoivoizana mpampiasa.

Nahoana no natao izany?

Rehefa nametraka famoahana vaovao momba ny fampiharanay izahay, dia te-hiantoka ny fandefasana tsy misy olana, izany hoe, tsy misy voka-dratsiny ho an'ny mpampiasa. Tanteraka izany noho ny zava-misy fa ny famoahana natambatra manaraka mampiasa Ansible dia navoaka ho rambony. Teo dia afaka nanamarina sy nanao izay hahazoana antoka fa tsara ny zava-drehetra ireo olona nandray anjara tamin'ny fametrahana: mandeha ny metrika, fizarana ary fampiharana rehetra; atomboka ny scripts ilaina. Rehefa resy lahatra izy ireo fa nilamina ny zava-drehetra dia niova ny fifamoivoizana. Nanomboka nankany amin'ny mpizara izay rambony teo aloha. Ary ilay loha teo aloha dia nijanona tsy nisy fifamoivoizan'ny mpampiasa, raha mbola manana ny dikan-teny teo aloha amin'ny fampiharana anay.

Noho izany dia nilamina ho an'ny mpampiasa izany. Satria eo no ho eo ny fifandimbiasana, satria mamadika ny balancer fotsiny. Azonao atao ny mamerina mora foana amin'ny dikan-teny teo aloha amin'ny alàlan'ny famadihana fotsiny ny balancer. Azontsika atao koa ny manamarina fa ny fampiharana dia afaka namokatra na dia talohan'ny nahazoany fifamoivoizana mpampiasa aza, izay tena nety.

Inona no tombony hitanay tamin’izany rehetra izany?

  1. Voalohany aloha dia ampy izay miasa fotsiny izany. Ny olon-drehetra dia mahafantatra ny fomba fiasan'ny rafitra fanapariahana toy izany, satria ny ankamaroan'ny olona dia efa niparitaka tamin'ny mpizara virtoaly mahazatra.
  2. Ampy izay reliably, satria tsotra ny teknolojian'ny fampielezana, notsapain'ny orinasa an'arivony. Mpizara an-tapitrisany no apetraka amin'izany fomba izany. Sarotra ny manapaka zavatra.
  3. Ary farany dia afaka nahazo fametrahana atomika. Fametrahana izay mitranga miaraka amin'ny mpampiasa, tsy misy dingana tsikaritra amin'ny fifandimbiasana eo amin'ny dikan-teny taloha sy ny vaovao.

Saingy nahita lesoka maromaro ihany koa izahay tamin'izany rehetra izany:

  1. Ankoatra ny tontolo famokarana, ny tontolo iainana fampandrosoana, misy ny tontolo iainana hafa. Ohatra, qa sy preproduction. Tamin'izany fotoana izany dia nanana mpizara maro sy serivisy 60 teo ho eo izahay. Noho izany antony izany dia nilaina izany ho an'ny serivisy tsirairay, tehirizo ny kinova farany ho azy milina virtoaly. Ankoatra izany, raha te hanavao tranomboky ianao na hametraka fiankinan-doha vaovao dia mila manao izany amin'ny tontolo rehetra ianao. Ilainao koa ny mampifanaraka ny fotoana handefasanao ny kinova vaovao manaraka amin'ny rindranasao amin'ny fotoana anaovan'ny devops ny firafitry ny tontolo iainana ilaina. Amin'ity tranga ity dia mora ny miditra amin'ny toe-javatra iray izay hiovaova ny tontolo iainantsika amin'ny tontolo rehetra indray mandeha. Ohatra, ao amin'ny tontolo QA dia hisy dikan-teny sasany amin'ny tranomboky, ary amin'ny tontolon'ny famokarana dia hisy ny hafa, izay hiteraka olana.
  2. Sarotra ny manavao ny fiankinan-doha ny fangatahanao. Tsy miankina aminao izany, fa amin'ny ekipa hafa. Izany hoe, avy amin'ny ekipa devops izay mitazona ireo mpizara. Tsy maintsy omenao asa sahaza azy sy famaritana ny zavatra tianao hatao izy ireo.
  3. Tamin'izany fotoana izany, dia te hizara ny monoliths lehibe lehibe nanananay ho serivisy kely misaraka, satria azonay fa hihamaro hatrany izy ireo. Tamin'izany fotoana izany dia efa nanana mihoatra ny 100 izahay. Ho an'ny serivisy vaovao tsirairay dia ilaina ny mamorona milina virtoaly vaovao misaraka, izay mila tazonina sy apetraka ihany koa. Ankoatra izany, tsy mila fiara iray ianao, fa roa farafahakeliny. Manampy izany rehetra izany ny tontolo QA. Miteraka olana izany ary manasarotra kokoa anao ny fananganana sy fitantanana rafitra vaovao. sarotra, lafo ary lava dingana.

Noho izany, nanapa-kevitra izahay fa mety kokoa ny miala amin'ny fametrahana milina virtoaly mahazatra mankany amin'ny fametrahana ny fampiharanay ao anaty fitoeran-docker. Raha manana docker ianao dia mila rafitra afaka mampandeha ny fampiharana ao anaty cluster, satria tsy afaka manangana container fotsiny ianao. Matetika ianao no te hanara-maso ny isan'ny kaontenera alaina mba hanainga ho azy ireo. Noho izany antony izany dia nila nifidy rafitra fanaraha-maso izahay.

Nieritreritra ela izahay hoe iza no azonay raisina. Ny zava-misy dia tamin'izany fotoana izany dia somary efa lany andro io stack deployment amin'ny server virtoaly mahazatra io, satria tsy nanana ny dikan-teny farany amin'ny rafitra fiasa izy ireo. Tamin'ny fotoana iray dia nisy ny FreeBSD, izay tsy dia nety tamin'ny fanohanana. Takatsika fa mila mifindra monina any amin'ny docker haingana araka izay azo atao. Ny devops dia nijery ny traikefany tamin'ny vahaolana samihafa ary nisafidy rafitra toa an'i Nomad.

Hiverina any amin'ny Nomad

Nomad dia vokatra avy amin'ny HashiCorp. Fantatra amin'ny vahaolana hafa koa izy ireo:

Mametraka fampiharana amin'ny VM, Nomad ary Kubernetes

"Consul" dia fitaovana hahitana serivisy.

"Terraform" - rafitra fitantanana ireo mpizara izay ahafahanao manamboatra azy ireo amin'ny alàlan'ny fanamafisana, ilay antsoina hoe fotodrafitrasa-as-a-code.

"Vagrant" mamela anao hametraka milina virtoaly eo an-toerana na ao amin'ny rahona amin'ny alàlan'ny rakitra fanamafisana manokana.

Ny Nomad tamin'izany fotoana izany dia toa vahaolana tsotra izay azo avadika haingana nefa tsy manova ny fotodrafitrasa manontolo. Ankoatra izany, dia mora ny mianatra. Izany no antony nisafidiananay azy ho rafitra fanivanana ho an'ny fitoeranay.

Inona no ilainao hametrahana ny rafitrao amin'ny Nomad?

  1. Voalohany indrindra ilainao sary docker ny fangatahanao. Mila manangana azy ianao ary mametraka izany ao amin'ny tahiry sary docker. Amin'ny tranga misy antsika, ity dia artifactory - rafitra ahafahanao manosika ireo artifacts isan-karazany amin'ny karazana samihafa ao anatiny. Afaka mitahiry arisiva, sary docker, fonosana PHP mpamoron-kira, fonosana NPM, sy ny sisa.
  2. Ilaina koa fichier configuration, izay hilaza amin'i Nomad hoe inona, aiza ary amin'ny habetsahana tianao hapetraka.

Rehefa miresaka momba ny Nomad isika, dia mampiasa ny fiteny HCL izy io ho endrika rakitra fampahalalana, izay midika hoe HashiCorp Configuration Language. Ity dia superset an'ny Yaml izay ahafahanao mamaritra ny serivisinao amin'ny teny Nomad.

Mametraka fampiharana amin'ny VM, Nomad ary Kubernetes

Mamela anao hilaza hoe firy ny kaontenera tianao hapetraka, avy amin'ireo sary handefasana masontsivana isan-karazany amin'izy ireo mandritra ny fametrahana azy. Noho izany, omenao an'i Nomad ity rakitra ity, ary mandefa kaontenera amin'ny famokarana araka izany.

Amin'ity tranga ity, tsapanay fa ny fanoratana rakitra HCL mitovy tanteraka amin'ny serivisy tsirairay dia tsy mety loatra, satria be dia be ny serivisy ary indraindray te hanavao azy ireo ianao. Mitranga izany fa ny serivisy iray dia napetraka tsy amin'ny tranga iray, fa amin'ny karazana samihafa. Ohatra, ny iray amin'ireo rafitra ananantsika amin'ny famokarana dia manana tranga 100 mahery amin'ny famokarana. Mihazakazaka avy amin'ny sary iray ihany izy ireo, saingy tsy mitovy amin'ny firafitry ny fanamafisana sy ny rakitra fikirakirana.

Noho izany, nanapa-kevitra izahay fa mety ho anay ny mitahiry ny rakitra fanaingoanay rehetra mba hapetraka ao anaty tahiry iraisana. Hita tamin'izany fomba izany izy ireo: mora nokarakaraina izy ireo ary hitanay hoe inona ny rafitra anananay. Raha ilaina dia mora ihany koa ny manavao na manova zavatra. Tsy sarotra ihany koa ny manampy rafitra vaovao - mila mamorona rakitra fikirakirana ao anaty lahatahiry vaovao ianao. Ao anatin'izany dia misy ireto rakitra manaraka ireto: service.hcl, izay misy famaritana ny serivisy ataontsika, ary ny rakitra env sasany izay mamela an'io serivisy io, izay apetraka amin'ny famokarana, ho voarindra.

Mametraka fampiharana amin'ny VM, Nomad ary Kubernetes

Na izany aza, ny sasany amin'ireo rafitray dia apetraka amin'ny famokarana tsy amin'ny dika iray, fa amin'ny maromaro indray mandeha. Noho izany, nanapa-kevitra izahay fa mety ho anay ny mitahiry ireo configs amin'ny endriny madio, fa ny endrika misy azy. Ary nisafidy izahay jinja 2. Amin'ity endrika ity dia tehirizinay ny configs an'ny serivisy sy ny rakitra env ilaina amin'izany.

Ho fanampin'izay, nametraka script fanaparitahana mahazatra amin'ny tetikasa rehetra izahay ao amin'ny repository, izay ahafahanao manomboka sy manaparitaka ny serivisinao amin'ny famokarana, any amin'ny tontolo irina, mankany amin'ny tanjona tiana. Raha namadika ny config HCL ho modely izahay, dia nanomboka niova kely ny rakitra HCL, izay config Nomad mahazatra taloha, tamin'ity tranga ity.

Mametraka fampiharana amin'ny VM, Nomad ary Kubernetes

Izany hoe, nosoloinay ny fari-piainan'ny config sasany amin'ny fampidirana miovaova izay nalaina tamin'ny rakitra env na loharano hafa. Fanampin'izany, nahazo fahafahana hanangona rakitra HCL amin'ny fomba mavitrika isika, izany hoe tsy azo ampiasaina afa-tsy ny fampidirana miovaova mahazatra. Satria ny jinja dia manohana ny tadivavarana sy ny fepetra, azonao atao koa ny mamorona rakitra fanamafisam-peo ao, izay miova arakaraka ny toerana hametrahanao ny rindranasao.

Ohatra, tianao ny hametraka ny serivisinao amin'ny famokarana mialoha sy ny famokarana. Aleo lazaina fa amin'ny famokarana alohan'ny famokarana dia tsy te-hampiasa script cron ianao, fa te-hijery ny serivisy amin'ny sehatra misaraka fotsiny mba hahazoana antoka fa mandeha izy. Ho an'izay rehetra mampiasa ny serivisy dia toa tsotra sy mangarahara ny fizotrany. Ny hany ilainao dia ny manatanteraka ny rakitra deploy.sh, mamaritra izay serivisy tianao apetraka ary amin'izay tanjona. Ohatra, te-hametraka rafitra iray any Rosia, Belarosia na Kazakhstan ianao. Mba hanaovana izany, ovay fotsiny ny iray amin'ireo masontsivana, dia hanana ny rakitra fanitsiana marina ianao.

Rehefa efa napetraka ao amin'ny cluster anao ny serivisy Nomad dia toa izao.

Mametraka fampiharana amin'ny VM, Nomad ary Kubernetes

Voalohany, mila karazana balancer ivelany ianao, izay handray ny fifamoivoizana mpampiasa rehetra. Hiara-hiasa amin'ny Consul izy ary hamantatra avy ao hoe aiza, amin'ny node inona, amin'ny adiresy IP misy serivisy manokana izay mifanandrify amin'ny anaran-tsehatra manokana. Ny serivisy ao amin'ny Consul dia avy amin'ny Nomad mihitsy. Satria vokatra avy amin'ny orinasa iray ihany ireo, dia tena mifandray izy ireo. Afaka milaza isika fa ny Nomad out of the box dia afaka manoratra ny serivisy rehetra natomboka tao anatin'ny Consul.

Raha vantany vao fantatry ny mpandrindra entana eo alohanao hoe iza no serivisy handefasana fifamoivoizana, dia alefany any amin'ny kaontenera mety na kaontenera maromaro mifanaraka amin'ny fampiharanao izany. Mazava ho azy fa ilaina ihany koa ny mieritreritra momba ny fiarovana. Na dia mandeha amin'ny milina virtoaly mitovy aza ny serivisy rehetra ao anaty kaontenera, dia matetika mitaky ny fisorohana ny fidirana malalaka amin'ny serivisy amin'ny hafa izany. Nahavita izany izahay tamin'ny alalan'ny fizarana. Ny serivisy tsirairay dia natomboka tao amin'ny tambajotra virtoaly manokana, izay nametrahana fitsipika sy fitsipika momba ny fanomezan-dàlana/fandavana ny fidirana amin'ny rafitra sy serivisy hafa. Izy ireo dia mety ho hita ao anatin'ity cluster ity sy any ivelany. Ohatra, raha te hanakana serivisy tsy hifandray amin'ny angon-drakitra manokana ianao, dia azo atao amin'ny alàlan'ny fizarazarana amin'ny tambajotra. Izany hoe, na dia diso aza, tsy afaka mifandray tsy nahy avy amin'ny tontolon'ny fitsapana mankany amin'ny angona famokarana anao ianao.

Ohatrinona ny vola lanin’ny tetezamita teo amin’ny lafiny maha olona?

Naharitra 5-6 volana teo ho eo ny fifindran'ny orinasa manontolo ho Nomad. Nifindra tamin'ny serivisy isaky ny serivisy izahay, saingy tamin'ny hafainganam-pandeha somary haingana. Ny ekipa tsirairay dia tsy maintsy namorona kaontenera manokana ho an'ny serivisy.

Nandray fomba fiasa toy izany izahay ka ny ekipa tsirairay dia tompon'andraikitra amin'ny sary docker amin'ny rafitra misy azy ireo tsy miankina. Ny Devops dia manome ny fotodrafitrasa ankapobeny ilaina amin'ny fametrahana, izany hoe fanohanana ny cluster mihitsy, fanohanana ny rafitra CI, sy ny sisa. Ary tamin'izany fotoana izany dia nanana rafitra 60 mahery izahay nafindra tany Nomad, izay mitentina 2 arivo eo ho eo.

Devops dia tompon'andraikitra amin'ny fotodrafitrasa ankapobeny amin'ny zava-drehetra mifandraika amin'ny fametrahana sy ny mpizara. Ary ny ekipan'ny fampandrosoana tsirairay, kosa, dia tompon'andraikitra amin'ny fametrahana kaontenera ho an'ny rafitra manokana, satria ny ekipa no mahalala izay ilainy amin'ny ankapobeny ao anaty container manokana.

Antony nandaozana ny Nomad

Inona no tombony azonay tamin'ny fifindrana amin'ny fametrahana mampiasa Nomad sy docker, ankoatry ny hafa?

  1. Isika nanome fepetra mitovy ho an'ny tontolo rehetra. Amin'ny fampandrosoana, ny tontolo QA, ny famokarana mialoha, ny famokarana, ny sary fitoeran-javatra mitovy no ampiasaina, miaraka amin'ny fiankinan-doha mitovy. Noho izany, saika tsy manana vintana ianao fa izay hiafara amin'ny famokarana dia tsy ilay nosedrainao teo an-toerana na tao amin'ny tontolo fitsapana anao.
  2. Hitanay koa fa ampy izany mora ny manampy serivisy vaovao. Amin'ny fomba fijery deployment, ny rafitra vaovao rehetra dia atomboka amin'ny fomba tsotra. Mandehana fotsiny any amin'ny repository mitahiry configs, ampio config hafa ho an'ny rafitrao any, dia efa vonona ianao. Azonao atao ny mametraka ny rafitrao amin'ny famokarana tsy misy ezaka fanampiny avy amin'ny devops.
  3. rehetra fichier configuration ao anaty tahiry iombonana iray nivadika ho dinihina. Tamin'ny fotoana nandefasanay ny rafitray tamin'ny fampiasana server virtoaly, dia nampiasa Ansible izahay, izay misy ny configs ao amin'ny tahiry mitovy. Na izany aza, ho an'ny ankamaroan'ny developer dia somary sarotra kokoa ny miasa. Eto dia lasa kely kokoa ny habetsaky ny configs sy ny code izay ilainao ampiana amin'ny fametrahana ny serivisy. Fanampin'izay, tena mora ho an'ny devops ny manamboatra na manova izany. Raha misy fiovana, ohatra, amin'ny dikan-teny vaovao an'ny Nomad, dia afaka maka sy manavao betsaka ny rakitra miasa rehetra ao amin'ny toerana iray ihany izy ireo.

Saingy nisedra tsy fahampiana maromaro ihany koa izahay:

Hay izahay tsy afaka nanao deployments tsy misy olana amin'ny raharaha Nomad. Rehefa manodina kaontenera ao anatin'ny toe-javatra samihafa dia mety hivadika ho mihazakazaka izany, ary noheverin'i Nomad ho toy ny kaontenera vonona handray fifamoivoizana. Nitranga izany talohan'ny nanombohan'ny fampiharana tao anatiny mihitsy aza. Noho izany antony izany dia nanomboka namoaka fahadisoana 500 ny rafitra nandritra ny fotoana fohy, satria nanomboka nankany amin'ny kaontenera iray izay tsy mbola vonona ny hanaiky izany ny fifamoivoizana.

Nifanena taminay izahay bibikely. Ny bibikely tena manan-danja dia ny Nomad dia tsy mitantana cluster lehibe raha manana rafitra sy container maro ianao. Rehefa te-hanaisotra ny iray amin'ireo mpizara izay tafiditra ao amin'ny kluster Nomad ho fikojakojana ianao, dia misy ny mety ho tsy dia tsara loatra ny cluster ary hirodana. Mety hianjera, ohatra, ny kaontenera sasany ary tsy hitsangana - handoa vola be ianao any aoriana any raha toa ka ao anaty cluster tantanin'ny Nomad ny rafitra famokarana rehetra anao.

Nanapa-kevitra àry izahay ny hieritreritra hoe aiza no halehanay manaraka. Tamin'izay fotoana izay dia nanjary nahafantatra bebe kokoa ny zavatra tiana hotratrarina izahay. Izany hoe: mila fahatokisana, fiasa kely kokoa noho ny nomen'i Nomad, ary rafitra matotra kokoa sy miorina kokoa.

Amin'io lafiny io, ny safidintsika dia nilatsaka tao amin'ny Kubernetes ho sehatra malaza indrindra amin'ny fandefasana cluster. Indrindra fa ny habeny sy ny isan'ny kaontenera dia ampy. Ho an'ny tanjona toy izany, toa ny Kubernetes no rafitra mety indrindra azontsika jerena.

Hiverina any amin'ny Kubernetes

Holazaiko aminao kely ny foto-kevitra fototra momba ny Kubernetes sy ny maha-samihafa azy amin'ny Nomad.

Mametraka fampiharana amin'ny VM, Nomad ary Kubernetes

Voalohany indrindra, ny foto-kevitra fototra indrindra ao amin'ny Kubernetes dia ny foto-kevitry ny pod. pod dia vondrona misy kaontenera iray na maromaro izay miara-mihazakazaka foana. Ary miasa foana izy ireo toy ny amin'ny milina virtoaly iray. Izy ireo dia azo idirana amin'ny alàlan'ny IP 127.0.0.1 amin'ny seranana samihafa.

Andeha hatao hoe manana fampiharana PHP ianao izay misy ny nginx sy php-fpm - ny rafitra mahazatra. Azo inoana fa tianao ny hitazona ny nginx sy ny php-fpm amin'ny fotoana rehetra. Ny Kubernetes dia mamela anao hahatratra izany amin'ny famaritana azy ireo ho pod iray mahazatra. Izany indrindra no tsy azonay tamin'ny Nomad.

Ny hevitra faharoa dia fanapariahana. Ny zava-misy dia ny pod dia zavatra tsy maharitra, manomboka ary manjavona. Tianao ve ny hamono ny kaontenera teo aloha rehetra, ary avy eo dia manomboka ny dikan-teny vaovao indray mandeha, sa tianao havoaka tsikelikely? Izy io dia mamaritra ny fomba ametrahanao ny pods, ny habetsahanao ary ny fomba hanavaozana azy ireo.

Ny hevitra fahatelo dia fanompoana. Ny serivisinao dia ny rafitrao tokoa, izay mahazo fifamoivoizana ary avy eo mamindra izany amin'ny pod iray na maromaro mifanaraka amin'ny serivisinao. Izany hoe, mamela anao hilaza fa ny fifamoivoizana rehetra miditra amin'ny serivisy toy izany miaraka amin'ny anarana toy izany dia tsy maintsy alefa any amin'ireo pods manokana ireo. Ary miaraka amin'izay koa dia manome anao ny fifandanjana fifamoivoizana. Izany hoe, afaka manomboka pods roa amin'ny fampiharanao ianao, ary ny fifamoivoizana miditra rehetra dia handanjalanja tsara eo amin'ireo pods mifandraika amin'ity serivisy ity.

Ary ny foto-kevitra fototra fahefatra dia Ingress. Ity dia serivisy mandeha amin'ny cluster Kubernetes. Izy io dia toy ny mpifandanja entana ivelany izay mandray an-tanana ny fangatahana rehetra. Amin'ny fampiasana ny Kubernetes API, Ingress dia afaka mamaritra ny toerana tokony handefasana ireo fangatahana ireo. Fanampin'izany, manao izany izy amin'ny fomba tena malefaka. Azonao atao ny milaza fa ny fangatahana rehetra amin'ity mpampiantrano ity sy ny URL toy izany dia alefa amin'ity serivisy ity. Ary ireo fangatahana tonga amin'ity mpampiantrano ity sy amin'ny URL hafa dia alefa any amin'ny serivisy hafa.

Ny zavatra mahafinaritra indrindra amin'ny fomba fijerin'ny olona iray izay mamolavola fampiharana dia ny fahaizanao mitantana azy rehetra. Amin'ny alàlan'ny fametrahana ny config Ingress dia azonao atao ny mandefa ny fifamoivoizana rehetra mankany amin'ny API toy izany mba hanasaraka ireo kaontenera voasoratra, ohatra, ao amin'ny Go. Saingy ity fifamoivoizana ity, tonga amin'ny sehatra iray ihany, fa amin'ny URL hafa, dia tokony halefa any amin'ny kaontenera voasoratra amin'ny PHP, izay misy lojika be, saingy tsy dia haingana loatra.

Raha ampitahaina amin'ny Nomad ireo hevitra rehetra ireo dia afaka milaza isika fa ny foto-kevitra telo voalohany dia miara-miasa avokoa. Ary ny hevitra farany dia tsy hita ao amin'ny Nomad mihitsy. Nampiasa mpifandanja ivelany toy izany izahay: mety ho haproxy, nginx, nginx+, sy ny sisa. Raha ny cube dia tsy mila mampiditra an'io hevitra fanampiny io ianao. Na izany aza, raha mijery ny Ingress anatiny ianao, dia nginx, haproxy, na traefik, fa karazana namboarina ao amin'ny Kubernetes.

Ny foto-kevitra rehetra nofaritako dia, raha ny marina, loharano izay misy ao anatin'ny kluster Kubernetes. Mba hamaritana azy ireo amin'ny cube dia ampiasaina ny endrika yaml, izay mora vakiana sy mahazatra kokoa noho ny rakitra HCL amin'ny raharaha Nomad. Saingy amin'ny lafiny ara-drafitra dia milaza zavatra mitovy izy ireo amin'ny tranga, ohatra, pod. Hoy izy ireo - Te-hametraka pods toy izao aho any, miaraka amin'ny sary toy izany, amin'ny habeny sy toy izany.

Mametraka fampiharana amin'ny VM, Nomad ary Kubernetes

Ho fanampin'izay, tsapanay fa tsy te hamorona loharano tsirairay amin'ny tanana izahay: fametrahana, serivisy, Ingress, sns. Fa kosa, tianay ny hamaritra ny rafitray tsirairay amin'ny resaka Kubernetes mandritra ny fametrahana, mba tsy ho voatery hamerina amin'ny tanana ny fiankinan-doha rehetra ilaina amin'ny filaharana marina. Ny Helm no nofidiana ho rafitra nahafahan'izy ireo nanao izany.

Hevitra fototra ao amin'ny Helm

Helm dia mpitantana fonosana ho an'ny Kubernetes. Tena mitovy amin'ny fomba fiasan'ny mpitantana fonosana amin'ny fiteny fandaharana. Izy ireo dia mamela anao hitahiry serivisy misy, ohatra, deployment nginx, deployment php-fpm, config ho an'ny Ingress, configmaps (ity dia singa iray ahafahanao mametraka env sy paramètres hafa ho an'ny rafitrao) amin'ny endrika so- antsoina hoe tabilao. Nandritra izany fotoana izany Helm mihazakazaka eo an-tampon'ny Kubernetes. Izany hoe, tsy karazana rafitra mijoro mitokana io, fa serivisy hafa natomboka tao anaty cube. Mifanerasera aminy ianao amin'ny alàlan'ny API amin'ny alàlan'ny baiko console. Ny mahamora sy ny hatsarany dia na dia tapaka aza ny familiana na esorinao ao amin'ny cluster, dia tsy hanjavona ny serivisinao, satria manomboka ny rafitra ihany ny familiana. Ny Kubernetes mihitsy no tompon'andraikitra amin'ny fanatanterahana sy ny toetry ny serivisy.

Tsapanay koa izany templateization, izay noterena hanao ny tenantsika teo aloha tamin'ny fampidirana jinja ao amin'ny configs, dia iray amin'ireo singa fototra amin'ny helm. Ny configs rehetra noforoninao ho an'ny rafitrao dia voatahiry ao anaty helm amin'ny endrika modely, mitovy kely amin'ny jinja, fa raha ny marina, mampiasa ny templating ny fiteny Go, izay misy ny familiana, toy ny Kubernetes.

Manampy hevitra vitsivitsy ho antsika ny Helm.

tabilao - fanoritsoritana ny serivisinao ity. Amin'ny mpitantana fonosana hafa dia antsoina hoe fonosana, bundle na zavatra mitovy amin'izany. Eto dia antsoina hoe tabilao.

Values dia ireo variables tianao hampiasaina hanamboarana ny configs avy amin'ny templates.

Release. Isaky ny misy serivisy apetraka amin'ny alàlan'ny familiana dia mahazo dika fanampiny amin'ny famoahana. Tsaroan'i Helm hoe inona ny config serivisy tamin'ny famoahana teo aloha, ny famoahana talohan'izay, sy ny sisa. Noho izany, raha mila mihemotra ianao dia mandehana fotsiny ny baiko antso an-tariby, manondro azy amin'ny dikan-teny famoahana teo aloha. Na dia tsy hita amin'ny fotoana famerenana amin'ny laoniny aza ny fandrindrana mifanaraka amin'izany ao amin'ny fitahirizanao, dia mbola hotadidin'ny familiana hoe inona ilay izy ary hamerina ny rafitrao amin'ny fanjakana nisy azy tamin'ny famoahana teo aloha.

Raha toa ka mampiasa helm isika, ny config mahazatra ho an'ny Kubernetes dia mivadika ho maodely izay ahafahana mampiasa variables, functions, ary mampihatra fanambarana misy fepetra. Amin'izany fomba izany dia azonao atao ny manangona ny serivisy serivisy miankina amin'ny tontolo iainana.

Mametraka fampiharana amin'ny VM, Nomad ary Kubernetes

Amin'ny fampiharana, nanapa-kevitra ny hanao zavatra hafa kely noho ny nataonay tamin'ny Nomad izahay. Raha ao amin'ny Nomad dia samy voatahiry ao anaty tahiry iray ny configs deployment sy ny n-variables izay ilaina amin'ny fametrahana ny serivisinay, dia nanapa-kevitra izahay ny hizara azy ireo ho tahiry roa samihafa. Ny tahiry "deploy" dia tsy mitahiry afa-tsy n-variable ilaina amin'ny fametrahana, ary ny tahiry "helm" dia mitahiry configs na tabilao.

Mametraka fampiharana amin'ny VM, Nomad ary Kubernetes

Inona no nomen'izany antsika?

Na dia eo aza ny zava-misy fa tsy mitahiry angona tena saro-pady ao amin'ny fisie fichier ny tenany. Ohatra, tenimiafina amin'ny angon-drakitra. Voatahiry ho tsiambaratelo ao amin'ny Kubernetes izy ireo, saingy na izany aza dia mbola misy zavatra sasantsasany izay tsy tiantsika homena ny olon-drehetra. Noho izany, voafetra kokoa ny fidirana amin'ny tahiry "deploy", ary ny fitahirizana "helm" dia misy famaritana fotsiny ny serivisy. Noho izany antony izany dia azo idirana soa aman-tsara amin'ny karazan'olona maro kokoa.

Koa satria tsy ny famokarana ihany no ananantsika, fa ny tontolo hafa ihany koa, noho io fisarahana io dia afaka mampiasa indray ny sarin'ny familiana izahay mba hametrahana serivisy tsy amin'ny famokarana ihany, fa koa, ohatra, amin'ny tontolo QA. Na ny fametrahana azy ireo amin'ny fampiasana an-toerana aza Minikube - zavatra iray amin'ny fampandehanana ny Kubernetes eo an-toerana izany.

Tao anatin'ny fitahirizana tsirairay dia namela fizarana iray ho lahatahiry misaraka ho an'ny serivisy tsirairay. Izany hoe, ao anatin'ny lahatahiry tsirairay dia misy môdely mifandraika amin'ny tabilao mifanaraka amin'izany ary manoritsoritra ny loharanon-karena mila apetraka hanombohana ny rafitray. Envs ihany no navelanay tao amin'ny tahiry "deploy". Amin'ity tranga ity, tsy nampiasa templating tamin'ny jinja izahay, satria ny helm mihitsy no manome templating ivelan'ny boaty - io no iray amin'ireo fiasa lehibe indrindra.

Namela script deployment izahay - deploy.sh, izay manatsotra sy manara-penitra ny fandefasana amin'ny fampiasana ny familiana. Noho izany, ho an'izay rehetra te-hametraka, ny interface deployment dia mitovy tanteraka amin'ny deployment amin'ny Nomad. Ny deploy.sh mitovy, ny anaran'ny serivisinao, ary ny toerana tianao hametrahana azy. Izany no mahatonga ny helm manomboka ao anatiny. Izy io kosa dia manangona configs avy amin'ny môdely, mampiditra ireo rakitra ilaina ilaina ao anatiny, avy eo mametraka azy ireo, manokatra azy ireo ao amin'ny Kubernetes.

hitany

Ny serivisy Kubernetes dia toa sarotra kokoa noho ny Nomad.

Mametraka fampiharana amin'ny VM, Nomad ary Kubernetes

Eto ny fifamoivoizana mivoaka dia tonga any Ingress. Io ihany no mpanara-maso eo anoloana, izay mandray ny fangatahana rehetra ary avy eo dia mandefa azy ireo any amin'ny serivisy mifanaraka amin'ny angona fangatahana. Izy io dia mamaritra azy ireo mifototra amin'ny configs izay ampahany amin'ny famaritana ny fampiharana anao eo amin'ny fitarihana ary izay napetraky ny developer ho azy ireo. Ny serivisy dia mandefa fangatahana amin'ny pods, izany hoe, kaontenera manokana, mampifandanja ny fifamoivoizana miditra eo amin'ireo kaontenera rehetra an'ity serivisy ity. Ary, mazava ho azy, tsy tokony hohadinointsika fa tsy tokony handeha na aiza na aiza amin'ny fiarovana amin'ny sehatra tambajotra. Noho izany, ny fizarana dia miasa ao anaty cluster Kubernetes, izay mifototra amin'ny fametahana. Ny serivisy rehetra dia manana marika sasantsasany izay ampifandraisina amin'ny zon'ny serivisy amin'ny loharano ivelany / anatiny sasany ao anatiny na ivelan'ny cluster.

Rehefa nanao ny tetezamita izahay dia hitanay fa manana ny fahaiza-manaon'ny Nomad rehetra i Kubernetes, izay efa nampiasainay teo aloha, ary nanampy zava-baovao maro koa. Azo itarina amin'ny alàlan'ny plugins izany, ary raha ny marina dia amin'ny alàlan'ny karazana loharano mahazatra. Izany hoe, manana fahafahana ianao tsy hampiasa zavatra miaraka amin'ny Kubernetes ivelan'ny boaty, fa hamorona loharano sy serivisy manokana izay hamaky ny loharanonao. Izany dia manome safidy fanampiny hanitarana ny rafitrao tsy mila mametraka indray Kubernetes ary tsy mila fanovana.

Ohatra iray amin'ny fampiasana toy izany ny Prometheus, izay mandeha ao anatin'ny cluster Kubernetes. Mba hahafahany manomboka manangona metrika avy amin'ny serivisy iray manokana dia mila manampy karazana loharano fanampiny isika, ilay antsoina hoe mpanara-maso serivisy, amin'ny famaritana serivisy. Prometheus, noho izy afaka mamaky karazana loharanon-karena mahazatra rehefa natomboka tao amin'ny Kubernetes, dia manomboka manangona metrika avy amin'ny rafitra vaovao. Tena mety.

Tamin'ny Martsa 2018 no nandefasanay voalohany ny Kubernetes. Ary nandritra izany fotoana izany dia tsy mbola niaina olana tamin'izany izahay. Miasa tsara izy io ary tsy misy bibikely lehibe. Ankoatra izany, afaka manitatra izany bebe kokoa isika. Amin'izao fotoana izao dia ampy ny fahaiza-manao ananany, ary tena tianay ny hafainganam-pandehan'ny Kubernetes. Amin'izao fotoana izao, kaontenera maherin'ny 3000 no ao Kubernetes. Ny cluster dia manana Nodes maromaro. Amin'izay fotoana izay ihany koa dia azo ampiasaina izy io, miorina tsara ary tena azo fehezina.

Source: www.habr.com

Add a comment