Ngwa Helm na ọnyà ya

Ngwa Helm na ọnyà ya
Echiche Typhon ibu onye njem, Anton Swanepoel

Aha m bụ Dmitry Sugrobov, abụ m onye nrụpụta na Leroy Merlin. N'isiokwu a, m ga-agwa gị ihe mere Helm ji dị mkpa, otú o si eme ka ọ dị mfe ịrụ ọrụ na Kubernetes, ihe gbanwere na nsụgharị nke atọ, na otu esi eji ya emelite ngwa na mmepụta na-enweghị oge.

Nke a bụ nchịkọta dabeere na okwu na ogbako @Kubernetes Nzukọ by Mail.ru Cloud Solutions — ọ bụrụ na ịchọghị ịgụ, lelee vidiyo ahụ.

Ihe mere anyị ji eji Kubernetes eme ihe

Leroy Merlin bụ onye ndu n'ahịa azụmaahịa DIY na Russia na Europe. Ụlọ ọrụ anyị nwere ihe karịrị otu narị ndị mmepe, ndị ọrụ 33 n'ime ụlọ na ọnụ ọgụgụ buru ibu nke ndị mmadụ na-eleta hypermarkets na weebụsaịtị. Iji mee ka ha niile nwee obi ụtọ, anyị kpebiri ịgbaso usoro ụkpụrụ ụlọ ọrụ. Mepụta ngwa ọhụrụ site na iji microservice architecture; jiri igbe kewapụ gburugburu ma hụ na nnyefe kwesịrị ekwesị; ma jiri Kubernetes maka nhazi ihe egwu. Ọnụ ego nke iji ndị na-akụ egwú na-aghọ ngwa ngwa dị ọnụ ala: ọnụ ọgụgụ ndị injinia maara nkà na ụzụ na-eto eto na ahịa, ndị na-enye ọrụ na-apụtakwa na-enye Kubernetes dị ka ọrụ.

Ihe niile Kubernetes na-eme, n'ezie, enwere ike ịme ya n'ụzọ ndị ọzọ, dịka ọmụmaatụ, site na ikpuchi ụfọdụ Jenkins na docker-dejupụta na scripts, ma gịnị kpatara na-agbagwoju ndụ ndụ ma ọ bụrụ na e nwere ihe ngwọta dị njikere na nke a pụrụ ịdabere na ya? Ọ bụ ya mere anyị ji bịa Kubernetes ma jiri ya na-emepụta ihe kemgbe otu afọ ugbu a. Ugbu a, anyị nwere ụyọkọ Kubernetes iri abụọ na anọ, nke kacha ochie n'ime ha dị ihe karịrị otu afọ, nwere ihe dị ka pọd narị abụọ.

Ọnụ ọnụ nke nnukwu faịlụ YAML na Kubernetes

Iji malite microservice na Kubernetes, anyị ga-emepụta ma ọ dịkarịa ala faịlụ YAML ise: maka ntinye, Ọrụ, Ingress, ConfigMap, Nzuzo - ma ziga ha na ụyọkọ. Maka ngwa ọzọ anyị ga-ede otu ngwugwu jambs, nke atọ anyị ga-ede nke ọzọ, na ihe ndị ọzọ. Ọ bụrụ na anyị na-amụba ọnụ ọgụgụ nke akwụkwọ site na ọnụ ọgụgụ nke gburugburu, anyị ga-enwetalarị ọtụtụ narị faịlụ, na nke a abanyebeghị n'uche gburugburu ebe dị ike.

Ngwa Helm na ọnyà ya
Adam Reese, onye isi na-elekọta Helm, webatara echiche nke "Usoro mmepe na Kubernetes", nke dị ka nke a:

  1. Detuo YAML - detuo faịlụ YAML.
  2. Tapawa YAML - mado ya.
  3. Idozi indents - dozie indents.
  4. Tinyegharịa - kwugharịa ọzọ.

Nhọrọ a na-arụ ọrụ, mana ị ga-eṅomi faịlụ YAML ọtụtụ oge. Iji gbanwee okirikiri a, e chepụtara Helm.

Gịnị bụ Helm

