Danasîna Helm 3

Danasîna Helm 3

Not. werger.: 16ê Gulana vê salê di pêşkeftina rêveberê pakêtê de ji bo Kubernetes - Helm qonaxek girîng nîşan dide. Di vê rojê de, yekem serbestberdana alpha ya guhertoya mezin a pêşerojê ya projeyê - 3.0 - hate pêşkêş kirin. Serbestberdana wê dê guheztinên girîng û çaverêkirî li Helm bîne, ji bo ku gelek di civata Kubernetes de hêviyên mezin hene. Em bi xwe jî yek ji van in, ji ber ku em Helm bi awayekî çalak ji bo bicihkirina serîlêdanê bikar tînin: me ew di nav amûra xwe de ji bo bicihanîna CI/CD yek kiriye. werf û dem bi dem em tevkariya xwe di pêşkeftina jorîn de dikin. Ev werger 7 notên ji bloga fermî ya Helm berhev dike, ku ji bo yekem serbestberdana alfa ya Helm 3 veqetandî ne û li ser dîroka projeyê û taybetmendiyên sereke yên Helm 3 diaxivin. Nivîskarê wan Matt "bacongobbler" Fisher e, karmendek Microsoft-ê. û yek ji parêzvanên sereke yên Helm.

Di 15ê Cotmeha 2015an de, projeya ku niha wekî Helm tê zanîn ji dayik bû. Tenê salek piştî damezrandina wê, civata Helm tevlî Kubernetes bû, dema ku bi awayekî çalak li ser Helm 2 dixebitî. Di Hezîrana 2018 de, Helm tevlî CNCF bû wekî projeyek pêşveçûyîn (inkubatî). Bi lez ber bi îro ve, û yekem serbestberdana alfa ya Helm 3-a nû di rê de ye. (ev berdan berê pêk hatiye di nîvê Gulanê de - nêzîkî. werger.).

Di vê beşê de, ez ê li ser ku hemî dest pê kir biaxivim, em çawa gihîştin cihê ku em îro lê ne, hin taybetmendiyên bêhempa yên ku di yekem serbestberdana alpha ya Helm 3 de peyda dibin destnîşan bikim, û rave bikim ka em çawa plan dikin ku pêşde biçin.

Nîqaş:

  • dîroka afirandina Helm;
  • xatir xatir ji Tiller re;
  • depoyên nexşeyê;
  • rêveberiya serbestberdanê;
  • guhertinên di girêdanên nexşeyê de;
  • nexşeyên pirtûkxaneyê;
  • paşê çi ye?

Dîroka Helm

Jidayikbûnê

Helm 1 wekî projeyek Çavkaniya Vekirî ya ku ji hêla Deis ve hatî afirandin dest pê kir. Em destpêkek piçûk bûn hejandin Microsoft di bihara 2017 de. Projeya meya Çavkaniya Vekirî ya din, bi navê Deis jî, amûrek hebû deisctl, ku hate bikar anîn (di nav tiştên din de) ji bo sazkirin û xebitandina platforma Deis tê de Fleet cluster. Wê demê, Fleet yek ji yekem platformên orkestrasyona konteynerê bû.

Di nîvê sala 2015-an de, me biryar da ku em qursê biguherînin û Deis (wê demê navê wî Deis Workflow hate guheztin) ji Fleet veguhezand Kubernetes. Yek ji yekemên ku ji nû ve hate sêwirandin amûra sazkirinê bû. deisctl. Me ew bikar anî ji bo sazkirin û birêvebirina Deis Workflow di koma Fleet de.

Helm 1 di wêneya rêveberên pakêtê yên navdar ên wekî Homebrew, apt û yum de hate afirandin. Armanca wê ya sereke hêsankirina karên wekî pakkirin û sazkirina sepanan li Kubernetes bû. Helm bi fermî di sala 2015-an de li konferansa KubeCon li San Francisco hate nas kirin.

Hewldana meya yekem bi Helm re xebitî, lê ew ne bê hin sînorkirinên ciddî bû. Wî komek manîfestoyên Kubernetes hilda, bi jeneratoran ve wekî blokên YAML-ya danasînê xweş kirin. (peywira pêşîn)*, û encam li Kubernetes bar kir.

* Not. werger.: Ji guhertoya yekem a Helm, hevoksaziya YAML ji bo danasîna çavkaniyên Kubernetes hate hilbijartin, û şablonên Jinja û nivîsarên Python dema ku veavakirinan dinivîsin piştgirî kirin. Me li ser vê yekê û avahiya yekem guhertoya Helm bi gelemperî di beşa "Dîroka Kurtî ya Helm" de bêtir nivîsî. vê materyalê.

