An gléas Helm agus a gaistí

An gléas Helm agus a gaistí
Coincheap tarlóra lastais Typhon, Anton Swanepoel

Dmitry Sugrobov is ainm dom, is forbróir mé ag Leroy Merlin. San Airteagal seo inseoidh mé duit cén fáth go bhfuil gá le Helm, conas a shimplíonn sé oibriú le Kubernetes, cad a d’athraigh sa tríú leagan, agus conas é a úsáid chun feidhmchláir i dtáirgeadh a nuashonrú gan am aga.

Is achoimre é seo atá bunaithe ar óráid ag comhdháil Comhdháil @Kubernetes by Mail.ru Cloud Solutions - mura bhfuil tú ag iarraidh léamh, féach ar an bhfíseán.

Cén fáth a n-úsáideann muid Kubernetes i dtáirgeadh

Is ceannaire é Leroy Merlin sa mhargadh miondíola DIY sa Rúis agus san Eoraip. Tá níos mó ná céad forbróir ag ár gcuideachta, 33 fostaí inmheánacha agus líon mór daoine ag tabhairt cuairte ar hypermarkets agus ar an láithreán gréasáin. D'fhonn iad go léir a dhéanamh sásta, shocraigh muid cur chuige caighdeánach tionscail a leanúint. Feidhmchláir nua a fhorbairt ag baint úsáide as ailtireacht microservice; coimeádáin a úsáid chun timpeallachtaí a leithlisiú agus seachadadh cuí a chinntiú; agus Kubernetes a úsáid le haghaidh ceolfhoirne. Tá an praghas a bhaineann le húsáid ceolfhoirneoirí ag éirí níos saoire go tapa: tá líon na n-innealtóirí atá inniúil sa teicneolaíocht ag fás ar an margadh, agus tá an chuma ar na soláthraithe ag tairiscint Kubernetes mar sheirbhís.

Is féidir gach rud a dhéanann Kubernetes, ar ndóigh, a dhéanamh ar bhealaí eile, mar shampla, trí roinnt Jenkins agus docker-compose a chlúdach le scripteanna, ach cén fáth an saol casta má tá réiteach réidh agus iontaofa ann? Sin an fáth a tháinig muid go Kubernetes agus tá sé á úsáid i dtáirgeadh le bliain anois. Tá ceithre chnuasach is fiche de Kubernetes againn faoi láthair, an ceann is sine acu níos mó ná bliain d'aois, le timpeall dhá chéad pods.

Mallacht na gcomhad móra YAML i Kubernetes

Chun microservice a sheoladh i Kubernetes, cruthóimid cúig chomhad YAML ar a laghad: le haghaidh Imscaradh, Seirbhís, Ingress, ConfigMap, Rúin - agus seolfaimid chuig an mbraisle iad. Don chéad iarratas eile scríobhfaimid an pacáiste céanna de jambs, leis an tríú ceann scríobhfaimid ceann eile, agus mar sin de. Má dhéanaimid líon na ndoiciméad a iolrú faoi líon na dtimpeallachtaí, gheobhaidh muid na céadta comhad cheana féin, agus níl timpeallachtaí dinimiciúla á gcur san áireamh fós.

An gléas Helm agus a gaistí
Thug Adam Reese, cothaitheoir lárnach Helm, isteach an coincheap "Timthriall Forbartha i Kubernetes", a bhreathnaíonn mar seo:

  1. Cóipeáil YAML - cóipeáil comhad YAML.
  2. Greamaigh YAML - greamaigh é.
  3. Eangaí Deisigh - fleasc a shocrú.
  4. Déan arís - arís.

Oibríonn an rogha, ach caithfidh tú na comhaid YAML a chóipeáil go minic. Chun an timthriall seo a athrú, bhí Helm invented.

Cad é Helm

Ar dtús, Helm - bainisteoir pacáiste, a chuidíonn leat na cláir a theastaíonn uait a aimsiú agus a shuiteáil. Chun MongoDB a shuiteáil, mar shampla, ní gá duit dul chuig an láithreán gréasáin oifigiúil agus binaries a íoslódáil, ach an t-ordú a rith helm install stable/mongodb.

