Inneal Helm agus na duilgheadasan aige

Inneal Helm agus na duilgheadasan aige
Bun-bheachd slaodadh bathair Typhon, Anton Swanepoel

Is e m ’ainm Dmitry Sugrobov, tha mi nam leasaiche aig Leroy Merlin. San artaigil seo innsidh mi dhut carson a tha feum air Helm, mar a bhios e a’ sìmpleachadh obrachadh le Kubernetes, dè a tha air atharrachadh san treas dreach, agus mar a chleachdas tu e gus tagraidhean ùrachadh ann an cinneasachadh gun ùine downt.

Seo geàrr-chunntas stèidhichte air òraid aig co-labhairt Co-labhairt @Kubernetes by Mail.ru Cloud Solutions - mura h-eil thu airson leughadh, coimhead air a’ bhidio.

Carson a bhios sinn a’ cleachdadh Kubernetes ann an cinneasachadh

Tha Leroy Merlin na stiùiriche ann am margaidh reic DIY san Ruis agus san Roinn Eòrpa. Tha còrr air ceud neach-leasachaidh aig a’ chompanaidh againn, 33 neach-obrach a-staigh agus àireamh mhòr de dhaoine a’ tadhal air mòr-mhargaidhean agus an làrach-lìn. Gus am bi iad uile toilichte, chuir sinn romhainn dòighean-obrach àbhaisteach gnìomhachais a leantainn. Leasaich tagraidhean ùra a’ cleachdadh ailtireachd microservice; cleachd soithichean gus àrainneachdan a sgaradh agus dèanamh cinnteach à lìbhrigeadh ceart; agus cleachd Kubernetes airson orchestration. Tha prìs cleachdadh orcastra a’ fàs gu luath nas saoire: tha an àireamh de innleadairean a tha comasach air teicneòlas a’ fàs air a’ mhargaidh, agus tha solaraichean a’ nochdadh a’ tabhann Kubernetes mar sheirbheis.

Faodar a h-uile dad a nì Kubernetes, gu dearbh, a dhèanamh ann an dòighean eile, mar eisimpleir, le bhith a’ còmhdach cuid de Jenkins agus docker-compose le sgriobtaichean, ach carson a tha beatha iom-fhillte ma tha fuasgladh deiseil agus earbsach ann? Sin as coireach gun tàinig sinn gu Kubernetes agus tha sinn air a bhith ga chleachdadh ann an cinneasachadh airson bliadhna a-nis. Tha ceithir thar fhichead buidheann Kubernetes againn an-dràsta, agus tha am fear as sine dhiubh còrr is bliadhna a dh'aois, le timcheall air dà cheud pod.

Mallachd fhaidhlichean mòra YAML ann an Kubernetes

Gus microservice a chuir air bhog ann an Kubernetes, cruthaichidh sinn co-dhiù còig faidhlichean YAML: airson Cleachdadh, Seirbheis, Ingress, ConfigMap, Secrets - agus cuiridh sinn chun bhuidheann iad. Airson an ath iarrtas sgrìobhaidh sinn an aon phasgan de jambs, leis an treas fear sgrìobhaidh sinn fear eile, agus mar sin air adhart. Ma dh'iomadaicheas sinn an àireamh de sgrìobhainnean leis an àireamh de àrainneachdan, gheibh sinn na ceudan de fhaidhlichean mar-thà, agus chan eil seo fhathast a 'toirt aire do àrainneachdan fiùghantach.

Inneal Helm agus na duilgheadasan aige
Thug Adam Reese, prìomh neach-gleidhidh Helm, a-steach am bun-bheachd "Cearcall leasachaidh ann an Kubernetes", a tha coltach ri seo:

  1. Dèan lethbhreac de YAML - dèan lethbhreac de fhaidhle YAML.
  2. Cuir a-steach YAML - cuir a-steach e.
  3. Fix Indents - socraich indents.
  4. Dèan a-rithist - ath-aithris a-rithist.

Bidh an roghainn ag obair, ach feumaidh tu na faidhlichean YAML a chopaigeadh iomadh uair. Gus an cearcall seo atharrachadh, chaidh Helm a chruthachadh.

Dè th' ann an Helm

An toiseach, Helm - manaidsear pacaid, a chuidicheas tu gus na prògraman a tha a dhìth ort a lorg agus a stàladh. Gus stàladh, mar eisimpleir, MongoDB, chan fheum thu a dhol chun làrach-lìn oifigeil agus luchdachadh sìos binaries, dìreach ruith an àithne helm install stable/mongodb.