Nke mbụ, Helm - njikwa ngwugwu, nke na-enyere gị aka ịchọta na wụnye mmemme ị chọrọ. Iji wụnye, dịka ọmụmaatụ, MongoDB, ịkwesighi ịga na webụsaịtị gọọmentị wee budata ọnụọgụ abụọ, naanị gbaa iwu ahụ. helm install stable/mongodb.

Nke abụọ, Helm - engine template, na-enyere aka ịhazi faịlụ. Ka anyị jiri faịlụ YAML laghachi na ọnọdụ ahụ na Kubernetes. Ọ dị mfe ide otu faịlụ YAML, tinye ụfọdụ ndị na-edebe ya, nke Helm ga-eji dochie ụkpụrụ. Ya bụ, kama ịbụ nnukwu ihe nkedo, a ga-enwe usoro ndebiri nke a ga-eji dochie ụkpụrụ achọrọ n'oge kwesịrị ekwesị.

Nke atọ, Helm - nnabata nna ukwu. Site na ya ị nwere ike iwunye, tụgharịa ma kwalite ngwa. Ka anyị chọpụta otu esi eme nke a.

Ngwa Helm na ọnyà ya

Otu esi eji Helm wepụta ngwa nke gị

Ka anyị tinye onye ahịa Helm na kọmputa gị, na-eso onye ọrụ gọọmentị ntụziaka. Ọzọ, anyị ga-emepụta otu faịlụ YAML. Kama ịkọwapụta ụkpụrụ, anyị ga-ahapụ ndị na-edebe ebe, nke Helm ga-ejupụta ozi n'ọdịnihu. A na-akpọ otu faịlụ ndị dị otú ahụ eserese Helm. Enwere ike izipu ya na onye ahịa Helm console n'ụzọ atọ:

  • gosi folda nwere ndebiri;
  • kpochie ebe nchekwa ahụ n'ime .tar wee tụọ aka na ya;
  • tinye ndebiri na ebe nchekwa dịpụrụ adịpụ ma tinye njikọ na ebe nchekwa na onye ahịa Helm.

Ị chọkwara faịlụ nwere ụkpụrụ - values.yaml. A ga-etinye data sitere n'ebe ahụ na ndebiri. Ka anyị keekwa ya.

Ngwa Helm na ọnyà ya
Ụdị Helm nke abụọ nwere ngwa nkesa ọzọ - Tiller. Ọ na-ekowe n'èzí Kubernetes wee chere arịrịọ sitere n'aka onye ahịa Helm, mgbe akpọrọ ya, dochie ụkpụrụ achọrọ n'ime ndebiri wee ziga ya na Kubernetes.

Ngwa Helm na ọnyà ya
Helm 3 dị mfe: kama nhazi ndebiri na sava ahụ, a na-ahazi ozi ugbu a kpamkpam n'akụkụ ndị ahịa Helm wee ziga ya ozugbo na Kubernetes API. Nke a dị mfe na-eme ka nchekwa ụyọkọ na-eme ka atụmatụ mbugharị ahụ dị mfe.

Kedu ka ihe niile si arụ ọrụ

Gbaa iwu ahụ helm install. Ka anyị gosi aha mwepụta ngwa ma nye ụzọ ụkpụrụ.yaml. Na njedebe anyị ga-egosi ebe nchekwa ebe eserese dị na aha nke eserese ahụ. Na ọmụmaatụ, ndị a bụ "lmru" na "bestchart", n'otu n'otu.

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

Enwere ike ịme iwu a naanị otu ugboro, mgbe emechara ya ọzọ kama install mkpa iji upgrade. Maka mfe, kama iwu abụọ, ị nwere ike ịme iwu ahụ upgrade ya na igodo mgbakwunye --install. Mgbe e gburu ya na nke mbụ, Helm ga-eziga iwu ka ịwụnye ntọhapụ, ma ga-emelite ya n'ọdịnihu.

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

Ọnyà nke ibugharị ụdị ngwa ọhụrụ na Helm

N'oge a na akụkọ ahụ, m na-egwu onye chọrọ ịbụ onye nde mmadụ na ndị na-ege ntị, anyị na-achọpụtakwa otu esi enweta Helm imelite ụdị ngwa ahụ. Lelee vidio ahụ.