Sa dara háit, Helm - inneall teimpléad, cabhraíonn sé le comhaid a pharaiméadarú. Fillfimid ar an gcás le comhaid YAML i Kubernetes. Tá sé níos éasca an comhad YAML céanna a scríobh, roinnt sealbhóirí áite a chur leis, ina gcuirfidh Helm na luachanna in ionad. Is é sin, in ionad sraith mhór scafaill, beidh sraith teimpléid ann ina gcuirfear na luachanna riachtanacha in ionad ag an am ceart.

Ar an tríú dul síos, Helm - máistir imscaradh. Leis is féidir leat feidhmchláir a shuiteáil, a rolladh siar agus a nuashonrú. Déanaimis amach conas é seo a dhéanamh.

An gléas Helm agus a gaistí

Conas Helm a úsáid chun d’fheidhmchláir féin a imscaradh

Déanaimis an cliant Helm a shuiteáil ar do ríomhaire, tar éis an t-oifigeach treoracha. Ansin, cruthóimid sraith de chomhaid YAML. In ionad luachanna sonracha a shonrú, fágfaimid áitshealbhóirí, a líonfaidh Helm le faisnéis sa todhchaí. Tugtar Cairt Helm ar thacar comhaid dá leithéid. Is féidir é a sheoladh chuig cliant consól Helm ar thrí bhealach:

  • cuir in iúl fillteán le teimpléid;
  • pacáil an chartlann ina .tar agus pointeáil chuige;
  • cuir an teimpléad i stór cianda agus cuir nasc leis an stór sa chliant Helm.

Ní mór duit freisin comhad le luachanna - luachanna.yaml. Cuirfear na sonraí as sin isteach sa teimpléad. Déanaimis é a chruthú freisin.

An gléas Helm agus a gaistí
Tá feidhmchlár freastalaí breise ag an dara leagan de Helm - Tiller. Crochann sé lasmuigh de Kubernetes agus fanann sé ar iarratais ón gcliant Helm, agus nuair a ghlaoitear air, cuireann sé na luachanna riachtanacha isteach sa teimpléad agus cuireann sé chuig Kubernetes é.

An gléas Helm agus a gaistí
Tá Helm 3 níos simplí: in ionad teimpléid a phróiseáil ar an bhfreastalaí, déantar faisnéis a phróiseáil go hiomlán anois ar thaobh an chliaint Helm agus a sheoladh go díreach chuig API Kubernetes. Cuireann an simpliú seo feabhas ar shlándáil braisle agus éascaíonn sé an scéim le haghaidh rolladh amach.

Conas a oibríonn sé go léir

Rith an t-ordú helm install. Léirímid ainm an scaoileadh iarratais agus tabhair an cosán chuig luachanna.yaml. Ag an deireadh cuirfimid in iúl an stór ina bhfuil an chairt suite agus ainm na cairte. Sa sampla, is iad seo “lmru” agus “cairt is fearr”, faoi seach.

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

Ní féidir an t-ordú a fhorghníomhú ach uair amháin, nuair a dhéantar é a fhorghníomhú arís ina ionad sin install gá a úsáid upgrade. Ar mhaithe le simplíocht, in ionad dhá ordú, is féidir leat an t-ordú a rith upgrade le eochair bhreise --install. Nuair a dhéantar é a fhorghníomhú den chéad uair, seolfaidh Helm ordú chun an scaoileadh a shuiteáil, agus déanfaidh sé é a nuashonrú sa todhchaí.

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

Na deacrachtaí a bhaineann le leaganacha nua d’fheidhmchlár a imscaradh le Helm

Ag an bpointe seo sa scéal, táim ag imirt Who Wants to Be a Millionaire leis an lucht féachana, agus táimid ag figuring amach conas Helm a fháil chun an leagan den app a nuashonrú. Féach ar an bhfíseán.

