Na-ewebata Helm 3

Na-ewebata Helm 3

Rịba ama. ntụgharị asụsụ.: Mee 16 nke afọ a bụ ihe dị ịrịba ama na mmepe nke onye njikwa ngwugwu maka Kubernetes - Helm. N'ụbọchị a, ewepụtara mbipụta alfa mbụ nke ụdị ọrụ ahụ n'ọdịnihu - 3.0 -. Ntọhapụ ya ga-eweta mgbanwe dị ịrịba ama na nke a na-echere ogologo oge na Helm, nke ọtụtụ ndị nọ na Kubernetes nwere olileanya dị elu. Anyị onwe anyị bụ otu n'ime ndị a, ebe ọ bụ na anyị na-eji Helm na-arụsi ọrụ ike maka ntinye ngwa: anyị ejikọtala ya na ngwá ọrụ anyị iji mejuputa CI / CD. werf na site n'oge ruo n'oge anyị na-enye aka anyị na mmepe nke elu. Ntụgharị a na-ejikọta ndetu 7 sitere na blọọgụ Helm gọọmentị, nke a raara nye na ntọhapụ nke mbụ nke Helm 3 na-ekwu maka akụkọ ihe mere eme nke oru ngo na isi ihe dị na Helm 3. Onye edemede ha bụ Matt "bacongobbler" Fisher, onye ọrụ Microsoft. na otu n'ime ndị isi na-elekọta Helm.

N'October 15, 2015, a mụrụ ọrụ a maara ugbu a dị ka Helm. Naanị otu afọ mgbe ntọala ya gasịrị, ndị obodo Helm sonyeere Kubernetes, ebe ha na-arụsi ọrụ ike na Helm 2. Na June 2018, Helm. sonye na CNCF dị ka ọrụ na-emepe emepe (incubating). Ngwa ngwa n'ihu ugbu a, na mwepụta alfa mbụ nke Helm 3 ọhụrụ na-aga. (ntọhapụ a emelarị ebe n'etiti ọnwa Mee - ihe dị ka. ntụgharị asụsụ.).

N'ime ibe a, m ga-ekwu maka ebe ọ malitere, ka anyị si ruo ebe anyị nọ taa, webata ụfọdụ njirimara pụrụ iche dị na ntọhapụ alfa mbụ nke Helm 3, ma kọwaa otu anyị si eme atụmatụ ịga n'ihu.

Nchịkọta:

  • akụkọ ihe mere eme nke okike Helm;
  • obi ụtọ nke Tiller;
  • ebe nchekwa eserese;
  • njikwa ntọhapụ;
  • mgbanwe na chaatị dabere;
  • chaatị ụlọ akwụkwọ;
  • gini na-esote?

Akụkọ ihe mere eme nke Helm

Ọmụmụ

Helm 1 malitere dị ka ọrụ mepere emepe nke Deis mepụtara. Anyị bụ obere mmalite etinye obi gị dum Microsoft n'afọ 2017. Ọrụ Open Source anyị ọzọ, nke aha ya bụ Deis, nwere ngwá ọrụ deisctl, nke ejiri (n'etiti ihe ndị ọzọ) iji wụnye ma rụọ ọrụ ikpo okwu Deis na Ụyọkọ ụgbọ mmiri. N'oge ahụ, Fleet bụ otu n'ime nyiwe izizi akpa akpa.

N'etiti 2015, anyị kpebiri ịgbanwe usoro wee kwaga Deis (n'oge ahụ ahagharịrị Deis Workflow) site na Fleet gaa Kubernetes. Otu n'ime ndị mbụ emegharịrị bụ ngwa nrụnye. deisctl. Anyị ji ya tinye ma jikwaa Deis Workflow na ụyọkọ Fleet.

Emepụtara Helm 1 n'onyinyo nke ndị njikwa ngwugwu ama ama dị ka Homebrew, apt na yum. Ebumnuche ya bụ ime ka ọrụ dị mfe dị ka nkwakọ ngwaahịa na ịwụnye ngwa na Kubernetes. Ewebata Helm n'ihu ọha na 2015 na ogbako KubeCon na San Francisco.

