Iyo Helm mudziyo nemakomba ayo

Iyo Helm mudziyo nemakomba ayo
Typhon freight hauler concept, Anton Swanepoel

Zita rangu ndiDmitry Sugrobov, ndiri mugadziri paLeroy Merlin. Muchikamu chino ini ndichakuudza kuti nei Helm ichidikanwa, kuti inorerutsa sei kushanda neKubernetes, chii chachinja mushanduro yechitatu, uye mashandisiro ekugadzirisa maapplication mukugadzira pasina kunonoka.

Iyi ipfupiso inobva pakutaura pamusangano @Kubernetes Musangano by Mail.ru Cloud Solutions - kana iwe usingade kuverenga, tarisa vhidhiyo.

Chikonzero nei tichishandisa Kubernetes mukugadzira

Leroy Merlin mutungamiri mumusika wekutengesa DIY muRussia neEurope. Kambani yedu ine vanopfuura zana vanogadzira, 33 vashandi vemukati uye nhamba huru yevanhu vanoshanyira hypermarkets uye webhusaiti. Kuti tivafadze vese, takasarudza kutevedzera nzira dzemaindasitiri. Gadzira maapplication matsva uchishandisa microservice architecture; shandisa midziyo kuparadzanisa nharaunda uye kuve nechokwadi chekuendesa kwakaringana; uye shandisa Kubernetes kuita orchestration. Mutengo wekushandisa orchestrators uri kukurumidza kudhura: huwandu hwemainjiniya vane ruzivo mune tekinoroji huri kukura pamusika, uye vanopa varikuonekwa vachipa Kubernetes sevhisi.

Zvose zvinoitwa naKubernetes, zvechokwadi, zvinogona kuitwa mune dzimwe nzira, semuenzaniso, nekuvhara mamwe maJenkins uye docker-compose nemagwaro, asi sei kuomesera upenyu kana pane mhinduro yakagadzirwa uye yakavimbika? Ndosaka tauya kuKubernetes uye tanga tichiishandisa mukugadzira kwegore ikozvino. Parizvino tine makumi maviri nemana eKubernetes masumbu, ekare ayo ane anopfuura gore, ane mazana maviri epods.

Kutukwa kwemafaira makuru eYAML muKubernetes

Kuti titange microservice muKubernetes, isu tichagadzira anokwana mashanu mafaera eYAML: eDeployment, Sevhisi, Ingress, ConfigMap, Zvakavanzika - uye titumire kune iyo cluster. Kushandisa kunotevera tichanyora pasuru imwechete yejambs, neyechitatu tichanyora imwe, zvichingodaro. Kana tikawanza nhamba yemagwaro nenhamba yenzvimbo, tichatowana mazana emafaira, uye izvi hazvisati zvichifunga nezvemamiriro ekuchinja.

Iyo Helm mudziyo nemakomba ayo
Adam Reese, muchengeti mukuru weHelm, akaunza pfungwa ye "Development Cycle muKubernetes", izvo zvinoita seizvi:

  1. Kopa YAML - kopira YAML faira.
  2. Namira YAML - namira.
  3. Gadzirisa Indents - gadzirisa indents.
  4. Dzokorora - dzokorora zvakare.

Iyo sarudzo inoshanda, asi iwe unofanirwa kukopa iyo YAML mafaera kakawanda. Kuti ichinje kutenderera uku, Helm yakagadzirwa.

Chii chinonzi Helm

Kutanga, Helm - package manager, iyo inokubatsira kuwana uye kuisa zvirongwa zvaunoda. Kuisa, semuenzaniso, MongoDB, haufanire kuenda kune yepamutemo webhusaiti uye kurodha mabhinari, ingo mhanyisa iwo murairo. helm install stable/mongodb.

Chechipiri, Helm - template injini, inobatsira parameterize mafaira. Ngatidzokere kumamiriro ezvinhu neYAML mafaera muKubernetes. Zviri nyore kunyora iyo yakafanana YAML faira, wedzera mamwe ekuisa nzvimbo kwairi, iyo iyo Helm inotsiva iyo kukosha. Ndiko kuti, pachinzvimbo cheseti yakakura yezvikafu, pachave neseti yematemplate umo inodiwa kukosha ichatsiviwa panguva chaiyo.

Chechitatu, Helm - deployment master. Nayo unogona kuisa, kudzoreredza uye kugadzirisa maapplication. Ngationei kuti tingazviita sei.

Iyo Helm mudziyo nemakomba ayo

Maitiro ekushandisa Helm kutumira ako maapplication