Nuair a bhí mé ag foghlaim conas a oibríonn Helm, chuir iompar aisteach iontas orm agus mé ag iarraidh leaganacha d'fheidhmchláir reatha a nuashonrú. Nuashonraigh mé an cód iarratais, d'uaslódáil mé íomhá nua chuig clárlann Docker, chuir mé an t-ordú imscaradh - agus níor tharla aon rud. Seo thíos roinnt bealaí nár éirigh go hiomlán leo chun feidhmchláir a nuashonrú. Trí staidéar níos mine a dhéanamh ar gach ceann acu, tosaíonn tú a thuiscint struchtúr inmheánach na hionstraime agus na cúiseanna atá leis an iompar nach bhfuil soiléir.

Modh 1. Ná athraigh faisnéis ón seoladh deireanach

Mar a deir sé láithreán gréasáin oifigiúil Helm, “Is féidir le cairteacha Kubernetes a bheith mór agus casta, mar sin déanann Helm iarracht gan teagmháil a dhéanamh le haon rud ró-mhór.” Dá bhrí sin, má nuashonraíonn tú an leagan is déanaí den íomhá feidhmchláir sa chlár docker agus má ritheann tú an t-ordú helm upgrade, ansin ní tharlóidh aon rud. Ceapfaidh Helm nach bhfuil aon rud athraithe agus ní gá ordú a sheoladh chuig Kubernetes chun an t-iarratas a nuashonrú.

Anseo agus thíos, taispeántar an chlib is déanaí mar shampla amháin. Nuair a shonróidh tú an chlib seo, déanfaidh Kubernetes an íomhá a íoslódáil ón gclár docker gach uair, beag beann ar pharaiméadar imagePullPolicy. Níl sé inmhianaithe úsáid a bhaint as déanaí i dtáirgeadh agus is cúis le fo-iarmhairtí.

Modh 2. Nuashonraigh LABEL san íomhá

Mar atá scríofa sa chéanna doiciméadú, “Ní dhéanfaidh Helm feidhmchlár a nuashonrú ach amháin má tá athrú tagtha air ón scaoileadh deireanach.” Is cosúil gurb é rogha loighciúil chuige seo ná an LABEL san íomhá docker féin a nuashonrú. Mar sin féin, ní bhreathnaíonn Helm ar íomhánna feidhmchláir agus níl aon smaoineamh aige faoi aon athruithe orthu. Dá réir sin, nuair a bheidh lipéid san íomhá á nuashonrú, ní bheidh a fhios ag Helm fúthu, agus ní sheolfar an t-ordú nuashonraithe feidhmchláir chuig Kubernetes.

Modh 3: Bain úsáid as eochair --force

An gléas Helm agus a gaistí
A ligean ar dul chuig na lámhleabhair agus breathnú ar an eochair riachtanach. Déanann an eochair an chiall is mó --force. In ainneoin an t-ainm soiléir, tá an iompar difriúil ó ionchais. In ionad iallach a chur ar nuashonrú feidhmchláir, is é an fíorchuspóir atá leis ná scaoileadh atá i stádas THEip a chur ar ais. Mura n-úsáideann tú an eochair seo, ní mór duit na horduithe a fhorghníomhú go seicheamhach helm delete && helm install --replace. Moltar an eochair a úsáid ina ionad --force, a uathoibríonn forghníomhú seicheamhach na n-orduithe seo. Tuilleadh eolais i seo iarraidh tarraingt. D'fhonn a rá le Helm leagan an fheidhmchláir a nuashonrú, ar an drochuair, ní oibreoidh an eochair seo.

Modh 4. Athraigh lipéid go díreach i Kubernetes

An gléas Helm agus a gaistí
Lipéad á nuashonrú go díreach sa bhraisle ag baint úsáide as an ordú kubectl edit - droch-smaoineamh. Mar thoradh ar an ngníomh seo beidh neamhréireacht faisnéise idir an t-iarratas reatha agus an ceann a cuireadh le himscaradh ar dtús. Tá iompar Helm le linn imscaradh sa chás seo difriúil óna leagan: ní dhéanfaidh Helm 2 rud ar bith, agus imscarfaidh Helm 3 an leagan nua den fheidhmchlár. Chun a thuiscint cén fáth, ní mór duit a thuiscint conas a oibríonn Helm.

Conas a oibríonn Helm?