Mînakî, ji bo ku hûn zeviyek di pelek YAML de biguhezînin, pêdivî bû ku hûn avakirina jêrîn li manîfestoyê zêde bikin:

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

Pir xweş e ku motorên şablonê îro hene, ne wusa?

Ji ber gelek sedeman, ev sazkerê Kubernetes-ê zû hewce dike ku navnîşek hişk-kodkirî ya pelên manîfestoyê hewce bike û tenê rêzek bûyeran a piçûk, sabît pêk anî. Bikaranîn ew qas dijwar bû ku tîmê Deis Workflow R&D dema ku wan hewl da ku hilbera xwe veguhezîne vê platformê demek dijwar derbas bû - lêbelê, tovên ramanê berê hatibûn çandin. Hewldana meya yekem fersendek fêrbûnek mezin bû: me fêm kir ku em bi rastî dilşewat in ji afirandina amûrên pragmatîk ên ku pirsgirêkên rojane ji bikarhênerên xwe re çareser dikin.

Li ser bingeha ezmûna xeletiyên berê, me dest bi pêşxistina Helm 2 kir.

Çêkirina Helm 2

Di dawiya 2015 de, tîmê Google bi me re têkilî danî. Ew ji bo Kubernetes li ser amûrek wekhev dixebitin. Rêvebirê Dabeşkirinê ji bo Kubernetes portek amûrek heyî bû ku ji bo Platforma Google Cloud dihat bikar anîn. "Ma em dixwazin," wan pirsî, "Em çend rojan li ser wekhevî û cûdahiyan nîqaş bikin?"

Di Çile 2016 de, tîmên Helm û Rêvebirê Deployment li Seattle civiyan da ku ramanan biguhezînin. Danûstandin bi planek ambicioz bi dawî bû: ji bo afirandina Helm 2 her du projeyan li hev bikin. Li gel Deis û Google, xortên ji SkippBox (niha beşek ji Bitnamî - nêzîkî werger.), û me dest bi xebata li ser Helm 2 kir.

Me xwest ku em hêsaniya karanîna Helm biparêzin, lê jêrîn lê zêde bikin:

  • şablonên nexşeyê ji bo xwerûkirinê;
  • rêveberiya nav-komê ji bo tîmên;
  • depoya nexşeya cîhanî;
  • formata pakêtê ya stabîl bi vebijarka îmzeyê;
  • pabendbûnek xurt ji bo guhertoya semantîk û domandina lihevhatina paşverû ya di navbera guhertoyan de.

Ji bo bidestxistina van armancan, hêmanek duyemîn li ekosîstema Helmê hatiye zêdekirin. Vê pêkhateya hundurîn-komê jê re Tiller digotin û berpirsiyariya sazkirina nexşeyên Helm û birêvebirina wan bû.

Ji ber serbestberdana Helm 2 di 2016-an de, Kubernetes gelek nûbûnên mezin lê zêde kir. Kontrola gihîştina-bingeha rolê zêde kir (RBAC), ya ku di dawiyê de şûna Kontrola Gihîştina Bingeha Taybetmendiyê (ABAC) girt. Cûreyên çavkaniyên nû hatin destnîşan kirin (Destpêkirin wê demê hîn di betayê de bû). Pênaseyên Çavkaniya Xweser (bi eslê xwe jê re Çavkaniyên Partiya Sêyemîn an TPRs tê gotin) hatin vedîtin. Û ya herî girîng, komek pratîkên çêtirîn derketine holê.

Di nav van hemî guhertinan de, Helm berdewam kir ku bi dilsozî ji bikarhênerên Kubernetes re xizmet bike. Piştî sê sal û gelek lêzêdekirinên nû, eşkere bû ku ew dem bû ku di bingehê kodê de guhertinên girîng çêbibin da ku Helm karibe berdewam bike ku hewcedariyên mezinbûna ekosîstemek pêşkeftî bicîh bîne.

Ji Tiller xatirxwestinek

Di dema pêşkeftina Helm 2 de, me Tiller wekî beşek ji entegrasyona xwe bi Gerînendeyê Dabeşkirina Google re destnîşan kir. Tiller ji bo tîmên ku di nav komek hevpar de dixebitin rolek girîng lîst: ew hişt ku pisporên cihêreng ên ku binesaziyê dixebitin bi heman koma serbestberdanê re têkilî daynin.