San dara h-àite, Helm- einnsean teamplaid, a’ cuideachadh le parameterize fhaidhlichean. Tillidh sinn chun an t-suidheachaidh le faidhlichean YAML ann an Kubernetes. Tha e nas fhasa an aon fhaidhle YAML a sgrìobhadh, cuir cuid de luchd-àite ris, anns an cuir Helm na luachan an àite. Is e sin, an àite seata mòr de sgafaill, bidh seata de theamplaidean anns am bi na luachan riatanach air an cur nan àite aig an àm cheart.

San treas àite, Helm- maighstir cleachdadh. Leis, faodaidh tu tagraidhean a stàladh, a thoirt air ais agus ùrachadh. Feuch sinn a-mach ciamar a nì sinn seo.

Inneal Helm agus na duilgheadasan aige

Mar a chleachdas tu Helm gus na tagraidhean agad fhèin a chleachdadh

Nach stàlaich sinn an neach-dèiligidh Helm air a 'choimpiutair agad, a' leantainn an oifigeil stiùireadh. An uairsin, cruthaichidh sinn seata de fhaidhlichean YAML. An àite luachan sònraichte a shònrachadh, fàgaidh sinn luchd-àite, a lìonas Helm le fiosrachadh san àm ri teachd. Canar clàr Helm ri seata de na faidhlichean sin. Faodar a chuir chun neach-dèiligidh consol Helm ann an trì dòighean:

  • comharraich pasgan le teamplaidean;
  • pacaich an tasglann gu .tar agus comharraich e;
  • cuir an teamplaid ann an stòr iomallach agus cuir ceangal ris an stòr ann an teachdaiche Helm.

Feumaidh tu cuideachd faidhle le luachan - luachan.yaml. Thèid an dàta às an sin a chuir a-steach don teamplaid. Cruthaichidh sinn e cuideachd.

Inneal Helm agus na duilgheadasan aige
Tha tagradh frithealaiche a bharrachd aig an dàrna dreach de Helm - Tiller. Bidh e a ’crochadh taobh a-muigh Kubernetes agus a’ feitheamh ri iarrtasan bhon neach-dèiligidh Helm, agus nuair a thèid an gairm, cuiridh e na luachan riatanach a-steach don teamplaid agus ga chuir gu Kubernetes.

Inneal Helm agus na duilgheadasan aige
Tha Helm 3 nas sìmplidh: an àite a bhith a’ giullachd theamplaidean air an fhrithealaiche, tha fiosrachadh a-nis air a phròiseasadh gu tur air taobh teachdaiche Helm agus air a chuir gu dìreach gu Kubernetes API. Tha an sìmpleachadh seo a’ leasachadh tèarainteachd brabhsair agus a’ comasachadh an sgeama sgaoileadh.

Ciamar a tha e uile ag obair

Ruith an àithne helm install. Nach comharraich sinn ainm an sgaoilidh tagraidh agus bheir sinn an t-slighe gu luachan.yaml. Aig an deireadh seallaidh sinn an stòr anns a bheil a’ chairt suidhichte agus ainm a’ chlàir. Anns an eisimpleir, is iad sin “lmru” agus “cairt as fheàrr”, fa leth.

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

Chan urrainnear an àithne a chuir gu bàs ach aon turas, nuair a thèid a chuir gu bàs a-rithist na àite install feum a chleachdadh upgrade. Airson sìmplidh, an àite dà àithne, faodaidh tu an àithne a ruith upgrade le iuchair a bharrachd --install. Nuair a thèid a chuir gu bàs airson a’ chiad uair, cuiridh Helm àithne airson an sgaoileadh a chuir a-steach, agus bheir e ùrachadh dha san àm ri teachd.

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

Duilgheadasan ann a bhith a’ cleachdadh dreachan ùra de thagradh le Helm

Aig an ìre seo den sgeulachd, tha mi a’ cluich Who Wants to Be a Millionaire leis an luchd-èisteachd, agus tha sinn a’ faighinn a-mach ciamar a gheibh Helm an dreach den aplacaid ùrachadh. Coimhead air a ’bhidio.