Le fáil amach an bhfuil athrú tagtha ar fheidhmchlár ón uair a eisíodh é go deireanach, is féidir le Helm úsáid a bhaint as:

  • feidhmchlár a rith i Kubernetes;
  • luachanna nua.yaml agus cairt reatha;
  • Faisnéis scaoileadh inmheánach Helm.

Chun an níos aisteach: cén áit a stórálann Helm faisnéis inmheánach faoi eisiúintí?Tríd an ordú a fhorghníomhú helm history, gheobhaidh muid an fhaisnéis go léir faoi na leaganacha suiteáilte ag baint úsáide as Helm.

An gléas Helm agus a gaistí
Tá faisnéis mhionsonraithe ann freisin faoi na teimpléid agus na luachanna seolta. Is féidir linn é a iarraidh:

An gléas Helm agus a gaistí
Sa dara leagan de Helm, tá an fhaisnéis seo suite sa spás ainm céanna ina bhfuil Tiller ag rith (kube-system de réir réamhshocraithe), sa ConfigMap, marcáilte leis an lipéad “OWNER=TILLER”:

An gléas Helm agus a gaistí
Nuair a tháinig an tríú leagan de Helm le feiceáil, bhog an fhaisnéis go rúin, agus chuig an ainmspás céanna ina raibh an feidhmchlár ar siúl. Mar gheall air seo, bhíothas in ann roinnt feidhmchlár a rith go comhuaineach in ainmspásanna éagsúla leis an ainm eisiúna céanna. Sa dara leagan tinneas cinn mór a bhí ann nuair a bhíonn spásanna ainmneacha aonraithe ach is féidir leo dul i bhfeidhm ar a chéile.

An gléas Helm agus a gaistí

Ní úsáideann an dara Helm, agus é ag iarraidh a thuiscint an bhfuil nuashonrú ag teastáil, ach dhá fhoinse faisnéise: an méid a chuirtear ar fáil dó anois, agus faisnéis inmheánach faoi eisiúintí, atá sa ConfigMap.

An gléas Helm agus a gaistí
Úsáideann an tríú Helm straitéis chumasc trí-bhealach: sa bhreis ar an bhfaisnéis sin, cuireann sé san áireamh freisin an t-iarratas atá ar siúl faoi láthair i Kubernetes.

An gléas Helm agus a gaistí
Ar an gcúis seo, ní dhéanfaidh an seanleagan de Helm aon rud, ós rud é nach gcuireann sé san áireamh an fhaisnéis iarratais sa bhraisle, ach gheobhaidh Helm 3 na hathruithe agus seolfaidh sé an t-iarratas nua ar imscaradh.

Modh 5. Úsáid an lasc --recreate-pods

Le eochair --recreate-pods is féidir leat an méid a bhí beartaithe agat a bhaint amach ar dtús leis an eochair --force. Atosóidh na coimeádáin agus, de réir an imagePullPolicy: Beartas i gcónaí don chlib is déanaí (tuilleadh air seo san fhonóta thuas), íoslódálfaidh Kubernetes agus seolfaidh sé leagan nua den íomhá. Ní dhéanfar é seo ar an mbealach is fearr: gan an Straitéis Cineál imlonnaithe a chur san áireamh, casfaidh sé go tobann as gach sean-iarratas agus cuirfear tús le cinn nua a sheoladh. Le linn an atosú, ní bheidh an córas ag obair, beidh úsáideoirí ag fulaingt.

I Kubernetes féin, bhí fadhb den chineál céanna ann le fada an lá freisin. Agus anois, 4 bliana tar éis an oscailt Eisiúint, tá an fhadhb socraithe, agus ag tosú leis an leagan 1.15 de Kubernetes, tá an chuma ar an gcumas pods a atosú.

Ní dhéanann Helm ach gach feidhmchlár a mhúchadh agus coimeádáin nua a sheoladh in aice láimhe. Ní féidir leat é seo a dhéanamh i dtáirgeadh, ionas nach mbeidh aga neamhfhónaimh iarratais ann. Níl gá leis seo ach le haghaidh riachtanais forbartha agus ní féidir é a dhéanamh ach amháin i dtimpeallachtaí stáitse.

Conas an leagan feidhmchláir a nuashonrú le Helm?