Ji ber ku kontrola gihîştina-based rol (RBAC) di Kubernetes 1.6 de ji hêla xwerû ve hatî çalak kirin, di hilberînê de xebata bi Tiller re dijwartir bû. Ji ber hejmareke zêde ya polîtîkayên ewlehiyê yên gengaz, pozîsyona me ew e ku ji hêla xwerû ve veavakirinek destûrdar pêşkêşî bike. Vê yekê hişt ku nûciwan bi Helm û Kubernetes biceribînin bêyî ku pêşî li mîhengên ewlehiyê bikevin. Mixabin, ev veavakirina destûrê dikare bikarhêner bi destûrek pir berfireh a ku hewcedariya wan nekiriye bide. Endezyarên DevOps û SRE neçar bûn ku gava ku Tiller di komek pir-kirêdar de saz bikin gavên xebitandinê yên din fêr bibin.

Piştî ku em fêr bûn ka civat çawa Helm di rewşên taybetî de bikar tîne, me fêm kir ku pergala rêveberiya serbestberdana Tiller ne hewce ye ku xwe bispêre pêkhateyek hundurîn-klûkê da ku dewletê biparêze an wekî navendek navendî ji bo agahdariya berdanê bixebite. Di şûna wê de, em dikarin tenê ji servera Kubernetes API-ê agahdarî bistînin, nexşeyek li ser xerîdar biafirînin, û tomarek sazkirinê li Kubernetes hilînin.

Armanca sereke ya Tiller dikaribû bêyî Tiller bihata bidestxistin, ji ber vê yekê yek ji biryarên me yên yekem di derbarê Helm 3 de ev bû ku em bi tevahî dev ji Tiller berdin.

Bi çûyîna Tiller re, modela ewlehiyê ya Helm bi radîkal hate hêsan kirin. Helm 3 naha hemî ewlehî, nasname û rêgezên destûrnameyê yên Kubernetes ên heyî piştgirî dike. Destûrên Helm bi karanîna têne destnîşankirin pelê kubeconfig. Rêvebirên komê dikarin mafên bikarhêneran li her astê hûrguliyê sînordar bikin. Berdan hîn jî di nav komê de têne tomar kirin, û fonksiyona mayî ya Helm sax dimîne.

Depoyên nexşeyê

Di astek bilind de, depoya nexşeyê cîhek e ku nexşan dikarin werin hilanîn û parve kirin. Muwekîlê Helm nexşeyan pak dike û dişîne depoyê. Bi hêsanî, depoya nexşeyan serverek HTTP-ya seretayî ye ku pelek index.yaml û hin nexşeyên pakkirî hene.

Digel ku hin avantajên API-ya Depoya Charts-ê ku piraniya hewcedariyên hilanînê yên bingehîn bicîh tîne hene, çend dezawantaj jî hene:

  • Depoyên nexşeyê bi piraniya pêkanînên ewlehiyê yên ku di hawîrdora hilberînê de hewce ne re hevaheng in. Di senaryoyên hilberînê de hebûna API-yek standard a ji bo pejirandin û destûrnameyê pir girîng e.
  • Amûrên pêşandana nexşeya Helm, ku ji bo îmzekirin, verastkirina yekitî û xwezaya nexşeyek têne bikar anîn, beşek vebijarkî ya pêvajoya weşana Chart-ê ne.
  • Di senaryoyên pir-bikarhêner de, heman nexşe dikare ji hêla bikarhênerek din ve were barkirin, qasê cîhê ku ji bo hilanîna heman naverokê du qat zêde dike. Depoyên jîrtir ji bo çareserkirina vê pirsgirêkê hatine pêşve xistin, lê ew ne beşek ji taybetmendiya fermî ne.
  • Ji bo lêgerîn, hilanîna metadata, û wergirtina nexşeyan bikar anîna pelek yekane, pêşkeftina pêkanînên pir-bikarhêner ewledar dijwar kiriye.

Projeyê Belavkirina Docker (ku wekî Docker Registry v2 jî tê zanîn) serkêşê Docker Registry ye û bi bingehîn wekî komek amûran ji bo pakkirin, barkirin, hilanîn û radestkirina wêneyên Docker tevdigere. Gelek karûbarên ewr ên mezin hilberên li ser Belavkirinê pêşkêş dikin. Bi saya vê baldariya zêde, projeya Belavkirinê ji çend salan çêtirbûn, pratîkên çêtirîn ên ewlehiyê, û ceribandina zeviyê sûd werdigire ku ew kiriye yek ji lehengên herî serfiraz ên cîhana Çavkaniya Vekirî.

Lê we dizanibû ku Projeya Belavkirinê ji bo belavkirina her rengek naverokê, ne tenê wêneyên konteyneran hatî çêkirin?