Ngatiisei Helm mutengi pakombuta yako, tichitevera mukuru mirayiridzo. Tevere, tichagadzira seti yemafaira eYAML. Panzvimbo pekutsanangura hunhu chaihwo, isu tinosiya vanobata nzvimbo, iyo Helm inozadza neruzivo mune ramangwana. Seti yemafaira akadaro inonzi Helm chart. Inogona kutumirwa kune Helm console mutengi munzira nhatu:

  • ratidza folda ine templates;
  • rongedza archive mu .tar uye unongedze kwairi;
  • isa iyo template mune iri kure repository uye wedzera chinongedzo kune repository muHelm mutengi.

Iwe zvakare unoda faira rine kukosha - values.yaml. Iyo data kubva ipapo ichaiswa mutemplate. Ngatigadzirireiwo.

Iyo Helm mudziyo nemakomba ayo
Yechipiri vhezheni yeHelm ine yekuwedzera server application - Tiller. Inorembera kunze kweKubernetes uye inomirira zvikumbiro kubva kune Helm mutengi, uye kana yadaidzwa, inotsiva iyo inodiwa tsika mutemplate uye inotumira kuKubernetes.

Iyo Helm mudziyo nemakomba ayo
Helm 3 iri nyore: pachinzvimbo chekugadzirisa matemplate pane sevha, ruzivo rwave kugadziriswa zvachose padivi remutengi weHelm uye rinotumirwa zvakananga kuKubernetes API. Uku kurerutsa kunonatsiridza kuchengetedzwa kwemapoka uye kunofambisa chirongwa chekuburitsa.

Zvose zvinoshanda sei

Mhanyai murairo helm install. Ngatiratidzei zita rekuburitswa kweapp uye tipe nzira kune values.yaml. Kumagumo isu ticharatidza dura mune iyo chati uye zita rechati. Mumuenzaniso, aya ndiwo "lmru" uye "bestchart", zvichiteerana.

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

Murairo unogona kuitwa kamwe chete, kana uchinge waurayiwa zvakare panzvimbo install zvinoda kushandisa upgrade. Kuti zvive nyore, panzvimbo yemirairo miviri, unogona kumhanya murairo upgrade nekiyi yokuwedzera --install. Kana yaitwa kekutanga, Helm inotumira rairo yekuisa iyo kuburitswa, uye ichaigadzirisa mune ramangwana.

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

Misungo yekuendesa shanduro nyowani dzekushandisa neHelm

Panguva ino munyaya, ndiri kutamba Ndiani Anoda Kuva Miriyoni nevateereri, uye tiri kufunga kuti tingaite sei kuti Helm ivandudze shanduro yeapp. Tarisa vhidhiyo.

Pandakanga ndichidzidza mashandiro anoita Helm, ndakashamiswa nehunhu husinganzwisisike pandichiedza kuvandudza shanduro dzekushandisa maapplication. Ndakagadziridza kodhi yekunyorera, ndakaisa mufananidzo mutsva kuDocker registry, ndakatumira deployment command - uye hapana chakaitika. Pazasi pane dzimwe nzira dzisina kunyatsobudirira dzekuvandudza maapplication. Nokudzidza chimwe nechimwe chazvo zvakadzama, unotanga kunzwisisa chimiro chemukati chechiridzwa uye zvikonzero zveizvi zvisiri pachena maitiro.

Nzira 1. Usashandura ruzivo kubva pakatanga kuburitswa

Sezvazvinotaura website yepamutemo Helm, "Kubernetes machati anogona kunge akakura uye akaomarara, saka Helm anoedza kusabata chero chinhu chakawandisa." Naizvozvo, kana iwe ukagadziridza yazvino vhezheni yemufananidzo wekushandisa mune docker registry uye mhanyisa rairo helm upgrade, ipapo hapana chichaitika. Helm ichafunga kuti hapana chachinja uye hapana chikonzero chekutumira murairo kuna Kubernetes kuti igadzirise application.

Pano uye pazasi, iyo yazvino tag inoratidzwa chete semuenzaniso. Paunotsanangura iyi tag, Kubernetes inodhawunirodha mufananidzo kubva kune docker registry nguva dzese, zvisinei nemufananidzoPullPolicy parameter. Kushandisa ichangoburwa mukugadzira hakudiwe uye kunokonzeresa mhedzisiro.

Nzira 2. Gadzirisa LABEL mumufananidzo

Sezvazvakanyorwa zvakafanana zvinyorwa, "Helm inongogadzirisa application kana yachinja kubva pakuburitswa kwekupedzisira." Sarudzo ine musoro pane iyi inoita kunge iri kuvandudza iyo LABEL mumufananidzo wedocker pachawo. Nekudaro, Helm haitarise mumifananidzo yekushandisa uye haina ruzivo nezve chero shanduko kwavari. Saizvozvo, kana uchigadziridza mavara mumufananidzo, Helm haazoziva nezvavo, uye iyo application update command haizotumirwa kuKubernetes.

Nzira 3: Shandisa kiyi --force

