Idivayisi ye-Helm kanye nezingibe zayo

Idivayisi ye-Helm kanye nezingibe zayo
Umqondo wokuthutha impahla yeTyphon, u-Anton Swanepoel

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 @Kubernetes Conference by I-Mail.ru Cloud Solutions - uma ungafuni ukufunda, bukela ividiyo.

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.

Idivayisi ye-Helm kanye nezingibe zayo
U-Adam Reese, umnakekeli oyinhloko we-Helm, wethula umqondo wokuthi "Umjikelezo Wokuthuthukisa e-Kubernetes", okubukeka kanjena:

  1. Kopisha i-YAML - kopisha ifayela le-YAML.
  2. Namathisela i-YAML - namathisele.
  3. Lungisa ama-indenti - lungisa ama-indenti.
  4. 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.

Idivayisi ye-Helm kanye nezingibe zayo

Indlela yokusebenzisa i-Helm ukuze usebenzise izinhlelo zakho zokusebenza

Masifake iklayenti le-Helm kukhompyutha yakho, silandele isikhulu imiyalelo. Okulandelayo, sizodala isethi yamafayela e-YAML. Esikhundleni sokucacisa amanani athile, sizoshiya izibambindawo, i-Helm ezozigcwalisa ngolwazi esikhathini esizayo. Iqoqo lamafayela anjalo libizwa ngokuthi ishadi le-Helm. Ingathunyelwa kuklayenti le-Helm console ngezindlela ezintathu:

  • 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.

Idivayisi ye-Helm kanye nezingibe zayo
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.

Idivayisi ye-Helm kanye nezingibe zayo
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. Bukela ividiyo.

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 iwebhusayithi esemthethweni Helm, "Amashadi e-Kubernetes angaba makhulu futhi abe yinkimbinkimbi, ngakho uHelm uzama ukuthi angathinti lutho kakhulu." Ngakho-ke, uma ubuyekeza inguqulo yakamuva yesithombe sohlelo lokusebenza ebhukwini le-docker bese usebenzisa umyalo 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 imibhalo, "I-Helm izobuyekeza kuphela uhlelo lokusebenza uma lushintshile kusukela ekukhululweni kokugcina." Inketho enengqondo yalokhu izobonakala ibuyekeza i-LABEL esithombeni sedokha ngokwaso. Kodwa-ke, iHelm ayibheki ezithombeni zohlelo lokusebenza futhi ayinalwazi nganoma yiziphi izinguquko kuzo. Ngokufanelekile, lapho ubuyekeza amalebula esithombeni, uHelm ngeke azi ngawo, futhi umyalo wokubuyekeza isicelo ngeke uthunyelwe ku-Kubernetes.

Indlela yesi-3: Sebenzisa ukhiye --force

Idivayisi ye-Helm kanye nezingibe zayo
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 isicelo sokudonsa. Ukuze utshele uHelm ukuthi abuyekeze inguqulo yohlelo lokusebenza, ngeshwa, lo khiye ngeke usebenze.

Indlela 4. Shintsha amalebula ngokuqondile ku-Kubernetes

Idivayisi ye-Helm kanye nezingibe zayo
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.

Idivayisi ye-Helm kanye nezingibe zayo
Kukhona nolwazi oluningiliziwe mayelana nezifanekiso ezithunyelwe kanye namanani. Singakucela:

Idivayisi ye-Helm kanye nezingibe zayo
Ohlotsheni lwesibili lwe-Helm, lolu lwazi lutholakala endaweni yamagama lapho i-Tiller isebenza khona (kube-system ngokuzenzakalelayo), ku-ConfigMap, ephawulwe ngelebula ethi β€œOWNER=TILLER”:

Idivayisi ye-Helm kanye nezingibe zayo
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.

Idivayisi ye-Helm kanye nezingibe zayo

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.

Idivayisi ye-Helm kanye nezingibe zayo
I-Helm yesithathu isebenzisa isu lokuhlanganisa lezindlela ezintathu: ngaphezu kwalolo lwazi, liphinde licabangele uhlelo lokusebenza olusebenza manje ku-Kubernetes.

Idivayisi ye-Helm kanye nezingibe zayo
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 Issue, inkinga isilungisiwe, futhi kuqalwa ngenguqulo 1.15 ye-Kubernetes, ikhono lokuqalisa kabusha ama-pods liyavela.

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:

  1. 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.
  2. Namathisela okwamanje usuku nesikhathi - {{ .Release.Date }}.
    Okuhlukile kuyefana nenani elingahleliwe elinoguquko oluyingqayizivele unaphakade.
  3. 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:

  1. Ukujwayelana Helm 3
  2. Iwebhusayithi esemthethweni ye-Helm
  3. Indawo yokugcina i-Helm ku-GitHub
  4. 25 Amathuluzi E-Kubernetes Awusizo: Ukusabalalisa Nokuphatha

Lo mbiko wethulwe okokuqala ngo @Kubernetes Conference by Mail.ru Cloud Solutions. Bheka Π²ΠΈΠ΄Π΅ΠΎ eminye imisebenzi futhi ubhalisele izimemezelo zomcimbi kuTelegram Around Kubernetes at Mail.ru Group.

Source: www.habr.com

Engeza amazwana