Mgbe m na-amụta ka Helm si arụ ọrụ, omume dị iche iche tụrụ m n'anya mgbe m na-agbalị imelite ụdị ngwa na-agba ọsọ. Emelitere m koodu ngwa ahụ, bulite onyonyo ọhụrụ na ndekọ Docker, ziga iwu mbugharị - ọ nweghị ihe mere. N'okpuru bụ ụzọ ụfọdụ anaghị aga nke ọma maka imelite ngwa. Site n'ịmụ nke ọ bụla n'ime ha n'ụzọ zuru ezu, ị na-amalite ịghọta n'ime usoro nke ngwá ọrụ na ihe kpatara nke a na-adịghị doro anya omume.

Usoro 1. Agbanwela ozi kemgbe mmalite ikpeazụ

Dị ka ọ na-ekwu ebe nrụọrụ weebụ gọọmentị Helm, "Chart Kubernetes nwere ike ibu nnukwu na mgbagwoju anya, yabụ Helm na-agbalị ka ọ ghara imetụ ihe ọ bụla aka." Yabụ, ọ bụrụ na imelite ụdị onyonyo ngwa kachasị ọhụrụ na ndekọ docker wee mee iwu ahụ helm upgrade, mgbe ahụ ọ dịghị ihe ga-eme. Helm ga-eche na ọ nweghị ihe gbanwere na ọ dịghị mkpa iziga Kubernetes iwu ka imelite ngwa ahụ.

N'ebe a na n'okpuru, a na-egosi mkpado kachasị ọhụrụ naanị dịka ọmụmaatụ. Mgbe ị kọwapụta mkpado a, Kubernetes ga-ebudata onyonyo a na ndekọ docker oge ọ bụla, n'agbanyeghị oke fotoPullPolicy. Iji kacha ọhụrụ na mmepụta bụ ihe na-adịghị mma na-akpata mmetụta.

Usoro 2. Melite LABEL na onyonyo

Dị ka e dere na otu akwụkwọ, "Helm ga-emelite ngwa naanị ma ọ bụrụ na ọ gbanwere kemgbe ewepụtara ikpeazụ." Nhọrọ ezi uche dị na ya maka nke a ga-adị ka ọ na-emelite LABEL na onyonyo docker n'onwe ya. Agbanyeghị, Helm anaghị eleba anya na onyonyo ngwa ma enweghị echiche maka mgbanwe ọ bụla na ha. N'ihi ya, mgbe ị na-emelite akara na onyonyo a, Helm agaghị ama maka ha, a gaghị eziga iwu mmelite ngwa na Kubernetes.

Usoro 3: Jiri igodo --force

Ngwa Helm na ọnyà ya
Ka anyị tụgharịa gaa na akwụkwọ ntuziaka wee chọọ igodo achọrọ. Igodo ahụ na-eme ka uche dị ukwuu --force. N'agbanyeghị aha doro anya, omume ahụ dị iche na nke a tụrụ anya ya. Kama ịmanye mmelite ngwa, ezigbo ebumnuche ya bụ iweghachi mwepụta nke nọ n'ọkwa ada ada. Ọ bụrụ na ijighị igodo a, ịkwesịrị ịme iwu ahụ n'usoro helm delete && helm install --replace. A na-atụ aro ka iji igodo kama --force, nke na-akpaghị aka na usoro mmezu nke iwu ndị a. Ozi ndị ọzọ na nke a sere arịrịọ. Iji gwa Helm ka ọ melite ụdị ngwa ahụ, ọ dị nwute na igodo a agaghị arụ ọrụ.

Usoro 4. Gbanwee aha ozugbo na Kubernetes

Ngwa Helm na ọnyà ya
Na-emelite akara ozugbo na ụyọkọ na iji iwu ahụ kubectl edit - echiche ọjọọ. Omume a ga-eduga na enweghị nkwekọ nke ozi n'etiti ngwa na-agba ọsọ na nke ezitere na mbụ maka mbugharị. Omume Helm n'oge ntinye na nke a dị iche na ụdị ya: Helm 2 agaghị eme ihe ọ bụla, Helm 3 ga-ebuga ụdị ngwa ọhụrụ ahụ. Iji ghọta ihe kpatara ya, ịkwesịrị ịghọta ka Helm si arụ ọrụ.

Kedu ka Helm si arụ ọrụ?