Iyo Helm mudziyo nemakomba ayo
Ngatitendeukire kune zvinyorwa uye titarise kiyi inodiwa. Kiyi inoita pfungwa yakanyanya --force. Pasinei nezita riri pachena, maitiro acho akasiyana neanotarisirwa. Panzvimbo yekumanikidza kugadziridza application, chinangwa chayo chaicho ndechekudzoreredza kuburitswa kuri muFAILED chimiro. Kana iwe usingashandisi kiyi iyi, unofanirwa kuita mirairo yacho sequentially helm delete && helm install --replace. Zvinokurudzirwa kushandisa kiyi panzvimbo --force, iyo inogadzirisa kutevedzana kwekuita kwemirairo iyi. Mamwe ruzivo mune izvi dhonza chikumbiro. Kuti uudze Helm kuti agadzirise shanduro yekushandisa, zvinosuruvarisa, kiyi iyi haishande.

Nzira 4. Shandura mavara zvakananga muKubernetes

Iyo Helm mudziyo nemakomba ayo
Kuvandudza label zvakananga musumbu uchishandisa murairo kubectl edit - pfungwa yakaipa. Chiito ichi chinotungamira mukusawirirana kweruzivo pakati pechikumbiro chekumhanya uye icho chakatumirwa pakutanga kuti chiendeswe. Maitiro eHelm panguva yekuendeswa mune iyi kesi anosiyana neshanduro yayo: Helm 2 haizoite chero chinhu, uye Helm 3 ichaendesa iyo nyowani vhezheni yekushandisa. Kuti unzwisise kuti sei, iwe unofanirwa kunzwisisa kuti Helm inoshanda sei.

Helm inoshanda sei?

Kuti uone kana application yachinja kubva payakapedzisira kuburitswa, Helm inogona kushandisa:

  • inomhanya application muKubernetes;
  • mitsva inokosha.yaml uye chati chazvino;
  • Helm yemukati yekuburitsa ruzivo.

Kune zvimwe zvinoda kuziva: Helm inochengetera kupi ruzivo rwemukati nezve kuburitswa?Nekuita murairo helm history, tichawana ruzivo rwese nezve shanduro dzakaiswa uchishandisa Helm.

Iyo Helm mudziyo nemakomba ayo
Kune zvakare ruzivo rwakadzama nezve akatumirwa matemplate uye kukosha. Tinogona kuikumbira:

Iyo Helm mudziyo nemakomba ayo
Mune yechipiri vhezheni yeHelm, ruzivo urwu rwuri munzvimbo imwecheteyo iyo Tiller ari kumhanya (kube-system nekusarudzika), muConfigMap, yakanyorwa nerekuti "OWNER=TILLER":

Iyo Helm mudziyo nemakomba ayo
Pakaonekwa yechitatu vhezheni yeHelm, ruzivo rwakatamira kune zvakavanzika, uye kune imwecheteyo nzvimbo yezita iyo application yaimhanya. Nekuda kweizvi, zvakave zvinogoneka kumhanya akati wandei panguva imwe chete munzvimbo dzakasiyana dzemazita ine zita rimwechete rekuburitsa. Mushanduro yechipiri yaive yakakomba musoro kana nzvimbo dzezita dzakaparadzaniswa asi dzichigona kupesvedzerana.

Iyo Helm mudziyo nemakomba ayo

Yechipiri Helm, kana ichiedza kunzwisisa kana update ichidiwa, inoshandisa maviri chete masosi eruzivo: chii chakapihwa kwairi ikozvino, uye ruzivo rwemukati nezve kuburitswa, uko kuri muConfigMap.

Iyo Helm mudziyo nemakomba ayo
Iyo yechitatu Helm inoshandisa nzira nhatu dzekubatanidza nzira: kuwedzera kune iyo ruzivo, zvakare inofunga nezve application iri kushanda izvozvi muKubernetes.

Iyo Helm mudziyo nemakomba ayo
Nechikonzero ichi, iyo yekare vhezheni yeHelm haizoite chero chinhu, sezvo isingatarise ruzivo rwekushandisa musumbu, asi Helm 3 inogashira shanduko uye kutumira chikumbiro chitsva chekutumirwa.

Nzira 5. Shandisa --recreate-pods switch

Nekiyi --recreate-pods unogona kuzadzisa zvawakaronga pakutanga kuzadzisa nekiyi --force. Iyo midziyo ichatangazve uye, zvinoenderana nemufananidzoPullPolicy: Gara mutemo weiyo tag yazvino (zvimwe pane izvi muzasi mezasi), Kubernetes inodhawunirodha uye kuvhura vhezheni itsva yemufananidzo. Izvi hazviitwe nenzira yakanakisa: pasina kufunga nezve StrategyType yekuendesa, inozodzima kamwe kamwe zviitiko zvekare zvekushandisa uye kutanga kutanga matsva. Panguva yekutangazve, iyo sisitimu haishande, vashandisi vachatambura.

