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
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.
Adam Reese, muchengeti mukuru weHelm, akaunza pfungwa ye "
- Kopa YAML - kopira YAML faira.
- Namira YAML - namira.
- Gadzirisa Indents - gadzirisa indents.
- 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.
Maitiro ekushandisa Helm kutumira ako maapplication
Ngatiisei Helm mutengi pakombuta yako, tichitevera mukuru
- 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.
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.
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.
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 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
Nzira 3: Shandisa kiyi --force
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
Nzira 4. Shandura mavara zvakananga muKubernetes
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.
Kune zvakare ruzivo rwakadzama nezve akatumirwa matemplate uye kukosha. Tinogona kuikumbira:
Mune yechipiri vhezheni yeHelm, ruzivo urwu rwuri munzvimbo imwecheteyo iyo Tiller ari kumhanya (kube-system nekusarudzika), muConfigMap, yakanyorwa nerekuti "OWNER=TILLER":
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.
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 yechitatu Helm inoshandisa nzira nhatu dzekubatanidza nzira: kuwedzera kune iyo ruzivo, zvakare inofunga nezve application iri kushanda izvozvi muKubernetes.
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
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:
- 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. - Namatidza ikozvino zuva nenguva -
{{ .Release.Date }}
.
Musiyano wakafanana nehukoshi hwechisina kurongeka nerudzi rwakasiyana zvachose. - 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:
Kujairana ne Helmamu 3 Helm yepamutemo webhusaiti Helm repository paGitHub 25 Inobatsira Kubernetes Zvishandiso: Deployment uye Management
Chirevo ichi chakatanga kuburitswa pa
Source: www.habr.com