Mgbalị mbụ anyị na Helm mere bara uru, ma ọ bụghị n'enweghị oke ụfọdụ. O were usoro ngosipụta nke Kubernetes, nke ndị na-emepụta ọkụ na-esi ísì ụtọ dị ka mgbochi YAML mmalite (ihe n'ihu)*, wee tinye nsonaazụ ya na Kubernetes.

* Rịba ama. ntụgharị asụsụ.: Site na ụdị Helm nke mbụ, a họọrọ syntax YAML iji kọwaa akụrụngwa Kubernetes, na akwadoro ụdị Jinja na edemede Python mgbe ị na-ede nhazi. Anyị derekwu gbasara nke a na nhazi nke ụdị Helm nke mbụ n'ozuzu ya n'isiakwụkwọ "A Brief History of Helm" ihe a.

Dịka ọmụmaatụ, iji dochie mpaghara dị na faịlụ YAML, ị ga-etinyerịrị ihe nrụpụta a na ngosipụta:

#helm:generate sed -i -e s|ubuntu-debootstrap|fluffy-bunny| my/pod.yaml

Ọ dị mma na injin template dị taa, ọ bụghị ya?

Maka ọtụtụ ihe kpatara ya, onye nrụpụta Kubernetes mbụ a chọrọ ndepụta nke faịlụ ngosi nwere koodu siri ike ma mee naanị obere usoro ihe omume. O siri ike iji na ndị otu Deis Workflow R&D nwere oge siri ike mgbe ha nwara ịnyefe ngwaahịa ha na ikpo okwu a - agbanyeghị, a ghalarị mkpụrụ nke echiche ahụ. Mgbalị mbụ anyị mere bụ nnukwu ohere mmụta: anyị ghọtara na anyị nwere mmasị n'ezie maka ịmepụta ngwa ọrụ na-edozi nsogbu kwa ụbọchị maka ndị ọrụ anyị.

Dabere na ahụmịhe nke mmejọ gara aga, anyị malitere ịmalite Helm 2.

Ime Helm 2

Na njedebe nke 2015, ndị otu Google kpọtụụrụ anyị. Ha nọ na-arụ ọrụ na ngwá ọrụ yiri nke ahụ maka Kubernetes. Onye njikwa ntinye maka Kubernetes bụ ọdụ ụgbọ mmiri nke ngwaọrụ dị adị nke ejiri Google Cloud Platform mee ihe. “Ọ̀ ga-amasị anyị,” ka ha jụrụ, “ka anyị nọrọ ụbọchị ole na ole na-ekwurịta myirịta na ndịrịta iche?”

Na Jenụwarị 2016, ndị otu Helm na Deployment Manager zutere na Seattle ka ha gbanwee echiche. Mkparịta ụka ahụ kwụsịrị na atụmatụ dị oke egwu: ijikọta ọrụ abụọ ahụ iji mepụta Helm 2. Tinyere Deis na Google, ụmụ okorobịa si SkippBox (ugbu a akụkụ nke Bitnami - ihe dị ka ntụgharị.), anyị malitekwara ịrụ ọrụ na Helm 2.

Anyị chọrọ idobe Helm mfe iji, mana tinye ihe ndị a:

  • eserese eserese maka nhazi;
  • njikwa intra-ụyọkọ maka otu;
  • ebe nchekwa ihe eserese nke ụwa;
  • usoro ngwugwu kwụsiri ike na nhọrọ mbinye aka;
  • ntinye siri ike na nsụgharị semantic na idowe ndakọrịta azụ n'etiti nsụgharị.

Iji mezuo ebumnuche ndị a, agbakwunyela ihe nke abụọ na gburugburu ebe obibi Helm. Akụkụ intra-ụyọkọ a ka a na-akpọ Tiller na ọ bụ ya kpatara ịwụnye chaatị Helm na ijikwa ha.

