Isixhobo seHelm kunye nemigibe yaso

Isixhobo seHelm kunye nemigibe yaso
Ingqikelelo yetyphon yokuthutha impahla, uAnton Swanepoel

Igama lam ndinguDmitry Sugrobov, ndingumphuhlisi eLeroy Merlin. Kule nqaku ndiza kukuxelela ukuba kutheni i-Helm idingeka, yenza lula ukusebenza kunye ne-Kubernetes, yintoni etshintshileyo kwinguqulo yesithathu, kunye nendlela yokuyisebenzisa ukuhlaziya izicelo kwimveliso ngaphandle kwexesha lokuphumla.

Esi sisishwankathelo esisekelwe kwintetho kwinkomfa @Kubernetes Inkomfa by Mail.ru Cloud Solutions - ukuba awufuni ukufunda, jonga ividiyo.

Kutheni sisebenzisa iKubernetes kwimveliso

ULeroy Merlin uyinkokeli kwimarike yentengiso ye-DIY eRashiya naseYurophu. Inkampani yethu inabaphuhlisi abangaphezu kwekhulu, abasebenzi bangaphakathi abangama-33 kunye nenani elikhulu labantu abandwendwela ii-hypermarkets kunye newebhusayithi. Ukuze sibenze bonwabe bonke, sigqibe kwelokuba silandele iindlela zomgangatho woshishino. Phuhlisa usetyenziso olutsha usebenzisa i-microservice architecture; sebenzisa izikhongozeli ukwahlula okusingqongileyo kunye nokuqinisekisa unikezelo olufanelekileyo; kwaye usebenzise iKubernetes kwiokhestra. Ixabiso lokusebenzisa ii-orchestrators ngokukhawuleza liba lincinci: inani leenjineli ezinobuchule kwithekhnoloji likhula kwimarike, kwaye ababoneleli babonakala benikezela nge-Kubernetes njengenkonzo.

Yonke into eyenziwa nguKubernetes, ngokuqinisekileyo, inokwenziwa ngezinye iindlela, umzekelo, ngokugubungela ezinye i-Jenkins kunye ne-docker-compose kunye nezikripthi, kodwa kutheni unzima ubomi ukuba kukho isisombululo esele senziwe kwaye sinokuthenjwa? Yiyo loo nto size eKubernetes kwaye kudala siyisebenzisa kwimveliso unyaka ngoku. Ngoku sinamashumi amabini anesine amaqela e-Kubernetes, elona lidala lingaphezu konyaka ubudala, malunga namakhulu amabini ee pod.

Isiqalekiso seefayile ezinkulu ze-YAML kwi-Kubernetes

Ukuphehlelela i-microservice kwi-Kubernetes, siya kudala ubuncinci iifayile ze-YAML ezintlanu: zokusasazwa, iNkonzo, i-Ingress, i-ConfigMap, iiMfihlo-kwaye uzithumele kwiqela. Kwisicelo esilandelayo siya kubhala iphakheji efanayo yeejambs, kunye neyesithathu siya kubhala enye, njalo njalo. Ukuba siphindaphinda inani lamaxwebhu ngenani leemeko-bume, siya kuba sele sifumana amakhulu eefayile, kwaye oku akukayithatheli ngqalelo imeko-bume eguquguqukayo.

Isixhobo seHelm kunye nemigibe yaso
UAdam Reese, umgcini ongundoqo weHelm, wazisa ingcamango "Umjikelo woPhuhliso eKubernetes", ibonakala ngathi:

  1. Khuphela i-YAML - khuphela ifayile ye-YAML.
  2. Ncamathelisa i-YAML - yincamathelise.
  3. Lungisa i-idents - lungisa i-idents.
  4. Phinda-phinda kwakhona.

Ukhetho luyasebenza, kodwa kufuneka ukope iifayile ze-YAML amaxesha amaninzi. Ukutshintsha lo mjikelo, iHelm yaqanjwa.

Yintoni iHelm

Okokuqala, Helm - umphathi wepakethe, ekunceda ufumane kwaye ufake iinkqubo ozifunayo. Ukufakela, umzekelo, iMongoDB, awudingi ukuya kwiwebhusayithi esemthethweni kwaye ukhuphele iibhinari, sebenzisa nje umyalelo. helm install stable/mongodb.