Nuair a bha mi ag ionnsachadh mar a tha Helm ag obair, chuir giùlan neònach iongnadh orm nuair a bha mi a’ feuchainn ri dreachan de ruith aplacaidean ùrachadh. Dh’ ùraich mi an còd tagraidh, luchdaich mi suas ìomhaigh ùr gu clàr Docker, chuir mi an àithne cleachdadh - agus cha do thachair dad. Gu h-ìosal tha cuid de dhòighean nach eil gu tur soirbheachail airson tagraidhean ùrachadh. Le bhith a 'sgrùdadh gach aon dhiubh ann am barrachd mionaideachd, tòisichidh tu a' tuigsinn structar a-staigh an ionnstramaid agus na h-adhbharan airson a 'ghiùlan seo nach eil follaiseach.

Dòigh 1. Na atharraich fiosrachadh bhon fhoillseachadh mu dheireadh

Airson glasadh làrach-lìn oifigeil Helm, “Faodaidh clàran Kubernetes a bhith mòr agus iom-fhillte, agus mar sin bidh Helm a’ feuchainn gun a bhith a ’beantainn ri dad cus.” Mar sin, ma dh'ùraicheas tu an tionndadh as ùire de dh'ìomhaigh an tagraidh ann an clàr an docker agus ruith an àithne helm upgrade, an uairsin cha tachair dad. Bidh Helm den bheachd nach eil dad air atharrachadh agus chan fheumar òrdugh a chuir gu Kubernetes gus an tagradh ùrachadh.

An seo agus gu h-ìosal, tha an taga as ùire air a shealltainn mar eisimpleir a-mhàin. Nuair a shònraicheas tu an taga seo, luchdaichidh Kubernetes an ìomhaigh sìos bhon chlàr docker a h-uile uair, ge bith dè am paramadair imagePullPolicy. Tha cleachdadh as ùire ann an cinneasachadh neo-mhiannach agus ag adhbhrachadh frith-bhuaidhean.

Dòigh 2. Ùraich LABEL san ìomhaigh

Mar a tha e sgrìobhte ann an aon sgrìobhainnean, “Chan ùraich Helm tagradh ach ma tha e air atharrachadh bhon fhoillseachadh mu dheireadh.” Bhiodh e coltach gur e roghainn loidsigeach airson seo a bhith ag ùrachadh an LABEL ann an ìomhaigh an docker fhèin. Ach, chan eil Helm a’ coimhead a-steach do dhealbhan an tagraidh agus chan eil beachd aige mu atharrachaidhean sam bith orra. Mar sin, nuair a bhios tu ag ùrachadh bileagan san ìomhaigh, cha bhith fios aig Helm mun deidhinn, agus cha tèid an àithne ùrachadh tagraidh a chuir gu Kubernetes.

Dòigh 3: Cleachd iuchair --force

Inneal Helm agus na duilgheadasan aige
Tionndaidh sinn chun na leabhraichean-làimhe agus coimhead airson an iuchair a tha a dhìth. Tha an iuchair a 'dèanamh an ciall as motha --force. A dh 'aindeoin an ainm follaiseach, tha an giùlan eadar-dhealaichte bhon dùil. An àite a bhith a’ toirt air ùrachadh tagraidh, is e an fhìor adhbhar a th’ aige brath-naidheachd a thoirt air ais a tha ann an inbhe FAILED. Mura cleachd thu an iuchair seo, feumaidh tu na h-òrdughan a chuir an gnìomh ann an òrdugh helm delete && helm install --replace. Thathas a’ moladh an iuchair a chleachdadh na àite --force, a nì fèin-ghluasad air coileanadh sreath nan òrduighean sin. Tuilleadh fiosrachaidh ann an seo tarraing iarrtas. Gus innse dha Helm an tionndadh tagraidh ùrachadh, gu mì-fhortanach, chan obraich an iuchair seo.

Dòigh 4. Atharraich bileagan gu dìreach ann an Kubernetes

Inneal Helm agus na duilgheadasan aige
Ag ùrachadh leubail gu dìreach sa bhuidheann a’ cleachdadh an àithne kubectl edit - droch bheachd. Leanaidh an gnìomh seo gu neo-chunbhalachd fiosrachaidh eadar an tagradh ruith agus am fear a chaidh a chuir airson a chleachdadh an toiseach. Tha giùlan Helm rè cleachdadh sa chùis seo eadar-dhealaichte bhon dreach aige: cha dèan Helm 2 dad, agus cuiridh Helm 3 an dreach ùr den tagradh an sàs. Gus tuigsinn carson, feumaidh tu tuigsinn mar a tha Helm ag obair.

Ciamar a tha Helm ag obair?

