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
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.
UAdam Reese, umgcini ongundoqo weHelm, wazisa ingcamango "
- Khuphela i-YAML - khuphela ifayile ye-YAML.
- Ncamathelisa i-YAML - yincamathelise.
- Lungisa i-idents - lungisa i-idents.
- 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.
Uyisebenzisa njani iHelm ukuhambisa ezakho izicelo
Masifake umxhasi weHelm kwikhompyuter yakho, silandela igosa
- 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.
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.
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.
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 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
Indlela yesi-3: Sebenzisa isitshixo --force
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
Indlela 4. Guqula iilebula ngokuthe ngqo kwi-Kubernetes
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.
Kwakhona kukho ulwazi oluneenkcukacha malunga neetemplates ezithunyelwe kunye namaxabiso. Sinokuyicela:
Kuhlelo lwesibini lweHelm, olu lwazi lukwakwindawo yegama elinye apho iTiller isebenza khona (kube-system ngokungagqibekanga), kwiConfigMap, ephawulwe ngelebhile βOWNER=TILLERβ:
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.
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.
I-Helm yesithathu isebenzisa isicwangciso sokudibanisa iindlela ezintathu: ngaphezu kwaloo lwazi, iphinda ithathele ingqalelo isicelo esisebenza ngoku kwi-Kubernetes.
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
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:
- 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. - Ncamathelisa okwangoku umhla kunye nexesha -
{{ .Release.Date }}
.
Umahluko uyafana nexabiso elingenamkhethe elinoguquko olulodwa olusisigxina. - 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:
Ukwazi Helm 3 Helm iwebhusayithi esemthethweni Indawo yokugcina iHelm kwiGitHub Izixhobo ze-25 eziluncedo ze-Kubernetes: Ukusasazwa kunye noLawulo
Le ngxelo yaqala ukunikezelwa ngo
umthombo: www.habr.com