Okwesibini, iHelm - template injini, inceda iparameterize iifayile. Masibuyele kwimeko ngeefayile ze-YAML eKubernetes. Kulula ukubhala ifayile ye-YAML efanayo, yongeza ezinye izibambi ndawo kuyo, apho iHelm iya kufaka amaxabiso endaweni yawo. Oko kukuthi, endaweni yeseti enkulu ye-scaffolds, kuya kubakho iseti yeetemplates apho amaxabiso afunekayo aya kutshintshwa ngexesha elifanelekileyo.

Okwesithathu, iHelm - inkosi yokusasaza. Ngayo ungafaka, ukubuyisela umva kunye nokuhlaziya usetyenziso. Makhe sibone indlela yokwenza oku.

Isixhobo seHelm kunye nemigibe yaso

Uyisebenzisa njani iHelm ukuhambisa ezakho izicelo

Masifake umxhasi weHelm kwikhompyuter yakho, silandela igosa imiyalelo. Okulandelayo, siya kudala iseti yeefayile ze-YAML. Endaweni yokuchaza amaxabiso athile, siya kushiya izibambi-ndawo, apho iHelm iya kuyigcwalisa ngolwazi kwixesha elizayo. Iseti yeefayile ezinjalo ibizwa ngokuba yitshathi yeHelm. Inokuthunyelwa kumthengi we-Helm console ngeendlela ezintathu:

  • bonisa ifolda eneetemplates;
  • pakisha indawo yokugcina kwi-.tar kwaye walathe kuyo;
  • beka itemplate kwindawo yokugcina ekude kwaye wongeze ikhonkco kwindawo yokugcina kwi-Helm client.

Kananjalo ufuna ifayile enamaxabiso- values.yaml. Idatha esuka apho iya kufakwa kwitemplate. Masiyidale nayo.

Isixhobo seHelm kunye nemigibe yaso
Inguqulelo yesibini yeHelm inesicelo esongezelelweyo seseva - iTiller. Ilenga ngaphandle kwe-Kubernetes kwaye ilindele izicelo ezivela kumthengi we-Helm, kwaye xa ebizwa, ibeka amaxabiso afunekayo kwi-template kwaye iyithumele ku-Kubernetes.

Isixhobo seHelm kunye nemigibe yaso
I-Helm 3 ilula: endaweni yokucubungula iitemplates kumncedisi, ulwazi ngoku luqhutywe ngokupheleleyo kwi-Helm client side kwaye ithunyelwe ngokuthe ngqo kwi-Kubernetes API. Oku kwenziwa lula kuphucula ukhuseleko lweqela kwaye kuququzelele iskimu sokukhupha.

Isebenza njani yonke

Qhuba umyalelo helm install. Masibonise igama lokukhutshwa kwesicelo kwaye sinikeze indlela eya kumaxabiso.yaml. Ekugqibeleni siya kubonisa indawo yokugcina itshathi kunye negama letshathi. Kumzekelo, ezi "lmru" kunye "bestchart", ngokulandelanayo.

helm install --name bestapp --values values.yaml lmru/bestchart

Umyalelo unokwenziwa kube kanye kuphela, xa uphunyeziwe kwakhona endaweni yoko install kufuneka usebenzise upgrade. Ukwenza lula, endaweni yemiyalelo emibini, ungaqhuba umyalelo upgrade ngesitshixo esongezelelweyo --install. Xa isenziwa okokuqala, iHelm iya kuthumela umyalelo wokufaka ukukhululwa, kwaye iya kuwuhlaziya kwixesha elizayo.

helm upgrade --install bestapp --values values.yaml lmru/bestchart

Imigibe yokuthumela iinguqulelo ezintsha zesicelo ngeHelm

Kweli nqanaba ebalini, ndidlala Ngubani ofuna ukuba nguMillionaire kunye nabaphulaphuli, kwaye sizama indlela yokufumana iHelm ukuhlaziya uguqulelo lweapp. Bukela ividiyo.

Xa ndandifunda indlela esebenza ngayo iHelm, ndothuswa yindlela engaqhelekanga yokuziphatha xa ndizama ukuhlaziya iinguqulelo zosetyenziso olusebenzayo. Ndihlaziye ikhowudi yesicelo, ndalayisha umfanekiso omtsha kwirejista yeDocker, ndathumela umyalelo wokuthunyelwa - kwaye akukho nto eyenzekayo. Apha ngezantsi kukho iindlela ezingaphumelelanga ngokupheleleyo zokuhlaziya izicelo. Ngokufunda ngamnye kubo ngokweenkcukacha ngakumbi, uqala ukuqonda isakhiwo sangaphakathi sesixhobo kunye nezizathu zolu kuziphatha kungabonakali.