Athróimid na luachanna a sheoltar chuig Helm. De ghnáth, is luachanna iad seo a chuirtear in ionad an chlib íomhá. I gcás is déanaí, a úsáidtear go minic le haghaidh timpeallachtaí neamhtháirgiúla, tá an fhaisnéis inathraithe ina nóta, nach bhfuil useless do Kubernetes féin, agus do Helm gníomhóidh sé mar chomhartha don ghá an t-iarratas a nuashonrú. Roghanna chun an luach anótála a chomhlánú:

  1. Luach randamach ag baint úsáide as an bhfeidhm chaighdeánach - {{ randAlphaNum 6 }}.
    Tá caveat ann: tar éis gach imscartha ag baint úsáide as cairt le hathróg den sórt sin, beidh an luach anótála uathúil, agus glacfaidh Helm leis go bhfuil athruithe ann. Tarlaíonn sé go n-atosóidh muid an t-iarratas i gcónaí, fiú mura bhfuil a leagan athraithe againn. Níl sé seo ríthábhachtach, ós rud é nach mbeidh aon downtime, ach tá sé fós míthaitneamhach.
  2. Greamaigh reatha dáta agus am - {{ .Release.Date }}.
    Tá malairt cosúil le luach randamach a bhfuil athróg bhuan uathúil aige.
  3. Is bealach níos ceart é a úsáid seiceálacha. Seo é SHA na híomhá nó SHA an gheallta deiridh sa git - {{ .Values.sha }}.
    Beidh gá iad a chomhaireamh agus a sheoladh chuig an gcliant Helm ar an taobh glaonna, mar shampla i Jenkins. Má tá an t-iarratas athraithe, ansin athrófar an tseiceáil. Mar sin, ní dhéanfaidh Helm an t-iarratas a nuashonrú ach amháin nuair is gá.

Déanaimis achoimre ar ár n-iarrachtaí

  • Déanann Helm athruithe ar an mbealach is lú ionrach, mar sin ní bheidh nuashonrú mar thoradh ar aon athrú ar leibhéal íomhá an iarratais i gClárlann Docker: ní tharlóidh aon rud tar éis an t-ordú a fhorghníomhú.
  • Eochair --force a úsáidtear chun eisiúintí fadhbacha a athbhunú agus ní bhaineann sé le nuashonruithe éigeantais.
  • Eochair --recreate-pods nuashonróidh sé feidhmchláir go tréan, ach déanfaidh sé ar bhealach loitiméireachta é: casfaidh sé na coimeádáin go léir go tobann. Beidh úsáideoirí thíos leis seo; níor cheart duit é seo a dhéanamh i dtáirgeadh.
  • Déan athruithe go díreach ar bhraisle Kubernetes ag baint úsáide as an ordú kubectl edit ná: brisfimid comhsheasmhacht, agus beidh an iompar difriúil ag brath ar an leagan de Helm.
  • Le scaoileadh an leagan nua de Helm, tá go leor nuances le feiceáil. Déantar cur síos ar shaincheisteanna i stór Helm i dteanga shoiléir, cabhróidh siad leat na sonraí a thuiscint.
  • Má chuirtear nóta inathraithe le cairt beidh sé níos solúbtha. Ligfidh sé seo duit an feidhmchlár a rolladh amach i gceart, gan aga neamhfhónaimh.

Smaoineamh “síocháin dhomhanda” a oibríonn i ngach réimse den saol: léigh na treoracha roimh úsáid, ní ina dhiaidh. Le faisnéis iomlán amháin a bheidh sé indéanta córais iontaofa a thógáil agus úsáideoirí a dhéanamh sásta.

Naisc ghaolmhara eile:

  1. Acquaintance le Helm 3
  2. Helm láithreán gréasáin oifigiúil
  3. Stór Helm ar GitHub
  4. 25 Uirlisí Úsáideacha Kubernetes: Imscaradh agus Bainistíocht

Cuireadh an tuarascáil seo i láthair den chéad uair ag Comhdháil @Kubernetes ag Mail.ru Cloud Solutions. Féach físeán léirithe eile agus liostáil d'fhógraí imeachtaí ar Telegram Timpeall Kubernetes ag Mail.ru Ghrúpa.

Foinse: will.com

Add a comment