Kemgbe a tọhapụrụ Helm 2 na 2016, Kubernetes agbakwunyela ọtụtụ ihe ọhụrụ ọhụrụ. njikwa ohere dabere na ọrụ agbakwunyere (RBAC), bụ nke mechara dochie Njikwa Nweta-Based Access (ABAC). Ewebata ụdị akụrụngwa ọhụrụ (Nkwanye ka dị na beta n'oge ahụ). E chepụtara nkọwapụta akụrụngwa omenala (nke a na-akpọ akụrụngwa nke atọ ma ọ bụ TPRs). Na nke kachasị mkpa, usoro omume kacha mma apụtala.

N'ime mgbanwe ndị a niile, Helm gara n'ihu na-ejere ndị ọrụ Kubernetes ozi n'ikwesị ntụkwasị obi. Mgbe afọ atọ na ọtụtụ mgbakwunye ọhụrụ gasịrị, o doro anya na ọ bụ oge iji mee mgbanwe dị ukwuu na codebase iji hụ na Helm nwere ike ịnọgide na-egbo mkpa na-eto eto nke gburugburu ebe obibi na-agbanwe agbanwe.

Daalụ Tiller nke ọma

N'oge mmepe nke Helm 2, anyị webatara Tiller dị ka akụkụ nke njikọ anyị na Google's Deployment Manager. Tiller rụrụ ọrụ dị mkpa maka ndị otu na-arụ ọrụ n'ime otu ụyọkọ nkịtị: o kwere ka ndị ọkachamara dị iche iche na-arụ ọrụ akụrụngwa na-emekọrịta ihe na otu mwepụta ahụ.

Ebe ọ bụ na enyere njikwa ohere dabere na ọrụ (RBAC) na ndabara na Kubernetes 1.6, iso Tiller rụọ ọrụ na mmepụta bịara sie ike karị. N'ihi ọnụ ọgụgụ dị ukwuu nke atumatu nchekwa enwere ike, ọnọdụ anyị bụ ịnye nhazi ikike na ndabara. Nke a nyere ndị ọhụrụ ohere ịnwale Helm na Kubernetes n'ebughị ụzọ banye na ntọala nchekwa. Ọ dị nwute, nhazi ikike a nwere ike inye onye ọrụ ikike oke oke nke ha achọghị. Ndị injinia DevOps na SRE kwesịrị ịmụtakwu usoro arụ ọrụ mgbe ị na-etinye Tiller na ụyọkọ ndị nwe ụlọ.

Mgbe anyị mụtachara ka ndị obodo si jiri Helm mee ihe n'ọnọdụ ụfọdụ, anyị chọpụtara na usoro njikwa ntọhapụ Tiller adịghị mkpa ịdabere na akụrụngwa intra-ụyọkọ iji jikwaa steeti ma ọ bụ rụọ ọrụ dị ka ebe etiti maka ozi ntọhapụ. Kama, anyị nwere ike ịnata ozi sitere na sava Kubernetes API, mepụta eserese n'akụkụ ndị ahịa, wee chekwaa ndekọ nke nrụnye na Kubernetes.

Enwere ike nweta ebumnuche Tiller na-enweghị Tiller, yabụ otu n'ime mkpebi mbụ anyị gbasara Helm 3 bụ ịhapụ Tiller kpamkpam.

Ka Tiller gara, ihe nlere nchekwa Helm emechaala nke ukwuu. Helm 3 na-akwado nchekwa, njirimara na ụzọ ikike nke Kubernetes ugbu a. A na-ekpebi ikikere Helm site na iji kubeconfig faịlụ. Ndị nchịkwa ụyọkọ nwere ike igbochi ikike onye ọrụ na ọkwa ọ bụla nke granularity. A ka na-echekwa ntọhapụ n'ime ụyọkọ ahụ, yana ọrụ Helm ndị ọzọ ka na-adabaghị.

Ebe nchekwa eserese

N'ọkwa dị elu, ebe nchekwa eserese bụ ebe enwere ike ịchekwa ma kesaa eserese. Ndị ahịa Helm na-achịkọta ma na-eziga eserese ahụ na ebe nchekwa. N'ikwu ya n'ụzọ dị mfe, ebe nchekwa eserese bụ ihe nkesa HTTP ochie nwere faịlụ index.yaml na ụfọdụ eserese agbakọtara.

Ọ bụ ezie na enwere ụfọdụ uru na Charts Repository API na-ezute ọtụtụ ihe nchekwa achọrọ, enwerekwa ọghọm ole na ole:

  • Ebe nchekwa Chart adabaghị na ọtụtụ mmemme nchekwa achọrọ na gburugburu mmepụta. Inwe ọkọlọtọ API maka nyocha na ikike dị oke mkpa na ndapụta mmepụta.
  • Ngwa ihe eji achọpụta chaatị Helm, nke ejiri mbinye aka, nyochaa iguzosi ike n'ezi ihe na ngosipụta nke eserese, bụ akụkụ nhọrọ nke usoro mbipụta Chart.
  • N'ọnọdụ dị iche iche nke onye ọrụ, onye ọrụ ọzọ nwere ike ibulite otu eserese ahụ, jiri okpukpu abụọ nke ohere achọrọ iji chekwaa otu ọdịnaya ahụ. Emepụtala ebe nchekwa ndị nwere ọgụgụ isi iji dozie nsogbu a, mana ha esoghị na nkọwapụta.
  • Iji otu faịlụ index maka ịchọ, ichekwa metadata, na iweghachite eserese emeela ka o sie ike ịmepụta mmejuputa ọtụtụ ndị ọrụ echedoro.

Ọrụ ahụ Nkesa Docker (nke a makwaara dị ka Docker Registry v2) bụ onye nọchiri anya Docker Registry ma na-arụ ọrụ dị ka ngwa ngwa maka nkwakọ ngwaahịa, mbupu, ịchekwa na ibuga onyonyo Docker. Ọtụtụ nnukwu ọrụ igwe ojii na-enye ngwaahịa dabere na Nkesa. N'ihi nlebara anya nke a na-abawanye, ọrụ nkesa ahụ eritela uru site na ọtụtụ afọ nke mmezi, ọrụ nchekwa kachasị mma, na nyocha ubi nke mere ka ọ bụrụ otu n'ime ndị dike na-enweghị atụ nke ụwa Open Source.

Mana ị maara na e mere nkesa nkesa iji kesaa ụdị ọdịnaya ọ bụla, ọ bụghị naanị onyonyo akpa?

Daalụ maka mbọ Mepee akpa akpa (ma ọ bụ OCI), enwere ike idowe chaatị Helm na ihe atụ nkesa ọ bụla. Maka ugbu a, usoro a bụ nnwale. Nkwado nbanye na njirimara ndị ọzọ achọrọ maka Helm 3 zuru ezu bụ ọrụ na-aga n'ihu, mana anyị nwere obi ụtọ ịmụta site na nchọpụta ndị otu OCI na nkesa mere kemgbe ọtụtụ afọ. Na site na nkuzi na nduzi ha, anyị na-amụta ka ọ dị ka ịrụ ọrụ dị oke ọnụ n'ọkwa.

Nkọwa zuru ezu nke ụfọdụ mgbanwe na-abịa na ebe nchekwa chaatị Helm dị njikọ.

Njikwa mwepụta

Na Helm 3, a na-enyocha steeti ngwa n'ime ụyọkọ ahụ site na ihe abụọ:

  • ihe ntọhapụ - na-anọchi anya ihe atụ ngwa;
  • nzuzo ụdị mwepụta - na-anọchi anya ọnọdụ ngwa a chọrọ n'otu oge (dịka ọmụmaatụ, mwepụta nke ụdị ọhụrụ).

Kpọọ helm install na-emepụta ihe ntọhapụ na nzuzo ntọhapụ ụdị. Kpọọ helm upgrade na-achọ ihe ntọhapụ (nke ọ nwere ike ịgbanwe) wee mepụta ihe nzuzo ntọhapụ ọhụrụ nwere ụkpụrụ ọhụrụ na ngosipụta a kwadebere.

Ihe mwepụta nwere ozi gbasara ntọhapụ, ebe ntọhapụ bụ kpọmkwem nrụnye nke eserese na ụkpụrụ akpọrọ. Ihe a na-akọwa metadata dị elu gbasara ntọhapụ. Ihe ntọhapụ ahụ na-adịgide n'ime oge ndụ ngwa ahụ ma bụrụ onye nwe ihe nzuzo ụdị mwepụta niile yana ihe niile nke eserese Helm mepụtara ozugbo.

Ụdị nzuzo mwepụta na-ejikọta mwepụta na usoro nlegharị anya (nwụnye, mmelite, mpịakọta, ihichapụ).

Na Helm 2, nlegharị anya na-agbanwe agbanwe. Kpọọ helm install kere v1, mmelite na-esote (mmelite) - v2, na ndị ọzọ. Ihe nzuzo ụdị mwepụta na ntọhapụ adaala n'ime otu ihe akpọrọ ntughari. A na-echekwa ndezigharị n'otu ebe aha dị ka Tiller, nke pụtara na ntọhapụ ọ bụla bụ "ụwa" n'ihe gbasara aha aha; N'ihi ya, naanị otu ihe atụ nke aha nwere ike iji.

Na Helm 3, ntọhapụ ọ bụla jikọtara ya na otu nzuzo ụdị mwepụta ma ọ bụ karịa. Ihe ntọhapụ na-akọwa mgbe niile ntọhapụ ugbu a etinyere na Kubernetes. Ihe nzuzo ụdị mwepụta ọ bụla na-akọwa naanị otu ụdị ntọhapụ ahụ. Dịka ọmụmaatụ, nkwalite ga-emepụta nzuzo ụdị mwepụta ọhụrụ wee gbanwee ihe ewepụtara iji rụtụ aka na ụdị ọhụrụ ahụ. N'ihe banyere nlọghachi azụ, ị nwere ike iji ihe nzuzo ụdị mwepụta gara aga tụgharịa ntọhapụ ahụ na steeti gara aga.

Mgbe agbahapụsịrị Tiller, Helm 3 na-echekwa data ntọhapụ n'otu aha aha dị ka ntọhapụ. Mgbanwe a na-enye gị ohere ịwụnye eserese nwere otu aha ntọhapụ na oghere aha dị iche, echekwara data n'etiti mmelite ụyọkọ/reboots na wdgd. Dịka ọmụmaatụ, ịnwere ike ịwụnye WordPress na ebe aha "foo" wee banye na ebe aha "bar", enwere ike ịkpọ aha ha abụọ "wordpress".

Mgbanwe na ndabere eserese

Charts juru n'ọnụ (iji helm package) maka iji Helm 2 mee ihe nwere ike itinye ya na Helm 3, Otú ọ dị, a na-emezigharị usoro ọrụ mmepe nke chaatị ahụ kpamkpam, n'ihi ya, a ghaghị ime mgbanwe ụfọdụ iji nọgide na-enwe ọganihu chaatị na Helm 3. Karịsịa, usoro nlekọta ịdabere na chaatị agbanweela.

Sistemu njikwa ndabere nke eserese ahụ esila requirements.yaml и requirements.lock on Chart.yaml и Chart.lock. Nke a pụtara na chaatị ndị ji iwu ahụ helm dependency, chọrọ nhazi ụfọdụ ka ọ rụọ ọrụ na Helm 3.

Ka anyị lee otu ihe atụ. Ka anyị tinye ndabere na eserese dị na Helm 2 wee hụ ihe na-agbanwe mgbe ị na-akwaga Helm 3.

Na Helm 2 requirements.yaml dị ka nke a:

dependencies:
- name: mariadb
  version: 5.x.x
  repository: https://kubernetes-charts.storage.googleapis.com/
  condition: mariadb.enabled
  tags:
    - database

Na Helm 3, otu ndabere ahụ ka a ga-egosipụta na nke gị Chart.yaml:

dependencies:
- name: mariadb
  version: 5.x.x
  repository: https://kubernetes-charts.storage.googleapis.com/
  condition: mariadb.enabled
  tags:
    - database

A ka na-ebudata chaatị ma tinye ya na ndekọ charts/, ya mere subcharts (akwụkwọ mpịakọta), dina na katalọgụ charts/, ga-anọgide na-arụ ọrụ na-enweghị mgbanwe.

Na-ewebata eserese ọbá akwụkwọ

Helm 3 na-akwado otu klaasị chaatị a na-akpọ chaatị ọba akwụkwọ (akara ọba akwụkwọ). Chaatị ndị ọzọ na-eji eserese a, mana anaghị emepụta ihe ọ bụla ntọhapụ n'onwe ya. Ndebiri eserese ọbá akwụkwọ nwere ike ikwupụta naanị ihe define. A na-eleghara ọdịnaya ndị ọzọ anya. Nke a na-enye ndị ọrụ ohere iji ma kesaa snippets koodu enwere ike iji gafee ọtụtụ eserese, si otú a na-ezere mbigharị na ịgbaso ụkpụrụ ahụ. Kpọọ.

Ekwuwapụtara eserese ọbá akwụkwọ na ngalaba dependencies na faịlụ Chart.yaml. Ịwụnye na ijikwa ha adịghị iche na chaatị ndị ọzọ.

dependencies:
  - name: mylib
    version: 1.x.x
    repository: quay.io

Anyị nwere obi ụtọ maka ojiji nke akụrụngwa a ga-emeghe maka ndị nrụpụta eserese, yana omume kachasị mma nwere ike ịpụta na eserese ọbá akwụkwọ.

Kedu ihe ọzọ?

Helm 3.0.0-alpha.1 bụ ntọala nke anyị malitere iwu ụdị Helm ọhụrụ. Na isiokwu m kọwara ụfọdụ na-akpali atụmatụ Helm 3. Ọtụtụ n'ime ha ka na-na mmalite nkebi nke mmepe na nke a bụ nkịtị; Isi ihe nke ntọhapụ alfa bụ iji nwalee echiche a, kpokọta nzaghachi sitere n'aka ndị ọrụ mbụ, wee kwado echiche anyị.

Ozugbo ewepụtara ụdị alfa ahụ (cheta na nke a bụ emelarị - ihe ruru. ntụgharị asụsụ.), anyị ga-amalite ịnara patches maka Helm 3 site na obodo. Ịkwesịrị ịmepụta ntọala siri ike nke na-enye ohere ịmepụta ọrụ ọhụrụ na ịnakwere, na maka ndị ọrụ na-eche na ha na-etinye aka na usoro ahụ site na imeghe tiketi na ime ndozi.

Agbalịrị m igosipụta ụfọdụ n'ime nkwalite ndị bụ isi na-abịa na Helm 3, mana ndepụta a anaghị agwụ agwụ. Map ụzọ zuru oke maka Helm 3 gụnyere atụmatụ dị ka atụmatụ mmelite emelitere, njikọta miri emi na ndekọ ndekọ OCI, yana iji atụmatụ JSON kwado ụkpụrụ eserese. Anyị na-eme atụmatụ ihicha codebase na imelite akụkụ ya ndị a na-eleghara anya kemgbe afọ atọ gara aga.

Ọ bụrụ na ọ dị gị ka ihe ọ bụla tụfuru anyị, ọ ga-amasị anyị ịnụ echiche gị!

Soro mkparịta ụka na nke anyị Ọwa dị nro:

  • #helm-users maka ajụjụ na nkwurịta okwu dị mfe na obodo;
  • #helm-dev iji kparịta arịrịọ ịdọrọ, koodu na ahụhụ.

Ị nwekwara ike ịkparịta ụka na oku Onye Mmepụta Ọha kwa izu na Tọzdee na 19:30 MSK. A raara nzukọ na-akparịta ụka nke ndị isi mmepe na obodo na-arụ ọrụ na ya, yana isiokwu mkparịta ụka maka izu. Onye ọ bụla nwere ike isonyere wee sonye na nzukọ a. Njikọ dị na ọwa Slack #helm-dev.

PS sitere na onye ntụgharị

Gụọkwa na blọọgụ anyị:

isi: www.habr.com

Tinye a comment