Indlela yoku-1. Musa ukutshintsha ulwazi ukususela ekuqalisweni kokugqibela

Njengoko isitsho website esemthethweni Helm, "Iitshathi zeKubernetes zinokuba nkulu kwaye zintsonkothe, ke iHelm izama ukungachukumisi nantoni na kakhulu." Ke ngoko, ukuba uhlaziya inguqulelo yamva nje yomfanekiso wesicelo kwirejistri yedocker kwaye uqhube umyalelo helm upgrade, ngoko akukho nto iya kwenzeka. UHelm uya kucinga ukuba akukho nto itshintshileyo kwaye akukho mfuneko yokuthumela umyalelo ku-Kubernetes ukuhlaziya isicelo.

Apha nangezantsi, ithegi yamva nje iboniswa njengomzekelo. Xa ukhankanya le thegi, iKubernetes iya kukhuphela umfanekiso kwi-docker registry ngalo lonke ixesha, nokuba yeyiphi iparamitha yePullPolicy. Ukusebenzisa imveliso yamva nje akufuneki kwaye kubangela iziphumo ebezingalindelekanga.

Indlela yesi-2. Hlaziya LABEL emfanekisweni

Njengoko kubhaliwe ngokufanayo amaxwebhu, "I-Helm iya kuhlaziya kuphela isicelo ukuba sitshintshile ukususela ekukhululweni kokugqibela." Ukhetho oluqiqileyo loku lunokubonakala ngathi luhlaziya i-LABEL kumfanekiso wedokhi ngokwawo. Nangona kunjalo, iHelm ayijongi kwimifanekiso yesicelo kwaye ayinalwazi malunga naluphi na utshintsho kubo. Ngokufanelekileyo, xa uhlaziywa iilebhile emfanekisweni, iHelm ayiyi kukwazi ngabo, kwaye umyalelo wohlaziyo lwesicelo awuyi kuthunyelwa ku-Kubernetes.

Indlela yesi-3: Sebenzisa isitshixo --force

Isixhobo seHelm kunye nemigibe yaso
Makhe sijike kwiincwadana kwaye sijonge isitshixo esifunekayo. Isitshixo siyavakala kakhulu --force. Ngaphandle kwegama elicacileyo, ukuziphatha kwahlukile kunokulindelekileyo. Esikhundleni sokunyanzelisa uhlaziyo lwesicelo, injongo yalo yokwenene kukubuyisela ukukhululwa kwimeko ye-FAILED. Ukuba awusebenzisi esi sitshixo, kufuneka uphumeze imiyalelo ngokulandelelanayo helm delete && helm install --replace. Kucetyiswa ukuba usebenzise isitshixo endaweni yoko --force, eyenza ufezekiso olulandelelanayo lwale miyalelo. Ulwazi oluninzi kule isicelo sokutsala. Ukuze uxelele uHelm ukuba ahlaziye inguqulelo yesicelo, ngelishwa, eli qhosha aliyi kusebenza.

Indlela 4. Guqula iilebula ngokuthe ngqo kwi-Kubernetes

Isixhobo seHelm kunye nemigibe yaso
Ukuhlaziya ilebhile ngokuthe ngqo kwiqela usebenzisa umyalelo kubectl edit - ingcamango embi. Esi senzo siya kukhokelela ekungangqinelani kolwazi phakathi kwesicelo esiqhutywayo kunye neso sasithunyelwe ekuqaleni ukusasazwa. Ukuziphatha kweHelm ngexesha lokuthunyelwa kule meko kuhluke kwinguqu yayo: I-Helm 2 ayiyi kwenza nantoni na, kwaye i-Helm 3 iya kuhambisa inguqu entsha yesicelo. Ukuqonda ukuba kutheni, kufuneka uqonde indlela iHelm esebenza ngayo.

Isebenza njani iHelm?

Ukumisela ukuba ngaba isicelo sitshintshile ukususela ekukhululweni kwayo kokugqibela, iHelm inokusebenzisa:

  • sebenzisa isicelo kwi-Kubernetes;
  • amaxabiso amatsha.yaml kunye netshathi yangoku;
  • Ulwazi lokukhutshwa lwangaphakathi lweHelm.