Gus faighinn a-mach a bheil tagradh air atharrachadh bhon a chaidh a leigeil a-mach mu dheireadh, faodaidh Helm a chleachdadh:

  • tagradh ruith ann an Kubernetes;
  • luachan ùra.yaml agus clàr làithreach;
  • Fiosrachadh sgaoilidh taobh a-staigh Helm.

Airson an fheadhainn as iongantaiche: càite am bi Helm a’ stòradh fiosrachadh a-staigh mu sgaoilidhean?Le bhith a 'cur an gnìomh an àithne helm history, gheibh sinn am fiosrachadh gu lèir mu na dreachan a chaidh a chuir a-steach a’ cleachdadh Helm.

Inneal Helm agus na duilgheadasan aige
Tha fiosrachadh mionaideach ann cuideachd mu na teamplaidean agus na luachan a chaidh a chuir. Faodaidh sinn iarraidh air:

Inneal Helm agus na duilgheadasan aige
Anns an dàrna dreach de Helm, tha am fiosrachadh seo suidhichte anns an aon ainm-àite far a bheil Tiller a’ ruith (kube-system gu bunaiteach), anns an ConfigMap, air a chomharrachadh leis an leubail “OWNER = TILLER”:

Inneal Helm agus na duilgheadasan aige
Nuair a nochd an treas dreach de Helm, ghluais am fiosrachadh gu dìomhaireachdan, agus chun an aon ainm-àite far an robh an aplacaid a’ ruith. Taing dha seo, bha e comasach grunn thagraidhean a ruith aig an aon àm ann an diofar àiteachan ainm leis an aon ainm fuasglaidh. Anns an dàrna dreach b’ e fìor cheann goirt a bh’ ann nuair a tha ainmean-àite iomallach ach a bheir buaidh air a chèile.

Inneal Helm agus na duilgheadasan aige

Chan eil an dàrna Helm, nuair a thathar a’ feuchainn ri tuigsinn a bheil feum air ùrachadh, a’ cleachdadh ach dà thùs fiosrachaidh: na tha air a thoirt dha a-nis, agus fiosrachadh a-staigh mu sgaoilidhean, a tha na laighe san ConfigMap.

Inneal Helm agus na duilgheadasan aige
Bidh an treas Helm a’ cleachdadh ro-innleachd aonaidh trì-shligheach: a bharrachd air an fhiosrachadh sin, bidh e cuideachd a’ toirt aire don tagradh a tha a’ ruith an-dràsta ann an Kubernetes.

Inneal Helm agus na duilgheadasan aige
Air an adhbhar seo, cha dèan an seann dreach de Helm dad, leis nach eil e a ’toirt aire don fhiosrachadh tagraidh anns a’ bhuidheann, ach gheibh Helm 3 na h-atharrachaidhean agus cuiridh e an tagradh ùr airson a chleachdadh.

Dòigh 5. Cleachd an tionndadh --recreate-pods

Le iuchair --recreate-pods faodaidh tu na bha thu an dùil a choileanadh bho thùs a choileanadh leis an iuchair --force. Tòisichidh na soithichean agus, a rèir an ìomhaighPullPolicy: An-còmhnaidh poileasaidh airson an taga as ùire (barrachd air seo san nota-coise gu h-àrd), luchdaichidh Kubernetes sìos agus cuiridh e air bhog dreach ùr den ìomhaigh. Cha tèid seo a dhèanamh san dòigh as fheàrr: gun a bhith a’ toirt aire don t-seòrsa cleachdadh ro-innleachd, cuiridh e dheth gu h-obann a h-uile seann iarrtas agus tòisichidh e air feadhainn ùra a chuir air bhog. Rè an ath-thòiseachadh, chan obraich an siostam, bidh luchd-cleachdaidh a 'fulang.

Ann an Kubernetes fhèin, bha duilgheadas coltach ris ann airson ùine mhòr. Agus a-nis, 4 bliadhna às deidh an fhosgladh bhuil, chaidh an duilgheadas a rèiteachadh, agus a’ tòiseachadh le dreach 1.15 de Kubernetes, tha comas air pods ath-thòiseachadh a’ nochdadh.

Bidh Helm dìreach a’ cuir dheth a h-uile tagradh agus a’ cur air bhog soithichean ùra faisg air làimh. Chan urrainn dhut seo a dhèanamh ann an cinneasachadh, gus nach adhbhraich thu ùine downt tagraidh. Chan eil feum air seo ach airson feumalachdan leasachaidh agus chan urrainnear a choileanadh ach ann an àrainneachdan àrd-ùrlair.

Mar a bheir thu ùrachadh air dreach an tagraidh a’ cleachdadh Helm?

