Igama lami ngingu-Dmitry Sugrobov, ngingunjiniyela e-Leroy Merlin. Kulesi sihloko ngizokutshela ukuthi kungani i-Helm idingeka, ukuthi yenza kanjani lula ukusebenza ne-Kubernetes, yini eshintshile enguqulweni yesithathu, nokuthi ungayisebenzisa kanjani ukuvuselela izinhlelo zokusebenza ekukhiqizeni ngaphandle kokuphumula.
Lesi isifinyezo esisekelwe enkulumweni yenkomfa
Kungani sisebenzisa i-Kubernetes ekukhiqizeni
U-Leroy Merlin ungumholi emakethe yokudayisa ye-DIY eRussia naseYurophu. Inkampani yethu inabathuthukisi abangaphezu kwekhulu, abasebenzi bangaphakathi abangama-33 kanye nenani elikhulu labantu abavakashela ama-hypermarkets kanye newebhusayithi. Ukuze sibenze bajabule bonke, sinqume ukulandela izindlela ezijwayelekile zomkhakha. Yakha izinhlelo zokusebenza ezintsha usebenzisa i-microservice architecture; sebenzisa iziqukathi ukuhlukanisa izindawo kanye nokuqinisekisa ukulethwa okufanele; futhi usebenzise i-Kubernetes ku-orchestration. Intengo yokusebenzisa ama-orchestrator iya iba ishibhile ngokushesha: inani lonjiniyela abanolwazi kwezobuchwepheshe liyakhula emakethe, futhi abahlinzeki babonakala behlinzeka nge-Kubernetes njengesevisi.
Konke u-Kubernetes akwenzayo, yiqiniso, kungenziwa ngezinye izindlela, isibonelo, ngokumboza amanye ama-Jenkins kanye ne-docker-compose ngemibhalo, kodwa kungani kuyinkimbinkimbi ukuphila uma kunesixazululo esenziwe ngomumo nesithembekile? Yingakho size eKubernetes futhi sesinonyaka siyisebenzisa ekukhiqizeni. Njengamanje sinamaqoqo e-Kubernetes angamashumi amabili nane, elidala kunawo wonke elingaphezu konyaka ubudala, elinama-pods angaba amakhulu amabili.
Isiqalekiso samafayela amakhulu e-YAML ku-Kubernetes
Ukuze sethule i-microservice ku-Kubernetes, sizodala okungenani amafayela amahlanu e-YAML: Okukhipha, Isevisi, i-Ingress, i-ConfigMap, Izimfihlo - futhi siwathumele kuqoqo. Kuhlelo lokusebenza olulandelayo sizobhala iphakheji efanayo ye-jambs, neyesithathu sizobhala enye, njalonjalo. Uma siphindaphinda inombolo yamadokhumenti ngenani lezindawo, sizovele sithole amakhulukhulu wamafayela, futhi lokhu akukaqapheli izimo eziguquguqukayo.
U-Adam Reese, umnakekeli oyinhloko we-Helm, wethula umqondo wokuthi "
- Kopisha i-YAML - kopisha ifayela le-YAML.
- Namathisela i-YAML - namathisele.
- Lungisa ama-indenti - lungisa ama-indenti.
- Phinda - phinda futhi.
Inketho iyasebenza, kodwa kufanele ukopishe amafayela e-YAML izikhathi eziningi. Ukushintsha lo mjikelezo, i-Helm yasungulwa.
Yini iHelm
Okokuqala, Helm - umphathi wephakheji, okukusiza ukuthi uthole futhi ufake izinhlelo ozidingayo. Ukufaka, ngokwesibonelo, i-MongoDB, awudingi ukuya kuwebhusayithi esemthethweni futhi ulande amabhinari, mane usebenzise umyalo. helm install stable/mongodb
.
Okwesibili, uHelm - injini yesifanekiso, isiza ukuhlela amafayela. Ake sibuyele esimweni ngamafayela e-YAML ku-Kubernetes. Kulula ukubhala ifayela elifanayo le-YAML, engeza izimeli kulo, lapho i-Helm izofaka khona amanani esikhundleni. Okusho ukuthi, esikhundleni seqoqo elikhulu lama-scaffolds, kuzoba nesethi yezifanekiso lapho amanani adingekayo azoshintshwa ngesikhathi esifanele.
Okwesithathu, Helm - umpetha wokuthunyelwa. Ngayo ungafaka, ubuyisele emuva futhi ubuyekeze izinhlelo zokusebenza. Ake sithole ukuthi singakwenza kanjani lokhu.
Indlela yokusebenzisa i-Helm ukuze usebenzise izinhlelo zakho zokusebenza
Masifake iklayenti le-Helm kukhompyutha yakho, silandele isikhulu
- khombisa ifolda enezifanekiso;
- pakisha ingobo yomlando ku-.tar bese ukhomba kuyo;
- faka isifanekiso endaweni yokugcina eyihlane bese wengeza isixhumanisi endaweni yokugcina kuklayenti le-Helm.
Udinga futhi ifayela elinamanani - values.yaml. Idatha esuka lapho izofakwa kusifanekiso. Masiyidale futhi.
Inguqulo yesibili ye-Helm inesicelo esengeziwe seseva - iTiller. Ilenga ngaphandle kwe-Kubernetes futhi ilinde izicelo ezivela kuklayenti le-Helm, futhi lapho ibizwa, ifaka amanani adingekayo endaweni yesifanekiso bese isithumela ku-Kubernetes.
I-Helm 3 ilula: esikhundleni sokucubungula izifanekiso kuseva, ulwazi manje selucutshungulwa ngokuphelele ohlangothini lweklayenti le-Helm futhi luthunyelwe ngokuqondile ku-Kubernetes API. Lokhu kwenza lula kuthuthukisa ukuphepha kweqoqo futhi kusiza uhlelo lokukhishwa.
Kusebenza kanjani konke
Qalisa umyalo helm install
. Ake sikhombise igama lokukhishwa kwesicelo futhi sinikeze indlela eya kumanani.yaml. Ekugcineni sizobonisa inqolobane lapho ishadi likhona kanye negama leshadi. Esibonelweni, lawa athi βlmruβ kanye βbestchartβ, ngokulandelana.
helm install --name bestapp --values values.yaml lmru/bestchart
Umyalo ungenziwa kanye kuphela, uma uphinda ubulawa esikhundleni salokho install
isidingo sokusebenzisa upgrade
. Ukwenza kube lula, esikhundleni semiyalo emibili, ungasebenzisa umyalo upgrade
ngokhiye owengeziwe --install
. Uma isetshenziswa okokuqala ngqa, i-Helm izothumela umyalo wokufaka ukukhishwa, futhi izoyibuyekeza ngokuzayo.
helm upgrade --install bestapp --values values.yaml lmru/bestchart
Izingibe zokusebenzisa izinguqulo ezintsha zohlelo lokusebenza nge-Helm
Kuleli qophelo lendaba, ngidlala Ubani Ofuna Ukuba Isigidi Nezethameli, futhi sithola ukuthi singamthola kanjani u-Helm ukuze abuyekeze inguqulo yohlelo lokusebenza.
Ngenkathi ngifunda ukuthi i-Helm isebenza kanjani, ngamangazwa ukuziphatha okungajwayelekile lapho ngizama ukubuyekeza izinguqulo zezinhlelo zokusebenza ezisebenzayo. Ngibuyekeze ikhodi yesicelo, ngalayisha isithombe esisha ebhukwini le-Docker, ngathumela umyalo wokuthunyelwa - futhi akwenzekanga lutho. Ngezansi kukhona izindlela ezingaphumelelanga ngokuphelele zokubuyekeza izinhlelo zokusebenza. Ngokufunda ngamunye wabo ngokuningiliziwe, uqala ukuqonda isakhiwo sangaphakathi sensimbi kanye nezizathu zalokhu kuziphatha okungabonakali.
Indlela 1. Ungashintshi imininingwane kusukela kwethulwa okokugcina
Njengoba isho helm upgrade
, khona-ke akukho okuzokwenzeka. UHelm uzocabanga ukuthi akukho okushintshile futhi asikho isidingo sokuthumela umyalo ku-Kubernetes ukuze ubuyekeze uhlelo lokusebenza.
Lapha nangezansi, umaka wakamuva uboniswa njengesibonelo kuphela. Uma ucacisa le thegi, i-Kubernetes izodawuniloda isithombe esibhalweni sedokhu njalo, ngokunganaki ipharamitha ye-imagePullPolicy. Ukusebenzisa kwakamuva ekukhiqizeni akuthandeki futhi kubangela imiphumela engemihle.
Indlela 2. Buyekeza i-LABEL esithombeni
Njengoba kulotshiwe okufanayo
Indlela yesi-3: Sebenzisa ukhiye --force
Ake siphendukele kumanyuwali futhi sibheke ukhiye odingekayo. Ukhiye wenza umqondo omkhulu --force
. Naphezu kwegama elisobala, ukuziphatha kuhlukile kulokho okulindelekile. Esikhundleni sokuphoqa isibuyekezo sohlelo lokusebenza, injongo yako yangempela ukubuyisela ukukhishwa okusesimweni se-FAILED. Uma ungawusebenzisi lo khiye, udinga ukwenza imiyalo ngokulandelana helm delete && helm install --replace
. Kunalokho kuphakanyiswa ukusebenzisa ukhiye --force
, okwenza ngokuzenzakalelayo ukukhishwa okulandelanayo kwale miyalo. Ulwazi olwengeziwe kulokhu
Indlela 4. Shintsha amalebula ngokuqondile ku-Kubernetes
Ukubuyekeza ilebula ngqo ku-cluster kusetshenziswa umyalo kubectl edit
- umqondo omubi. Lesi senzo sizoholela ekuphambeni kolwazi phakathi kwesicelo esisebenzayo kanye nalolo olwathunyelwa ekuqaleni ukuze lusetshenziswe. Ukuziphatha kwe-Helm ngesikhathi sokuthunyelwa kuleli cala kuyahluka enguqulweni yayo: I-Helm 2 ngeke yenze lutho, futhi i-Helm 3 izokhipha inguqulo entsha yohlelo lokusebenza. Ukuze uqonde ukuthi kungani, udinga ukuqonda ukuthi i-Helm isebenza kanjani.
I-Helm isebenza kanjani?
Ukuze unqume ukuthi uhlelo lokusebenza lushintshile yini kusukela ekukhululweni kwalo kokugcina, i-Helm ingasebenzisa:
- ukusebenzisa uhlelo lokusebenza ku-Kubernetes;
- amanani amasha.yaml kanye neshadi lamanje;
- Ulwazi lokukhishwa kwangaphakathi kwe-Helm.
Ukuze uthole ukwazi okwengeziwe: i-Helm ilugcina kuphi ulwazi lwangaphakathi mayelana nokukhishwa?Ngokwenza umyalo helm history
, sizothola lonke ulwazi mayelana nezinguqulo ezifakwe kusetshenziswa i-Helm.
Kukhona nolwazi oluningiliziwe mayelana nezifanekiso ezithunyelwe kanye namanani. Singakucela:
Ohlotsheni lwesibili lwe-Helm, lolu lwazi lutholakala endaweni yamagama lapho i-Tiller isebenza khona (kube-system ngokuzenzakalelayo), ku-ConfigMap, ephawulwe ngelebula ethi βOWNER=TILLERβ:
Lapho kuvela inguqulo yesithathu ye-Helm, ulwazi luthuthelwe kuzimfihlo, kanye nendawo yegama efanayo lapho uhlelo lwalusebenza khona. Ngenxa yalokhu, kube nokwenzeka ukusebenzisa izinhlelo zokusebenza eziningana ngesikhathi esisodwa ezindaweni zamagama ezihlukene ezinegama elifanayo lokukhululwa. Enguqulweni yesibili kube yikhanda elibuhlungu kakhulu lapho izikhala zamagama zihlukaniswa kodwa zingathonyana.
I-Helm yesibili, lapho izama ukuqonda ukuthi isibuyekezo siyadingeka yini, isebenzisa imithombo emibili kuphela yolwazi: lokho enikezwa yona manje, kanye nolwazi lwangaphakathi mayelana nokukhishwa, okuku-ConfigMap.
I-Helm yesithathu isebenzisa isu lokuhlanganisa lezindlela ezintathu: ngaphezu kwalolo lwazi, liphinde licabangele uhlelo lokusebenza olusebenza manje ku-Kubernetes.
Ngenxa yalesi sizathu, inguqulo endala ye-Helm ngeke yenze lutho, ngoba ayifaki ulwazi lohlelo lokusebenza ku-cluster, kodwa i-Helm 3 izothola izinguquko futhi ithumele isicelo esisha sokuthunyelwa.
Indlela 5. Sebenzisa --recreate-pods switch
Ngokhiye --recreate-pods
ungafinyelela lokho obukuhlelele ukukufeza ngokhiye --force
. Iziqukathi zizoqala kabusha futhi, ngokuya nge-imagePullPolicy: Inqubomgomo njalo yethegi yakamuva (ngaphezulu ngalokhu kumbhalo waphansi ongenhla), i-Kubernetes izodawuniloda futhi yethule inguqulo entsha yesithombe. Lokhu ngeke kwenziwe ngendlela engcono kakhulu: ngaphandle kokucabangela i-StrategyType of deployment, izocisha kungazelelwe zonke izimo zohlelo lokusebenza bese iqala ukwethula ezintsha. Ngesikhathi sokuqalisa kabusha, uhlelo ngeke lusebenze, abasebenzisi bazohlupheka.
Ku-Kubernetes uqobo, inkinga efanayo yayikhona isikhathi eside. Futhi manje, eminyakeni emi-4 ngemuva kokuvulwa
I-Helm ivele ivale zonke izinhlelo zokusebenza bese yethula iziqukathi ezintsha eziseduze. Awukwazi ukwenza lokhu ekukhiqizeni, ukuze ungabangeli isikhathi sokuphumula sohlelo lokusebenza. Lokhu kuyadingeka kuphela ngezidingo zokuthuthukiswa futhi kungenziwa kuphela ezindaweni zasesiteji.
Ungabuyekeza kanjani inguqulo yohlelo lokusebenza usebenzisa i-Helm?
Sizoshintsha amanani athunyelwe ku-Helm. Ngokuvamile, lawa amanani ashintshwa esikhundleni sethegi yesithombe. Endabeni yakamuva, evame ukusetshenziselwa izindawo ezingakhiqizi, ulwazi oluguquguqukayo luyisichasiselo, esingenamsebenzi ku-Kubernetes ngokwayo, futhi ku-Helm izosebenza njengesignali yesidingo sokuvuselela uhlelo lokusebenza. Izinketho zokugcwalisa inani lesichasiselo:
- Inani elingahleliwe usebenzisa umsebenzi ojwayelekile -
{{ randAlphaNum 6 }}
.
Kukhona i-caveat: ngemva kokuthunyelwa ngakunye kusetshenziswa ishadi elinokuguquguquka okunjalo, inani lesichasiselo lizohluka, futhi i-Helm izothatha ngokuthi kukhona izinguquko. Kuvele ukuthi sizohlala siqala kabusha uhlelo lokusebenza, ngisho noma singakashintshi inguqulo yalo. Lokhu akubalulekile, ngoba ngeke kube khona isikhathi sokuphumula, kodwa kusengajabulisi. - Namathisela okwamanje usuku nesikhathi -
{{ .Release.Date }}
.
Okuhlukile kuyefana nenani elingahleliwe elinoguquko oluyingqayizivele unaphakade. - Indlela enembe kakhulu ukusebenzisa amasheke. Lena i-SHA yesithombe noma i-SHA yesithembiso sokugcina ku-git -
{{ .Values.sha }}
.
Kuzodingeka zibalwe futhi zithunyelwe kuklayenti le-Helm ohlangothini lokushaya, isibonelo ku-Jenkins. Uma uhlelo lokusebenza lushintshile, i-checksum izoshintsha. Ngakho-ke, i-Helm izobuyekeza uhlelo lokusebenza kuphela lapho kudingeka.
Ake sifingqe imizamo yethu
- I-Helm yenza izinguquko ngendlela engavamile kakhulu, ngakho-ke noma yiluphi ushintsho ezingeni lesithombe sohlelo lokusebenza ku-Docker Registry ngeke lubangele isibuyekezo: akukho lutho oluzokwenzeka ngemva kokukhishwa komyalo.
- Ukhiye
--force
esetshenziselwa ukubuyisela ukukhishwa okuyinkinga futhi ayihlotshaniswa nezibuyekezo eziphoqelelwe. - Ukhiye
--recreate-pods
izobuyekeza izinhlelo zokusebenza ngamandla, kodwa izokwenza ngendlela ecekela phansi: izocisha kungazelelwe zonke iziqukathi. Abasebenzisi bazohlupheka ngalokhu; akufanele ukwenze lokhu ekukhiqizeni. - Yenza izinguquko ngokuqondile kuqoqo le-Kubernetes usebenzisa umyalo
kubectl edit
ungakwenzi: sizokwephula ukungaguquguquki, futhi ukuziphatha kuzohluka kuye ngenguqulo ye-Helm. - Ngokukhululwa kwenguqulo entsha ye-Helm, kuye kwavela ama-nuances amaningi. Izinkinga ezisenqolobaneni ye-Helm zichazwe ngolimi olucacile, zizokusiza uqonde imininingwane.
- Ukwengeza isichasiselo esihlelekayo eshadini kuzolenza livumelane nezimo. Lokhu kuzokuvumela ukuthi ukhiphe uhlelo lokusebenza ngendlela efanele, ngaphandle kwesikhathi sokuphumula.
Umcabango "wokuthula komhlaba" osebenza kuzo zonke izici zokuphila: funda imiyalelo ngaphambi kokuyisebenzisa, hhayi ngemva kwalokho. Kuphela ngolwazi oluphelele kuzokwazi ukwakha izinhlelo ezithembekile nokwenza abasebenzisi bajabule.
Ezinye izixhumanisi ezihlobene:
Ukujwayelana Helm 3 Iwebhusayithi esemthethweni ye-Helm Indawo yokugcina i-Helm ku-GitHub 25 Amathuluzi E-Kubernetes Awusizo: Ukusabalalisa Nokuphatha
Lo mbiko wethulwe okokuqala ngo
Source: www.habr.com