Ukufumana ulwazi ngakumbi: iHelm ilugcina phi ulwazi lwangaphakathi malunga nokukhutshwa?Ngokusebenzisa umyalelo helm history, siya kufumana lonke ulwazi malunga neenguqulelo ezifakwe kusetyenziswa iHelm.

Isixhobo seHelm kunye nemigibe yaso
Kwakhona kukho ulwazi oluneenkcukacha malunga neetemplates ezithunyelwe kunye namaxabiso. Sinokuyicela:

Isixhobo seHelm kunye nemigibe yaso
Kuhlelo lwesibini lweHelm, olu lwazi lukwakwindawo yegama elinye apho iTiller isebenza khona (kube-system ngokungagqibekanga), kwiConfigMap, ephawulwe ngelebhile β€œOWNER=TILLER”:

Isixhobo seHelm kunye nemigibe yaso
Xa uguqulelo lwesithathu lweHelm luvela, ulwazi lwafudukela kwiimfihlo, nakwindawo yegama elifanayo apho isicelo sasisebenza khona. Enkosi koku, kuye kwenzeka ukwenza izicelo ezininzi ngaxeshanye kwiindawo zamagama ezahlukeneyo ezinegama elifanayo lokukhululwa. Kwinguqulelo yesibini yayibuhlungu yintloko xa izithuba zamagama zodwa kodwa zinokuphembelelana.

Isixhobo seHelm kunye nemigibe yaso

I-Helm yesibini, xa uzama ukuqonda ukuba ngaba uhlaziyo luyafuneka, isebenzisa imithombo emibini yolwazi kuphela: yintoni enikezelwa kuyo ngoku, kunye nolwazi lwangaphakathi malunga nokukhutshwa, okuku-ConfigMap.

Isixhobo seHelm kunye nemigibe yaso
I-Helm yesithathu isebenzisa isicwangciso sokudibanisa iindlela ezintathu: ngaphezu kwaloo lwazi, iphinda ithathele ingqalelo isicelo esisebenza ngoku kwi-Kubernetes.

Isixhobo seHelm kunye nemigibe yaso
Ngenxa yesi sizathu, inguqulo endala ye-Helm ayiyi kwenza nantoni na, kuba ayithatheli ingqalelo ulwazi lwesicelo kwi-cluster, kodwa i-Helm 3 iya kufumana utshintsho kwaye ithumele isicelo esitsha sokuthunyelwa.

Indlela yesi-5. Sebenzisa i--recreate-pods switch

Ngesitshixo --recreate-pods ungafezekisa oko ubucebe ukufezekisa ngesitshixo --force. Izikhongozeli ziya kuqalisa kwakhona kwaye, ngokomfanekisoPullPolicy: Ngalo lonke ixesha umgaqo-nkqubo wethegi yamva nje (ngaphezulu koku kumbhalo osemazantsi apha ngasentla), iKubernetes iya kukhuphela kwaye iqalise uguqulelo olutsha lomfanekiso. Oku akuyi kwenziwa ngeyona ndlela ingcono: ngaphandle kokuthathela ingqalelo iSicwangciso-qhinga sokusasazwa, iya kucima ngokukhawuleza zonke iimeko zesicelo esidala kwaye iqalise ukusungula ezintsha. Ngexesha lokuqalisa kwakhona, inkqubo ayiyi kusebenza, abasebenzisi baya kubandezeleka.

Kwi-Kubernetes ngokwayo, ingxaki efanayo yayikhona ixesha elide. Kwaye ngoku, iminyaka emi-4 emva kokuvulwa Khupha, ingxaki ilungisiwe, kwaye iqala ngenguqulo ye-1.15 ye-Kubernetes, ukukwazi ukuqalisa kwakhona ii-pods kubonakala.

I-Helm ivele icime zonke izicelo kwaye iqalise izikhongozeli ezitsha kufutshane. Awukwazi ukwenza oku kwimveliso, ukuze ungabangeli ixesha lokunciphisa isicelo. Oku kufuneka kuphela kwiimfuno zophuhliso kwaye kunokwenziwa kuphela kwiindawo zeqonga.

Uyihlaziya njani inguqulelo yesicelo usebenzisa iHelm?