MuKubernetes pachayo, dambudziko rakafanana raivepo kwenguva yakareba. Uye zvino, makore mana mushure mekuvhurwa nyaya, dambudziko rakagadziriswa, uye kutanga nevhezheni 1.15 yeKubernetes, kugona kutenderedza-restart pods kunoonekwa.

Helm inongodzima zvese zvikumbiro uye kuvhura midziyo mitsva padyo. Iwe haugone kuita izvi mukugadzira, kuitira kuti usakonzerese nguva yekushandisa. Izvi zvinongodiwa kune zvinodiwa zvebudiriro uye zvinogona kuitwa chete munzvimbo dzematanho.

Maitiro ekugadzirisa shanduro yekushandisa uchishandisa Helm?

Isu tichashandura hunhu hwakatumirwa kuHelm. Kazhinji, aya ndiwo maitiro anotsiviwa panzvimbo yeiyo tag yemufananidzo. Munyaya yezvino, iyo inowanzoshandiswa kune nharaunda dzisina kugadzirwa, iyo inoshanduka ruzivo ndeye annotation, iyo isingabatsiri kune Kubernetes pachayo, uye kune Helm ichaita sechiratidzo chekudiwa kwekuvandudza application. Sarudzo dzekuzadza kukosha kwezvirevo:

  1. Random value kushandisa standard function - {{ randAlphaNum 6 }}.
    Pane caveat: mushure mekutumirwa kwega kwega uchishandisa chati ine shanduko yakadaro, kukosha kweanotsidzira kuchave kwakasiyana, uye Helm achafunga kuti pane shanduko. Zvinoitika kuti isu tichagara tichitangazve application, kunyangwe isu tisina kuchinja vhezheni yayo. Izvi hazvisi zvakakosha, sezvo pachange pasina nguva yekuderera, asi zvichiri zvisingafadzi.
  2. Namatidza ikozvino zuva nenguva - {{ .Release.Date }}.
    Musiyano wakafanana nehukoshi hwechisina kurongeka nerudzi rwakasiyana zvachose.
  3. Imwe nzira yakarurama ndeyekushandisa checksums. Iyi ndiyo SHA yemufananidzo kana SHA yekupedzisira kuzvipira mugit - {{ .Values.sha }}.
    Ivo vanozoda kuverengerwa uye kutumirwa kune Helm mutengi padivi rekufona, semuenzaniso muJenkins. Kana iyo application yachinja, ipapo cheki inochinja. Naizvozvo, Helm inongogadzirisa iyo application pazvinenge zvichidikanwa.

Ngatipei muchidimbu kuedza kwedu

  • Helm inoita shanduko nenzira isinga pindike, saka chero shanduko padanho remufananidzo muDocker Registry haizokonzerese: hapana chichaitika mushure mekunge murairo waitwa.
  • Key --force inoshandiswa kudzoreredza kuburitswa kwedambudziko uye haina hukama nekumanikidzirwa kugadzirisa.
  • Key --recreate-pods ichagadzirisa zvine simba zvikumbiro, asi ichazviita nenzira inoparadza: inozodzima midziyo yese. Vashandisi vachatambura neizvi; haufanirwe kuita izvi mukugadzira.
  • Ita shanduko kuKubernetes cluster uchishandisa rairo kubectl edit usaite: tichaputsa kuwirirana, uye maitiro achasiyana zvichienderana neshanduro yeHelm.
  • Nekuburitswa kweiyo vhezheni itsva yeHelm, akawanda nuances akaonekwa. Matambudziko ari muHelm repository anotsanangurwa mumutauro wakajeka, ivo vachakubatsira iwe kuti unzwisise zvakadzama.
  • Kuwedzera chirevo chinogadzirika kune chati kuchaita kuti iwedzere kushanduka. Izvi zvinokutendera kuti uburitse application nemazvo, pasina nguva yekudzikira.

Mufungo we "runyararo rwenyika" unoshanda munzvimbo dzese dzehupenyu: verenga mirairo usati washandisa, kwete mushure. Chete neruzivo rwakakwana zvichave zvichikwanisika kuvaka masisitimu akavimbika uye kuita kuti vashandisi vafare.

Mamwe ma link ane hukama:

  1. Kujairana ne Helmamu 3
  2. Helm yepamutemo webhusaiti
  3. Helm repository paGitHub
  4. 25 Inobatsira Kubernetes Zvishandiso: Deployment uye Management

Chirevo ichi chakatanga kuburitswa pa @Kubernetes Musangano ne Mail.ru Cloud Solutions. Tarisa Π²ΠΈΠ΄Π΅ΠΎ mamwe maitiro uye kunyorera kune zviziviso zvezviitiko paTeregiramu Around Kubernetes paMail.ru Group.

Source: www.habr.com

Voeg