Bi saya hewldanan Contnsiyatîfa Konteynirê Vekirî (an OCI), nexşeyên Helm dikarin li ser her mînakek Belavkirinê bêne danîn. Heya nuha, ev pêvajo ceribandinek e. Piştgiriya têketinê û taybetmendiyên din ên ku ji bo Helm 3-ya bêkêmasî hewce ne xebatek li pêş e, lê em kêfxweş in ku ji vedîtinên ku tîmên OCI û Dabeşkirinê di nav salan de çêkirine fêr dibin. Û bi rêberî û rêberiya wan, em fêr dibin ka meriv karûbarek pir berdest di pîvanê de çawa ye.

Danasînek berfirehtir a hin guhertinên pêşeroj ên li depoyên nexşeya Helm heye link.

Rêveberiya berdanê

Di Helm 3 de, rewşa serîlêdanê di nav komê de ji hêla cotek tiştan ve tê şopandin:

  • object berdan - mînakek serîlêdanê nîşan dide;
  • nepeniya guhertoya berdanê - rewşa xwestî ya serîlêdanê di demek taybetî de nîşan dide (mînak, berdana guhertoyek nû).

Rallenge helm install objeyek berdanê û nehêniya guhertoya berdanê diafirîne. Bang helm upgrade pêdivî ye ku tiştek serbestberdanê (ya ku ew dikare biguhezîne) û veşartiyek nû ya serbestberdanê ya ku tê de nirxên nû û manîfestoyek amadekirî diafirîne.

Tişta berdanê agahdarî di derbarê berdanê de vedihewîne, ku li wir berdan sazkirinek taybetî ya nexşeyek binavkirî û nirxan e. Ev tişt metadata-asta jorîn di derbarê berdanê de vedibêje. Tişta berdanê li seranserê heyata serîlêdanê berdewam dike û xwediyê hemî razên guhertoya berdanê ye, û hem jî hemî tiştên ku rasterast ji hêla nexşeya Helm ve têne afirandin.

Guhertoya nehênî ya berdanê berdanek bi rêzek guhertoyan (sazkirin, nûvekirin, paşvexistin, jêbirin) re têkildar dike.

Di Helm 2 de, revîzyonek pir hevgirtî bûn. Bang helm install v1 hate afirandin, nûvekirina paşîn (nûvekirin) - v2, û hwd. Veşartina guhertoya serbestberdan û berdanê di nav tiştek yekane de ku wekî revîzyon tê zanîn hate hilweşandin. Guhertoyên wekî Tiller di heman navan de hatin hilanîn, ku tê vê wateyê ku her serbestberdan di warê navan de "gerdûnî" bû; di encamê de, tenê mînakek navî dikare were bikar anîn.

Di Helm 3 de, her serbestberdan bi yek an çend razên guhertoya berdanê ve girêdayî ye. Tişta berdanê her gav serbestberdana heyî ya ku li Kubernetes hatî bicîh kirin vedibêje. Her guhertoyek veşartî ya serbestberdanê tenê yek guhertoya wê berdanê vedibêje. Mînakî, nûvekirinek dê dizî guhertoyek nû ya berdanê biafirîne û dûv re tiştê berdanê biguhezîne da ku wê guhertoya nû destnîşan bike. Di doza vegerandinê de, hûn dikarin razên guhertoya berdana berê bikar bînin da ku berdanê bizivirînin rewşek berê.

Piştî ku Tiller tê terikandin, Helm 3 dikana daneyan di heman navan de wekî serbestberdanê vedike. Ev guhertin dihêle ku hûn nexşeyek bi heman navî berdanê li cîhek navek cûda saz bikin, û dane di navbera nûvekirin / nûvekirina komê de di etcd de têne tomar kirin. Mînakî, hûn dikarin WordPress-ê li cîhê navên "foo" û dûv re li cîhê navên "bar" saz bikin, û her du berdan dikarin bi navê "wordpress" werin navandin.

Guhertinên girêdayî nexşeyê

Nexşeyên pakkirî (bikaranîna helm package) ji bo karanîna bi Helm 2 re dikare bi Helm 3 re were saz kirin, di heman demê de xebata pêşkeftina nexşeyê bi tevahî hate sererast kirin, ji ber vê yekê divê hin guhertin bêne kirin da ku pêşveçûna nexşeyê bi Helm 3 re berdewam bike. Bi taybetî, pergala rêveberiya girêdayîbûna nexşeyê guherî.