Siza kutshintsha amaxabiso athunyelwe kwiHelm. Ngokwesiqhelo, la ngamaxabiso athe afakwa endaweni yethegi yomfanekiso. Kwimeko yamva nje, ehlala isetyenziselwa iindawo ezingenamveliso, ulwazi oluguquguqukayo luyi-annotation, engenamsebenzi kwi-Kubernetes ngokwayo, kunye ne-Helm iya kwenza njengomqondiso wesidingo sokuhlaziya isicelo. Iinketho zokuzaliswa kwexabiso lesichasiselo:

  1. Ixabiso elingalindelekanga usebenzisa umsebenzi osemgangathweni - {{ randAlphaNum 6 }}.
    Kukho i-caveat: emva kokuthunyelwa ngalunye usebenzisa itshathi enoguquko olunjalo, ixabiso le-annotation liya kuba lilodwa, kwaye i-Helm iya kucinga ukuba kukho utshintsho. Kuyavela ukuba siya kuhlala siqala ngokutsha usetyenziso, nokuba asikalutshintshi uhlobo lwalo. Oku akubalulekanga, kuba akusayi kubakho xesha lokuphumla, kodwa kusemnandi.
  2. Ncamathelisa okwangoku umhla kunye nexesha - {{ .Release.Date }}.
    Umahluko uyafana nexabiso elingenamkhethe elinoguquko olulodwa olusisigxina.
  3. Enye indlela echanekileyo kukusebenzisa itshekhisum. Le yi-SHA yomfanekiso okanye i-SHA yesibophelelo sokugqibela kwi-git - {{ .Values.sha }}.
    Baya kufuna ukubalwa kwaye bathunyelwe kumthengi weHelm kwicala lokufowuna, umzekelo kwiJenkins. Ukuba isicelo sitshintshile, i-checksum iya kutshintsha. Ke ngoko, iHelm iya kuhlaziya kuphela isicelo xa kuyimfuneko.

Makhe sishwankathele iinzame zethu

  • I-Helm yenza utshintsho ngeyona ndlela incinci, ngoko ke naluphi na utshintsho kwinqanaba lomfanekiso wesicelo kwi-Docker Registry aluyi kubangela uhlaziyo: akukho nto iya kwenzeka emva kokuba umyalelo uphunyeziwe.
  • Ngundoqo --force isetyenziselwa ukubuyisela ukukhutshwa okuyingxaki kwaye ayidityaniswa nohlaziyo olunyanzelweyo.
  • Ngundoqo --recreate-pods izakuhlaziya ngenkani izicelo, kodwa iyakuyenza ngendlela yokonakalisa: iyakucima ngequbuliso zonke izikhongozeli. Abasebenzisi baya kubandezeleka koku; akufanele wenze oku kwimveliso.
  • Yenza utshintsho ngokuthe ngqo kwiqela le-Kubernetes usebenzisa umyalelo kubectl edit musa: siya kwaphula ukungaguquguquki, kwaye ukuziphatha kuya kwahluka ngokuxhomekeke kuguqulelo lweHelm.
  • Ngokukhutshwa kwenguqulelo entsha yeHelm, kuye kwavela ama-nuances amaninzi. Imiba kwi-Helm repository ichazwe ngolwimi olucacileyo, baya kukunceda uqonde iinkcukacha.
  • Ukongeza inkcazo ehlelekayo kwitshathi kuya kuyenza ibe bhetyebhetye. Oku kuya kukuvumela ukuba ukhuphe isicelo ngokuchanekileyo, ngaphandle kwexesha lokuphumla.

Ingcamango "yoxolo lwehlabathi" esebenza kuzo zonke iinkalo zobomi: funda imiyalelo ngaphambi kokusetyenziswa, kungekhona emva. Kuphela ngolwazi olupheleleyo kuya kukwazi ukwakha iinkqubo ezithembekileyo kwaye wenze abasebenzisi bajabule.

Amanye amakhonkco anxulumeneyo:

  1. Ukwazi Helm 3
  2. Helm iwebhusayithi esemthethweni
  3. Indawo yokugcina iHelm kwiGitHub
  4. Izixhobo ze-25 eziluncedo ze-Kubernetes: Ukusasazwa kunye noLawulo

Le ngxelo yaqala ukunikezelwa ngo @Kubernetes Inkomfa nguMail.ru Cloud Solutions. Jonga Π²ΠΈΠ΄Π΅ΠΎ eminye imisebenzi kwaye ubhalisele izibhengezo zeminyhadala kwiTelegram Malunga neKubernetes kwiMail.ru Group.

umthombo: www.habr.com

Yongeza izimvo