Ho hlahisa Helm 3

Ho hlahisa Helm 3

Hlokomela. fetolela.: May 16 ea selemo sena e tšoaea ketsahalo ea bohlokoa ho nts'etsopele ea mookameli oa sephutheloana bakeng sa Kubernetes - Helm. Ka letsatsi lena, ho ile ha hlahisoa tokollo ea pele ea alpha ea mofuta o moholo oa nakong e tlang oa morero - 3.0. Ho lokolloa ha eona ho tla tlisa liphetoho tse kholo le tseo e leng khale li letetsoe ho Helm, tseo batho ba bangata sechabeng sa Kubernetes ba nang le tšepo e kholo ho tsona. Rona ka borona re e 'ngoe ea tsena, kaha re sebelisa Helm ka mafolofolo bakeng sa phepelo ea kopo: re e kopantse sesebelisoa sa rona sa ho kenya tšebetsong CI/CD. werf mme nako le nako re kenya letsoho ho nts'etsopele ea libaka tse holimo. Phetolelo ena e kopanya lintlha tse 7 tse tsoang ho blog ea Helm ea molao, e fanoeng ho lokolloa ha alpha ea pele ea Helm 3 le ho bua ka histori ea morero le likarolo tse ka sehloohong tsa Helm 3. Mongoli oa bona ke Matt "bacongobbler" Fisher, mosebeletsi oa Microsoft. le e mong oa bahlokomeli ba bohlokoa ba Helm.

Ka la 15 October, 2015, morero oo hona joale o tsejoang e le Helm o ile oa tsoaloa. Selemo feela ka mor'a ho thehoa ha eona, sechaba sa Helm se ile sa ikopanya le Kubernetes, ha se ntse se sebetsa ka mafolofolo ho Helm 2. Ka June 2018, Helm. o kene ho CNCF joalo ka morero o ntseng o tsoela pele (oa incubating). Ka pele ho fihlela joale, 'me tokollo ea pele ea alpha ea Helm 3 e ncha e tseleng. (tokoloho ena e se e etsahetse bohareng ba May - hoo e ka bang. fetolela.).

Sehloohong sena, ke tla bua ka moo e qalileng teng, hore na re fihlile joang moo re leng teng kajeno, ho hlahisa tse ling tsa likarolo tse ikhethang tse fumanehang tokollong ea pele ea alpha ea Helm 3, 'me ke hlalose hore na re rerile ho tsoela pele joang.

Kakaretso:

  • histori ea pōpo ea Helm;
  • tsela e bonolo ho Tiller;
  • lipolokelo tsa chate;
  • taolo ya tokollo;
  • liphetoho tse itšetlehileng ka lichate;
  • lichate tsa laeborari;
  • ho latela eng?

Histori ea Helm

Tsoalo