Atharraichidh sinn na luachan a chuirear gu Helm. Mar as trice, is iad sin luachan a thèid an àite an taga ìomhaigh. A thaobh an fheadhainn as ùire, a tha gu tric air a chleachdadh airson àrainneachdan neo-thorrach, is e nota a th’ anns an fhiosrachadh a ghabhas atharrachadh, a tha gun fheum airson Kubernetes fhèin, agus airson Helm bidh e na chomharradh airson an fheum air an tagradh ùrachadh. Roghainnean airson luach an nota a lìonadh:

  1. Luach air thuaiream cleachdadh na h-obrach àbhaisteach - {{ randAlphaNum 6 }}.
    Tha caveat ann: às deidh gach cleachdadh a’ cleachdadh cairt le caochladair mar sin, bidh an luach notaichean gun samhail, agus gabhaidh Helm ris gu bheil atharrachaidhean ann. Tha e coltach gum bi sinn an-còmhnaidh ag ath-thòiseachadh an tagraidh, eadhon ged nach eil sinn air an dreach aige atharrachadh. Chan eil seo deatamach, oir cha bhi ùine downt ann, ach tha e fhathast mì-thlachdmhor.
  2. Cuir a-steach sruth ceann-latha agus uair - {{ .Release.Date }}.
    Tha caochladair coltach ri luach air thuaiream le caochladair air leth maireannach.
  3. Is e dòigh nas ceart a chleachdadh seicichean. Is e seo SHA na h-ìomhaigh no an SHA den ghealladh mu dheireadh anns an git - {{ .Values.sha }}.
    Feumaidh iad a bhith air an cunntadh agus air an cur chun neach-dèiligidh Helm air an taobh gairm, mar eisimpleir ann an Jenkins. Ma tha an tagradh air atharrachadh, atharraichidh an checksum. Mar sin, chan ùraich Helm an tagradh ach nuair a bhios feum air.

Bheir sinn geàrr-chunntas air na h-oidhirpean againn

  • Bidh Helm a’ dèanamh atharrachaidhean anns an dòigh as lugha ionnsaigheach, agus mar sin cha toir atharrachadh sam bith air ìre ìomhaigh an tagraidh ann an Clàr an Docker ùrachadh: cha tachair dad às deidh an àithne a chuir gu bàs.
  • Prìomh --force air a chleachdadh gus fiosan trioblaideach a thoirt air ais agus chan eil e co-cheangailte ri ùrachaidhean èiginneach.
  • Prìomh --recreate-pods Ùraichidh e tagraidhean gu làidir, ach nì e ann an dòigh bhandail: gu h-obann cuiridh e dheth a h-uile soitheach. Bidh luchd-cleachdaidh a’ fulang le seo; cha bu chòir dhut seo a dhèanamh ann an cinneasachadh.
  • Dèan atharrachaidhean gu dìreach air cruinneachadh Kubernetes a’ cleachdadh an àithne kubectl edit na dèan: brisidh sinn cunbhalachd, agus bidh an giùlan eadar-dhealaichte a rèir dreach Helm.
  • Le foillseachadh an dreach ùr de Helm, tha mòran nuances air nochdadh. Tha cùisean ann an stòr Helm air am mìneachadh ann an cànan soilleir, cuidichidh iad thu gus am mion-fhiosrachadh a thuigsinn.
  • Le bhith a’ cur nota deasaichte ri cairt nì sin e nas sùbailte. Leigidh seo leat an tagradh a chuir a-mach gu ceart, gun ùine downt.

Beachd “sìth an t-saoghail” a tha ag obair anns gach raon de bheatha: leugh an stiùireadh mus cleachd thu, chan ann às deidh sin. Is ann dìreach le fiosrachadh iomlan a bhios e comasach siostaman earbsach a thogail agus luchd-cleachdaidh a dhèanamh toilichte.

Ceanglaichean ceangailte eile:

  1. Eòlach air Helm 3
  2. Helm làrach-lìn oifigeil a
  3. Stòr Helm air GitHub
  4. 25 Innealan Kubernetes Feumail: Cleachdadh agus Stiùireadh

Chaidh an aithisg seo a thaisbeanadh an toiseach aig Co-labhairt @Kubernetes le Mail.ru Cloud Solutions. Seall видео cuirmean eile agus fo-sgrìobh gu fiosan tachartais air Telegram Timcheall air Kubernetes aig Mail.ru Group.

Source: www.habr.com

Cuir beachd ann