Iji chọpụta ma ngwa agbanweela kemgbe ewepụtara ya ikpeazụ, Helm nwere ike iji:

  • ngwa na-agba ọsọ na Kubernetes;
  • ụkpụrụ ọhụrụ.yaml na chaatị dị ugbu a;
  • Ozi mwepụta ime Helm.

Maka ịmatakwu ihe: kedu ebe Helm na-echekwa ozi dị n'ime gbasara mwepụta?Site na ime iwu helm history, anyị ga-enweta ozi niile gbasara ụdị arụnyere na iji Helm.

Ngwa Helm na ọnyà ya
Enwekwara ozi zuru oke gbasara ndebiri na ụkpụrụ ezigara. Anyị nwere ike ịrịọ ya:

Ngwa Helm na ọnyà ya
Na ụdị Helm nke abụọ, ozi a dị n'otu aha ebe Tiller na-agba ọsọ (kube-system na ndabara), na ConfigMap, nke ejiri akara "OWNER=TILLER" akara:

Ngwa Helm na ọnyà ya
Mgbe ụdị nke atọ nke Helm pụtara, ozi ahụ kwagara na nzuzo, yana n'otu aha aha ebe ngwa ahụ na-agba ọsọ. N'ihi nke a, ọ bịara nwee ike ịme ọtụtụ ngwa n'otu oge na oghere aha dị iche iche nwere otu aha ntọhapụ. N'ụdị nke abụọ, ọ bụ nnukwu isi ọwụwa mgbe aha oghere dịpụrụ adịpụ mana ọ nwere ike imetụta ibe ha.

Ngwa Helm na ọnyà ya

Helm nke abụọ, mgbe ị na-agbalị ịghọta ma ọ dị mkpa mmelite, na-eji naanị isi mmalite ozi abụọ: ihe enyere ya ugbu a, yana ozi dị n'ime gbasara mwepụta, nke dị na ConfigMap.

Ngwa Helm na ọnyà ya
Helm nke atọ na-eji usoro njikọta ụzọ atọ: na mgbakwunye na ozi ahụ, ọ na-eburu n'uche ngwa na-agba ọsọ ugbu a na Kubernetes.

Ngwa Helm na ọnyà ya
N'ihi nke a, ụdị ochie nke Helm agaghị eme ihe ọ bụla, ebe ọ bụ na ọ naghị eburu n'uche ozi ngwa dị na ụyọkọ ahụ, mana Helm 3 ga-enweta mgbanwe ma zipụ ngwa ọhụrụ maka mbugharị.

Usoro 5. Jiri mgba ọkụ --recreate-pods