Helm 1 e qalile e le projeke ea Open Source e entsoeng ke Deis. Re ne re le qaleho e nyane monyela Microsoft nakong ea selemo 2017. Morero oa rona o mong oa Open Source, oo hape o bitsoang Deis, o ne o e-na le sesebelisoa deisctl, e neng e sebelisoa (har'a lintho tse ling) ho kenya le ho sebetsa sethaleng sa Deis ho Sehlopha sa Fleet. Ka nako eo, Fleet e ne e le e 'ngoe ea liforomo tsa pele tsa 'mino oa linkho.

Bohareng ba 2015, re ile ra etsa qeto ea ho fetola tsela mme ra tlosa Deis (ka nako eo e neng e bitsoa Deis Workflow) ho tloha Fleet ho ea Kubernetes. E 'ngoe ea tsa pele tse ileng tsa etsoa bocha e bile sesebelisoa sa ho kenya. deisctl. Re e sebelisitse ho kenya le ho laola Deis Workflow sehlopheng sa Fleet.

Helm 1 e entsoe ka setšoantšo sa batsamaisi ba liphutheloana ba tummeng joalo ka Homebrew, apt le yum. Sepheo sa eona se seholo e ne e le ho nolofatsa mesebetsi e kang ho paka le ho kenya lits'ebetso ho Kubernetes. Helm e ile ea hlahisoa ka molao ka 2015 kopanong ea KubeCon e San Francisco.

Boiteko ba rona ba pele le Helm bo ile ba sebetsa, empa e ne e se ntle le mefokolo e itseng e tebileng. O nkile sete ea lipontšo tsa Kubernetes, tse khabisitsoeng ka lijenereithara e le li-block tsa YAML tsa selelekela. (taba ea pele)*, mme a kenya liphetho ho Kubernetes.

* Hlokomela. fetolela.: Ho tloha phetolelong ea pele ea Helm, syntax ea YAML e khethiloe ho hlalosa lisebelisoa tsa Kubernetes, 'me litempele tsa Jinja le mangolo a Python li ile tsa tšehetsoa ha ho ngoloa litlhophiso. Re ngotse haholoanyane ka sena le sebopeho sa mofuta oa pele oa Helm ka kakaretso khaolong ea "Histori e Khutšoanyane ea Helm" thepa ena.

Mohlala, ho nkela sebaka faeleng ea YAML, o ile oa tlameha ho kenyelletsa moaho o latelang ho manifesto:

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

Ho monate hore ebe lienjineri tsa template li teng kajeno, na ha ho joalo?

Ka mabaka a mangata, sehokelo sena sa pele sa Kubernetes se ne se hloka lethathamo le thata la lifaele tsa ponts'o mme se phethile feela tatellano e nyane, e tsitsitseng ea liketsahalo. Ho ne ho le thata ho e sebelisa hoo sehlopha sa Deis Workflow R & D se neng se e-na le bothata ha se leka ho fetisetsa sehlahisoa sa bona sethaleng sena - leha ho le joalo, peo ea khopolo e ne e se e jetsoe. Teko ea rona ea pele e bile monyetla o motle oa ho ithuta: re ile ra hlokomela hore re hlile re chesehela ho theha lisebelisoa tsa pragmatic tse rarollang mathata a letsatsi le letsatsi bakeng sa basebelisi ba rona.

Ho ipapisitsoe le boiphihlelo ba liphoso tse fetileng, re ile ra qala ho theha Helm 2.

Ho etsa Helm 2

Qetellong ea 2015, sehlopha sa Google se ile sa ikopanya le rona. Ba ne ba sebetsa sesebelisoa se tšoanang bakeng sa Kubernetes. Deployment Manager bakeng sa Kubernetes e ne e le boema-kepe ba sesebelisoa se seng se ntse se sebelisoa bakeng sa Google Cloud Platform. Ba ile ba botsa: “Na re ka rata ho qeta matsatsi a seng makae re buisana ka ho tšoana le ho se tšoane ha tsona?”

Ka Pherekhong 2016, lihlopha tsa Helm le Deployment Manager li ile tsa kopana Seattle ho fapanyetsana maikutlo. Lipuisano li ile tsa fela ka morero o matla: ho kopanya merero ka bobeli ho theha Helm 2. Hammoho le Deis le Google, bashanyana ba tsoang. SkippBox (hona joale ke karolo ea Bitnami - approx. transl.), mme ra qala ho sebetsa Helm 2.

Re ne re batla ho boloka Helm e sebetsa habonolo, empa eketsa tse latelang:

  • litempele tsa chate bakeng sa ho itlhophisa;
  • tsamaiso ea ka hare ho lihlopha bakeng sa lihlopha;
  • polokelo ea chate ea boemo ba lefatše;
  • sebopeho se tsitsitseng sa sephutheloana se nang le khetho ea ho saena;
  • boitlamo bo matla ba phetolelo ea semantic le ho boloka tšebelisano ea morao pakeng tsa liphetolelo.

Ho fihlela lipheo tsena, ho kentsoe ntho ea bobeli ho Helm ecosystem. Karolo ena ea intra-cluster e ne e bitsoa Tiller mme e ne e ikarabella ho kenya lichate tsa Helm le ho li laola.

Ho tloha ha Helm 2 e lokolloa ka 2016, Kubernetes e ekelitse mekhoa e mengata e meholo. Taolo ea phihlello e kentsoeng ka karolo (RBAC), e ileng ea qetella e nkile sebaka sa Attribute-Based Access Control (ABAC). Mefuta e mecha ea lisebelisoa e ile ea hlahisoa (Ho romelloa ho ne ho ntse ho le beta ka nako eo). Litlhaloso tsa Custom Resource (tseo pele li neng li bitsoa Third Party Resources kapa TPRs) li ile tsa qaptjoa. Habohlokoa le ho feta, ho hlahile mekhoa e metle.

Har'a liphetoho tsena kaofela, Helm o ile a tsoela pele ho sebeletsa basebelisi ba Kubernetes ka botšepehi. Ka mor'a lilemo tse tharo le litlatsetso tse ngata tse ncha, ho ne ho hlakile hore e ne e le nako ea ho etsa liphetoho tse kholo ho codebase ho netefatsa hore Helm e ka tsoela pele ho finyella litlhoko tse ntseng li eketseha tsa tikoloho e tsoelang pele.

Sala hantle ho Tiller

Nakong ea nts'etsopele ea Helm 2, re tsebisitse Tiller e le karolo ea khokahano ea rona le Mookameli oa Phatlalatso oa Google. Tiller e phethile karolo ea bohlokoa bakeng sa lihlopha tse sebetsang ka har'a sehlopha se le seng: e lumelletse litsebi tse fapaneng tse sebetsang meaho ho sebelisana le sete e tšoanang ea litokollo.

Kaha taolo ea phihlello e thehiloeng ho karolo (RBAC) e ne e nolofalitsoe ka ho sa feleng ho Kubernetes 1.6, ho sebetsa le Tiller tlhahiso ho ile ha e-ba thata le ho feta. Ka lebaka la palo e kholo ea maano a ts'ireletso a ka bang teng, boemo ba rona e bile ho fana ka tlhophiso e lumellang ka ho sa feleng. Sena se ile sa lumella batho ba bacha hore ba leke Helm le Kubernetes ntle le hore ba kenelle litlhophisong tsa ts'ireletso pele. Ka bomalimabe, tlhophiso ena ea tumello e ka fa mosebelisi litumello tse ngata haholo tseo ba neng ba sa li hloke. Baenjineri ba DevOps le SRE ba ile ba tlameha ho ithuta mehato e meng ea ts'ebetso ha ba kenya Tiller sehlopheng sa bahiri ba bangata.

Ka mor'a ho ithuta hore na sechaba se sebelisitse Helm joang maemong a itseng, re ile ra hlokomela hore tsamaiso ea tsamaiso ea ho lokolloa ha Tiller e ne e sa hloke ho itšetleha ka karolo ea intra-cluster ho boloka boemo kapa mosebetsi e le setsi sa bohareng bakeng sa tlhahiso-leseling ea tokollo. Sebakeng seo, re ka fumana leseli ho tsoa ho seva sa Kubernetes API, ra hlahisa chate ka lehlakoreng la bareki, 'me ra boloka rekoto ea ho kenya Kubernetes.

Sepheo se seholo sa Tiller se ka be se finyeletsoe ntle le Tiller, kahoo e 'ngoe ea liqeto tsa rona tsa pele mabapi le Helm 3 e ne e le ho lahla Tiller ka ho feletseng.

Ha Tiller a se a le sieo, mohlala oa ts'ireletso oa Helm o nolofalitsoe haholo. Helm 3 joale e ts'ehetsa ts'ireletso eohle ea sejoale-joale, boitsebahatso le mekhoa ea tumello ea Kubernetes ea hajoale. Litumello tsa Helm li ikemiselitse ho sebelisoa kubeconfig file. Batsamaisi ba Cluster ba ka thibela litokelo tsa basebelisi boemong bofe kapa bofe ba granularity. Litokollo li ntse li bolokiloe ka har'a sehlopha, 'me ts'ebetso eohle ea Helm e ntse e sa fetohe.

Bobolokelo ba chate

Boemong bo phahameng, polokelo ea lichate ke sebaka seo lichate li ka bolokoang ho sona le ho arolelanoa. Liphutheloana tsa bareki ba Helm ebe li romela lichate sebakeng sa polokelo. Ka mantsoe a bonolo feela, polokelo ea lichate ke seva sa khale sa HTTP se nang le index.yaml faele le lichate tse pakiloeng.

Leha ho na le melemo e meng ea hore Charts Repository API e fihlelle litlhoko tsa mantlha tsa polokelo, ho boetse ho na le mathata a 'maloa:

  • Libaka tsa polokelo ea lichate ha li tsamaellane le ts'ebetsong e mengata ea ts'ireletso e hlokahalang tikolohong ea tlhahiso. Ho ba le API e tloaelehileng bakeng sa netefatso le tumello ho bohlokoa haholo maemong a tlhahiso.
  • Lisebelisoa tsa Helm's chate, tse sebelisetsoang ho saena, ho netefatsa botšepehi le ho ba teng ha chate, ke karolo ea boikhethelo ea mokhoa oa ho hatisa Chate.
  • Maemong a basebelisi ba bangata, chate e tšoanang e ka romelloa ke mosebelisi e mong, e imena habeli sebaka se hlokahalang ho boloka litaba tse tšoanang. Lipolokelo tse bohlale li entsoe ho rarolla bothata bona, empa ha se karolo ea litlhaloso tse hlophisitsoeng.
  • Ho sebelisa faele e le 'ngoe ea index bakeng sa ho batla, ho boloka metadata, le ho fumana lichate ho entse hore ho be thata ho hlahisa ts'ebetsong e sireletsehileng ea basebelisi ba bangata.

Morero Phatlalatso ea Docker (hape e tsejoa e le Docker Registry v2) ke mohlahlami oa Docker Registry mme ha e le hantle e sebetsa e le lisebelisoa tsa ho paka, ho tsamaisa, ho boloka le ho tsamaisa litšoantšo tsa Docker. Litšebeletso tse ngata tse kholo tsa maru li fana ka lihlahisoa tse thehiloeng ho Distribution. Ka lebaka la tlhokomelo ena e eketsehileng, morero oa Phatlalatso o ruile molemo lilemong tsa ntlafatso, mekhoa e metle ea ts'ireletso, le liteko tsa tšimo tse entseng hore e be e mong oa bahale ba atlehileng ka ho fetisisa ba sa kang ba tsebahala lefatšeng la Open Source.

Empa na u ne u tseba hore Morero oa Phatlalatso o etselitsoe ho aba mofuta ofe kapa ofe oa litaba, eseng litšoantšo tsa setshelo feela?

Ka lebaka la boiteko Bohato ba Pele ba K'hontheinara (kapa OCI), lichate tsa Helm li ka beoa ketsahalong efe kapa efe ea Kabo. Hajoale, ts'ebetso ena ke liteko. Ts'ehetso ea ho kena le likarolo tse ling tse hlokahalang bakeng sa Helm 3 e felletseng ke mosebetsi o ntseng o tsoela pele, empa re thabetse ho ithuta ho tsoa ho litšibollo tseo lihlopha tsa OCI le Phatlalatso li li entseng ho theosa le lilemo. 'Me ka boeletsi le tataiso ea bona, re ithuta hore na ho joang ho sebelisa litšebeletso tse fumanehang haholo ka bongata.

Tlhaloso e qaqileng haholoanyane ea liphetoho tse tlang ho polokelo ea chate ea Helm ea fumaneha link tsa.

Tsamaiso ea tokollo

Ho Helm 3, boemo ba kopo bo lateloa ka har'a sehlopha ka lintho tse peli:

  • ntho ea ho lokolla - e emela mohlala oa kopo;
  • sephiri sa mofuta oa tokollo - se emela boemo bo lakatsehang ba kopo ka nako e itseng (mohlala, ho lokolloa ha mofuta o mocha).

Bothata helm install e bopa ntho ya tokollo le lekunutu la tokollo. Letsa helm upgrade e hloka ntho ea tokollo (eo e ka e fetolang) mme e theha lekunutu le lecha la tokollo le nang le boleng bo bocha le pontšo e lokiselitsoeng.

Ntho e lokollotsoeng e na le tlhahisoleseling mabapi le tokollo, moo tokollo e leng ts'ebetso e khethehileng ea chate le boleng. Ntho ena e hlalosa metadata ea boemo bo holimo mabapi le tokollo. Ntho ea tokollo e tsoela pele nakong eohle ea ts'ebeliso mme ke mong'a liphiri tsohle tsa tokollo, hammoho le lintho tsohle tse entsoeng ka kotloloho ke chate ea Helm.

Lekunutu la mofuta oa tokollo le amahanya tokollo le letoto la lintlafatso (ho kengoa, lintlafatso, li-rollback, ho hlakolwa).

Ho Helm 2, lintlafatso li ne li tšoana haholo. Letsa helm install e thehiloe v1, ntlafatso e latelang (ntlafatso) - v2, joalo-joalo. Lekunutu la mofuta oa tokollo le tokollo li entsoe ntho e le 'ngoe e tsejoang e le ntlafatso. Liphetoho li ile tsa bolokoa sebakeng sa mabitso se tšoanang le sa Tiller, se bolelang hore tokollo e 'ngoe le e 'ngoe e ne e le "lefats'e" ho latela sebaka sa mabitso; ka lebaka leo, ho ne ho ka sebelisoa mohlala o le mong feela oa lebitso leo.

Ho Helm 3, tokollo ka 'ngoe e amahanngoa le liphiri tsa mofuta o le mong kapa ho feta. Ntho ea tokollo e lula e hlalosa tokollo ea hajoale e rometsoeng ho Kubernetes. Sephiri se seng le se seng sa tokollo se hlalosa mofuta o le mong feela oa tokollo eo. Ka mohlala, ho ntlafatsa, ho tla hlahisa sephiri se secha sa tokollo ebe se fetola tokollo ho supa mofuta oo o mocha. Tabeng ea ho khutlisa, u ka sebelisa liphiri tsa mofuta o fetileng ho khutlisetsa tokollo boemong bo fetileng.

Kamora hore Tiller a tloheloe, Helm 3 e boloka data sebakeng se tšoanang sa mabitso le tokollo. Phetoho ena e u lumella ho kenya chate e nang le lebitso le tšoanang la tokollo sebakeng se fapaneng sa mabitso, 'me data e bolokoa lipakeng tsa liapdeite tsa cluster/reboots in etcd. Mohlala, o ka kenya WordPress sebakeng sa mabitso sa "foo" ebe o kena sebakeng sa mabitso sa "bar", 'me litokollo ka bobeli li ka bitsoa "wordpress".

Liphetoho ho itšetlehileng ka lichate

Lichate tse pakiloeng (sebelisa helm package) bakeng sa ho sebelisoa le Helm 2 e ka kenngoa le Helm 3, leha ho le joalo ts'ebetso ea tsoelo-pele ea chate e fetotsoe ka ho feletseng, kahoo liphetoho tse ling li tlameha ho etsoa ho tsoela pele ka tsoelo-pele ea chate le Helm 3. Haholo-holo, tsamaiso ea tsamaiso ea ho itšetleha ka chate e fetohile.

Sisteme ea taolo ea ho itšetleha ka chate e tlohile requirements.yaml и requirements.lock mabapi le Chart.yaml и Chart.lock. Sena se bolela hore lichate tse sebelisitseng taelo helm dependency, e hloka ho seta ho itseng ho sebetsa ho Helm 3.

A re hlahlobeng mohlala. Ha re kenyelletseng ho its'etleha ho chate ho Helm 2 mme re bone hore na ho fetoha hofe ha re fallela Helm 3.

Ho Helm 2 requirements.yaml e ne e shebahala tjena:

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

Ho Helm 3, ho itšetleha ho tšoanang ho tla bonahala ho uena Chart.yaml:

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

Lichate li ntse li kopitsoa 'me li behiloe bukeng charts/, kahoo li-subcharts (likaroloana), e lutseng lethathamong la libuka charts/, e tla tsoela pele ho sebetsa ntle le liphetoho.

Ho Tsebisa Lichate tsa Laeborari

Helm 3 e tšehetsa sehlopha sa lichate se bitsoang lichate tsa laeborari (chate ea laeborari). Chate ena e sebelisoa ke lichate tse ling, empa ha e iketsetse li-artifacts ka bo eona. Lithempleite tsa lichate tsa laebrari li ka hlahisa likarolo feela define. Litaba tse ling li hlokomolohuoa feela. Sena se lumella basebelisi ho sebelisa hape le ho arolelana linepe tsa khoutu tse ka sebelisoang lichate tse ngata, kahoo ba qoba ho pheta-pheta le ho latela molao-motheo. Dry.

Lichate tsa laebrari li phatlalalitsoe karolong ena dependencies ka faele Chart.yaml. Ho li kenya le ho li laola ha ho fapane le lichate tse ling.

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

Re thabetse maemo a ts'ebeliso eo karolo ena e tla buleha bakeng sa baetsi ba lichate, hammoho le mekhoa e metle e ka hlahang lichateng tsa laeborari.

Ke'ng e latelang?

Helm 3.0.0-alpha.1 ke motheo oo re qalang ho aha mofuta o mocha oa Helm holim'a oona. Sehloohong seo ke se hlalositseng likarolo tse ling tse thahasellisang tsa Helm 3. Ba bangata ba bona ba ntse ba le mekhahlelo ea pele ea tsoelo-pele 'me sena se tloaelehile; Taba ea tokollo ea alpha ke ho leka mohopolo, ho bokella maikutlo ho tsoa ho basebelisi ba pele, le ho netefatsa menahano ea rona.

Hang ha phetolelo ea alpha e lokolloa (hopola hore sena ke e se e etsahetse - hoo e ka bang. fetolela.), re tla qala ho amohela lipache bakeng sa Helm 3 ho tsoa sechabeng. U hloka ho theha motheo o tiileng o lumellang ts'ebetso e ncha hore e ntlafatsoe le ho amoheloa, le hore basebelisi ba ikutloe ba ameha ts'ebetsong ka ho bula litekete le ho lokisa.

Ke lekile ho totobatsa tse ling tsa lintlafatso tse kholo tse tlang ho Helm 3, empa lenane lena ha le feletse. 'Mapa o felletseng oa Helm 3 o kenyelletsa likarolo tse kang maano a ntlafatso a ntlafatso, kopanyo e tebileng le ngoliso ea OCI, le ts'ebeliso ea li-schemas tsa JSON ho netefatsa boleng ba chate. Re boetse re rera ho hloekisa codebase le ho nchafatsa likarolo tsa eona tse neng li sa tsotelloe lilemong tse tharo tse fetileng.

Haeba u utloa eka re fetotsoe ke ho hong, re ka thabela ho utloa maikutlo a hau!

Kena lipuisanong tsa rona Likanale tse fokolang:

  • #helm-users bakeng sa lipotso le puisano e bonolo le sechaba;
  • #helm-dev ho buisana ka likopo tsa ho hula, khoutu le likokoana-hloko.

U ka boela ua qoqa ho Mehala ea rona ea beke le beke ea Baetsi ba Sechaba ka Labone ka 19:30 MSK. Likopano li ikemiselitse ho buisana ka litaba tseo baetsi ba bohlokoa le sechaba ba sebetsanang le tsona, hammoho le lihlooho tsa lipuisano tsa beke. Mang kapa mang a ka kena le ho nka karolo kopanong. Sehokelo se fumaneha mocha oa Slack #helm-dev.

PS ho tsoa ho mofetoleli

Bala hape ho blog ea rona:

Source: www.habr.com

Eketsa ka tlhaloso