Pergala rêveberiya pêwendiya nexşeyê ji vir çû requirements.yaml и requirements.lock li ser Chart.yaml и Chart.lock. Ev tê vê wateyê ku nexşeyên ku ferman bikar anîne helm dependency, hin sazûman hewce dike ku di Helm 3 de bixebite.

Ka em li mînakekê binêrin. Werin em di Helm 2 de pêwendiyek li nexşeyê zêde bikin û bibînin ka dema ku diçin Helm 3 çi diguhere.

Li Helm 2 requirements.yaml wiha xuya bû:

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

Di Helm 3 de, heman girêdan dê di we de were xuyang kirin Chart.yaml:

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

Nexşe hîn jî têne dakêşandin û di pelrêçê de têne danîn charts/, ji ber vê yekê binegrafî (binegrafî), di katalogê de derewan dike charts/, dê bê guhertin berdewam bike.

Danasîna nexşeyên pirtûkxaneyê

Helm 3 çînek nexşeyan bi navê nexşeyên pirtûkxaneyê piştgirî dike (grafika pirtûkxaneyê). Ev nexşe ji hêla nexşeyên din ve tê bikar anîn, lê bi serê xwe ti hunerên berdanê naafirîne. Şablonên nexşeya pirtûkxaneyê tenê dikarin hêmanan ragihînin define. Naveroka din bi hêsanî tê paşguh kirin. Ev rê dide bikarhêneran ku perçeyên kodê yên ku dikarin di gelek nexşeyan de werin bikar anîn ji nû ve bikar bînin û parve bikin, bi vî rengî ji dubarekirinê dûr bixin û bi prensîbê ve girêdayî bin. ZÛHA.

Di beşê de nexşeyên pirtûkxaneyê têne diyar kirin dependencies di dosyayê de Chart.yaml. Sazkirin û birêvebirina wan ji nexşeyên din ne cûda ye.

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

Em ji dozên karanîna ku ev pêkhate dê ji bo pêşdebirên nexşeyê veke, û hem jî pratîkên çêtirîn ên ku dikarin ji nexşeyên pirtûkxaneyê derkevin, kêfxweş in.

Çi ye?

Helm 3.0.0-alpha.1 bingehek e ku em li ser wê dest bi avakirina guhertoyek nû ya Helm dikin. Di gotarê de min hin taybetmendiyên balkêş ên Helm 3 diyar kir. Gelek ji wan hîn di qonaxên destpêkê yên pêşveçûnê de ne û ev normal e; Mebesta serbestberdana alpha ceribandina ramanê, berhevkirina bertekên ji bikarhênerên destpêkê, û piştrastkirina texmînên me ye.

Gava ku guhertoya alpha serbest tê berdan (ji bîr nekin ku ev e berê bûye - nêzîkî. werger.), em ê dest bi qebûlkirina paçên Helm 3 ji civakê bikin. Pêdivî ye ku hûn bingehek bihêz biafirînin ku dihêle fonksiyonên nû werin pêşve xistin û pejirandin, û ji bo bikarhêneran bi vekirina bilêtan û sererastkirinan di pêvajoyê de hest bikin.

Min hewl da ku hin çêtirkirinên girîng ên ku di Helm 3 de têne ronî kirin, lê ev navnîş bi tu awayî ne tije ye. Nexşeya rê ya bêkêmasî ya Helm 3 taybetmendiyên wekî stratejiyên nûvekirina çêtirîn, entegrasyona kûrtir bi qeydên OCI re, û karanîna şemayên JSON-ê ji bo rastkirina nirxên nexşeyê vedihewîne. Em her weha plan dikin ku bingeha kodê paqij bikin û beşên wê yên ku sê salên borî hatine paşguh kirin nûve bikin.

Heke hûn hest dikin ku me tiştek ji bîr kiriye, em hez dikin ku ramanên we bibihîzin!

Tevlî nîqaşa li ser me bibin Kanalên Slack:

  • #helm-users ji bo pirs û danûstandina hêsan bi civakê re;
  • #helm-dev ji bo nîqaşkirina daxwazên vekişînê, kod û xeletiyan.

Her weha hûn dikarin roja Pêncşemê di demjimêr 19:30 MSK de di Bangên Pêşdebirên Giştî yên me yên heftane de sohbet bikin. Civîn ji bo nîqaşkirina mijarên ku pêşdebirên sereke û civak li ser dixebitin, û her weha mijarên nîqaşê yên hefteyê têne veqetandin. Her kes dikare beşdarî civînê bibe û beşdarî civînê bibe. Girêdana di kanala Slack de heye #helm-dev.

PS ji wergêr

Li ser bloga me jî bixwînin:

Source: www.habr.com

Add a comment