Na igodo --recreate-pods ị nwere ike iji igodo ahụ nweta ihe ị zubere na mbụ iji nweta --force. Akpa ahụ ga-amalitegharị na, dị ka imagePullPolicy: Amụma mgbe niile maka mkpado kacha ọhụrụ (karịa na nke a na ndetu ala ala ala n'elu), Kubernetes ga-ebudata ma malite ụdị ọhụrụ nke onyinyo ahụ. Agaghị eme nke a n'ụzọ kachasị mma: na-eburu n'uche ụdị nke mbubata, ọ ga-agbanyụ ngwa ngwa ochie niile wee malite ịmalite ndị ọhụrụ. N'oge mmalite ahụ, usoro ahụ agaghị arụ ọrụ, ndị ọrụ ga-ata ahụhụ.

Na Kubernetes n'onwe ya, nsogbu yiri nke ahụ dịkwa ogologo oge. Ma ugbu a, 4 afọ mgbe oghere Issue, edozila nsogbu ahụ, malite na ụdị 1.15 nke Kubernetes, ikike ịtụgharị-malitegharịa pọdkas na-apụta.

Helm na-agbanyụ ngwa niile wee wepụta arịa ọhụrụ dị nso. Ị pụghị ime nke a na mmepụta, ka ị ghara ime ka ngwa ngwa kwụsịlata. Nke a bụ naanị maka mkpa mmepe ma enwere ike ịme ya naanị na mpaghara ogbo.

Otu esi emelite ụdị ngwa site na iji Helm?

Anyị ga-agbanwe ụkpụrụ ezigara Helm. Na-emekarị, ndị a bụ ụkpụrụ nke edochiri n'ọnọdụ mkpado onyonyo. N'ihe banyere nke kachasị ọhụrụ, nke a na-ejikarị eme ihe maka gburugburu ebe obibi na-adịghị arụpụta ihe, ozi na-agbanwe agbanwe bụ nkọwa, nke na-abaghị uru maka Kubernetes n'onwe ya, na Helm ọ ga-eme dị ka ihe mgbaàmà maka mkpa imelite ngwa ahụ. Nhọrọ maka imeju uru nkọwapụta:

  1. Uru efu iji ọkọlọtọ ọrụ - {{ randAlphaNum 6 }}.
    Enwere caveat: mgbe ntinye nke ọ bụla na-eji eserese nwere ụdị mgbanwe dị otú ahụ, uru nkọwa ga-abụ ihe pụrụ iche, Helm ga-eche na enwere mgbanwe. Ọ tụgharịrị na anyị ga-amalitegharị ngwa ahụ mgbe niile, ọbụlagodi na anyị agbanwebeghị ụdị ya. Nke a abụghị ihe dị egwu, ebe ọ bụ na a gaghị enwe oge nkwụsịtụ, ma ọ ka na-adịghị mma.
  2. Tapawa ugbu a ụbọchị na oge - {{ .Release.Date }}.
    Otu dị iche iche yiri uru enweghị usoro nwere mgbanwe pụrụ iche na-adịgide adịgide.
  3. Ụzọ ziri ezi bụ iji checksum. Nke a bụ SHA nke onyonyo a ma ọ bụ SHA nke ikpeazụ eme na git - {{ .Values.sha }}.
    Ọ ga-adị mkpa ka a gụọ ha ma zigara onye ahịa Helm n'akụkụ oku, dịka ọmụmaatụ na Jenkins. Ọ bụrụ na ngwa agbanweela, mgbe ahụ checksum ga-agbanwe. Ya mere, Helm ga-emelite ngwa ahụ naanị mgbe achọrọ ya.

Ka anyị chịkọta mgbalị anyị

  • Helm na-eme mgbanwe n'ụzọ kachasị njọ, yabụ mgbanwe ọ bụla na ọkwa onyonyo ngwa na Docker Registry agaghị emelite mmelite: ọ nweghị ihe ga-eme mgbe emechara iwu ahụ.
  • Igodo --force ejiri ya weghachi mwepụta nwere nsogbu yana ejikọtaghị ya na mmelite mmanye.
  • Igodo --recreate-pods ga-emelite ngwa n'ike, mana ọ ga-eme ya n'ụzọ mebiri emebi: ọ ga-agbanyụ akpa niile na mberede. Ndị ọrụ ga-ata ahụhụ site na nke a; ịkwesighi ime nke a na mmepụta.
  • Jiri iwu ahụ mee mgbanwe ozugbo na ụyọkọ Kubernetes kubectl edit emela: anyị ga-agbaji agbanwe agbanwe, omume ga-adị iche dabere na ụdị Helm.
  • Site na mwepụta nke ụdị Helm ọhụrụ, ọtụtụ nuances apụtala. A na-akọwa okwu ndị dị na ebe nchekwa Helm n'asụsụ doro anya, ha ga-enyere gị aka ịghọta nkọwa.
  • Ịtinye nkọwa edezi na eserese ga-eme ka ọ dịkwuo mfe. Nke a ga-enye gị ohere ịmegharị ngwa ahụ nke ọma, na-enweghị oge nkwụsị.

Echiche "udo ụwa" nke na-arụ ọrụ n'akụkụ niile nke ndụ: gụọ ntuziaka tupu ojiji, ọ bụghị mgbe emechara. Naanị site na ozi zuru ezu, ọ ga-ekwe omume ịmepụta usoro ndị a pụrụ ịdabere na ya ma mee ka ndị ọrụ nwee obi ụtọ.

Njikọ ndị ọzọ metụtara:

  1. Mmata na Helm 3
  2. weebụsaịtị Helm
  3. Ebe nchekwa Helm na GitHub
  4. Ngwa Kubernetes 25 bara uru: ntinye na njikwa

Ebu ụzọ gosi akụkọ a na @Kubernetes Nzukọ Site Mail.ru Cloud Solutions. Lee anya видео arụmọrụ ndị ọzọ ma denye aha na ọkwa mmemme na Telegram Gburugburu Kubernetes na Mail.ru Group.

isi: www.habr.com

Tinye a comment