Sethula i-Helm 3

Sethula i-Helm 3

Qaphela. transl.: Umhla ziyi-16 kuMeyi walo nyaka uphawula ingqopha-mlando ebalulekile ekuthuthukisweni komphathi wephakheji we-Kubernetes - Helm. Ngalolu suku, kwethulwa ukukhishwa kwe-alpha kokuqala kwenguqulo enkulu yesikhathi esizayo yephrojekthi - 3.0. Ukukhishwa kwayo kuzoletha izinguquko ezibalulekile nesele zilindelwe isikhathi eside ku-Helm, abaningi emphakathini waseKubernetes abanethemba elikhulu ngakho. Thina ngokwethu singomunye walokhu, njengoba sisebenzisa i-Helm ngenkuthalo ukuthunyelwa kwesicelo: siyihlanganise nethuluzi lethu lokuqalisa i-CI/CD. i-werf futhi ngezikhathi ezithile senza umnikelo wethu ekuthuthukisweni komfula okhuphuka nomfula. Lokhu kuhumusha kuhlanganisa amanothi angu-7 asuka kubhulogi esemthethweni ye-Helm, anikezelwe ekukhishweni kwe-alpha kokuqala kwe-Helm 3 futhi akhulume ngomlando wephrojekthi kanye nezici eziyinhloko ze-Helm 3. Umbhali wabo ngu-Matt "bacongobbler" Fisher, isisebenzi se-Microsoft. futhi omunye wabanakekeli abakhulu beHelm.

Ngo-Okthoba 15, 2015, iphrojekthi manje eyaziwa ngokuthi i-Helm yazalwa. Ngemva konyaka nje yasungulwa, umphakathi we-Helm wajoyina i-Kubernetes, ngenkathi usebenza ngenkuthalo ku-Helm 2. NgoJuni 2018, i-Helm. wajoyina i-CNCF njengephrojekthi ekhulayo (yokufukamela). Phambili ngokushesha kuze kube manje, futhi ukukhishwa kokuqala kwe-alpha kwe-Helm 3 entsha kusendleleni. (lokhu kukhululwa isivele yenzekile maphakathi noMeyi - cishe. transl.).

Kulesi siqeshana, ngizokhuluma ngokuthi konke kwaqala kuphi, ukuthi sifike kanjani lapho esikhona namuhla, ngethule ezinye zezici eziyingqayizivele ezitholakala ekukhishweni kwe-alpha kokuqala kweHelm 3, futhi ngichaze ukuthi sihlela kanjani ukuqhubekela phambili.

Isifinyezo:

  • umlando wokudalwa kweHelm;
  • ukuvalelisa kuTiller;
  • amaqoqo eshadi;
  • ukuphathwa kokukhululwa;
  • izinguquko ekuncikeni kweshadi;
  • amashadi omtapo wolwazi;
  • yini elandelayo?

Umlando weHelm

Ukuzalwa

I-Helm 1 iqale njengephrojekthi yomthombo ovulekile eyakhiwe ngu-Deis. Sasiyisiqalo esincane amuncwa IMicrosoft entwasahlobo ka-2017. Enye iphrojekthi yethu yomthombo ovulekile, ebizwa nangokuthi i-Deis, yayinethuluzi deisctl, eyasetshenziswa (phakathi kwezinye izinto) ukufaka nokusebenzisa inkundla ye-Deis kuyo Iqoqo le-Fleet. Ngaleso sikhathi, iFleet yayingenye yezinkundla zokuqala zokucula iziqukathi.

Maphakathi no-2015, sanquma ukushintsha inkambo futhi sasusa i-Deis (ngaleso sikhathi eyayiqanjwe kabusha ngokuthi i-Deis Workflow) isuka ku-Fleet yayisa e-Kubernetes. Enye yezokuqala ezaklanywa kabusha kwakuyithuluzi lokufaka. deisctl. Siyisebenzisele ukufaka nokuphatha i-Deis Workflow kuqoqo le-Fleet.

I-Helm 1 idalwe ngomfanekiso wabaphathi bephakheji abadumile njenge-Homebrew, i-apt ne-yum. Inhloso yayo enkulu bekuwukwenza lula imisebenzi efana nokupakisha nokufaka izinhlelo zokusebenza ku-Kubernetes. IHelm yethulwa ngokusemthethweni ngo-2015 engqungqutheleni yeKubeCon eSan Francisco.

Umzamo wethu wokuqala nge-Helm wasebenza, kodwa awuzange ube ngaphandle kokulinganiselwa okukhulu. Uthathe isethi ye-Kubernetes manifest, enongiwe ngamajeneretha njengamabhulokhi e-YAML ezethulo. (indaba yokuqala)*, futhi yalayisha imiphumela ku-Kubernetes.

* Qaphela. transl.: Kusukela enguqulweni yokuqala ye-Helm, i-syntax ye-YAML yakhethwa ukuchaza izinsiza ze-Kubernetes, futhi izifanekiso ze-Jinja nemibhalo ye-Python yasekelwa lapho kubhalwa izilungiselelo. Sibhale okwengeziwe ngalokhu kanye nesakhiwo senguqulo yokuqala ye-Helm ngokujwayelekile esahlukweni esithi β€œUmlando Omfishane We-Helm” le nto.

Isibonelo, ukuze umiselele inkambu kufayela le-YAML, bekufanele wengeze okulandelayo ku-manifest:

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

Kuhle ukuthi izinjini zesifanekiso zikhona namuhla, akunjalo?

Ngezizathu eziningi, lesi sifaki sangaphambi kwesikhathi se-Kubernetes sidinga uhlu olunamakhodi aqinile lwamafayela e-manifest futhi senza ukulandelana okuncane, okugxilile kuphela kwemicimbi. Kwakunzima kakhulu ukusebenzisa kangangokuthi ithimba le-Deis Workflow R&D libe nesikhathi esinzima lapho lizama ukudlulisa umkhiqizo walo kule nkundla - nokho, imbewu yombono yayivele itshaliwe. Umzamo wethu wokuqala kwaba yithuba elihle lokufunda: sabona ukuthi sasikushisekela ngempela ukudala amathuluzi e-pragmatic axazulula izinkinga zansuku zonke kubasebenzisi bethu.

Ngokusekelwe kokuhlangenwe nakho kwamaphutha adlule, saqala ukuthuthukisa i-Helm 2.

Ukwenza i-Helm 2

Ekupheleni kuka-2015, ithimba le-Google lisithinte. Bebesebenzela ithuluzi elifanayo le-Kubernetes. Umphathi Wokusebenzisa we-Kubernetes kwakuyimbobo yethuluzi elikhona elasetshenziswa ku-Google Cloud Platform. Babuza: β€œSingathanda yini ukuchitha izinsuku ezimbalwa sixoxa ngokufana nokungafani?”

NgoJanuwari 2016, ithimba le-Helm kanye ne-Deployment Manager lahlangana e-Seattle ukushintshanisa imibono. Izingxoxo ziphele ngohlelo olunamandla: ukuhlanganisa womabili amaphrojekthi ukudala i-Helm 2. Kanye no-Deis kanye ne-Google, abafana abavela I-SkippBox (manje ingxenye ye-Bitnami - cishe. transl.), futhi saqala ukusebenza kuHelm 2.

Besifuna ukugcina i-Helm isebenziseka kalula, kodwa engeza okulandelayo:

  • izifanekiso zeshadi zokwenza ngokwezifiso;
  • ukuphathwa kwe-intra-cluster kwamaqembu;
  • inqolobane yeshadi elisezingeni lomhlaba;
  • ifomethi yephakheji ezinzile enenketho yesiginesha;
  • ukuzibophezela okuqinile enguqulweni ye-semantic kanye nokugcina ukuhambisana okubuyela emuva phakathi kwezinguqulo.

Ukuze kuzuzwe lezi zinhloso, into yesibili yengezwe ku-Helm ecosystem. Le ngxenye ye-intra-cluster yayibizwa nge-Tiller futhi yayinomthwalo wemfanelo wokufaka amashadi e-Helm nokuwaphatha.

Selokhu kwakhululwa iHelm 2 ngo-2016, uKubernetes wengeze izinto ezintsha eziningi ezinkulu. Kwengezwe isilawuli sokufinyelela esisekelwe endimeni (I-RBAC), okwagcina kuthathelwe indawo Ukulawulwa Kwe-Attribute-Based Access Control (ABAC). Izinhlobo zezinsiza ezintsha zethulwa (Ukuthunyelwa kwakusekuyi-beta ngaleso sikhathi). Izincazelo Zensiza Yangokwezifiso (ekuqaleni ezazibizwa ngokuthi Izinsiza Zenkampani Yangaphandle noma ama-TPR) zasungulwa. Futhi okubaluleke kakhulu, isethi yemikhuba engcono kakhulu iye yavela.

Phakathi kwazo zonke lezi zinguquko, i-Helm iqhubekile nokusebenzela abasebenzisi be-Kubernetes ngokwethembeka. Ngemva kweminyaka emithathu kanye nezengezo eziningi ezintsha, kwacaca ukuthi kwase kuyisikhathi sokwenza izinguquko eziphawulekayo ku-codebase ukuze kuqinisekiswe ukuthi i-Helm ingaqhubeka nokuhlangabezana nezidingo ezikhulayo ze-ecosystem eguqukayo.

Ukuvalelisa kuTiller

Phakathi nokuthuthukiswa kwe-Helm 2, sethule i-Tiller njengengxenye yokuhlanganiswa kwethu Nomphathi Wokuthuma we-Google. I-Tiller idlale indima ebalulekile emaqenjini asebenza ngaphakathi kweqoqo elifanayo: ivumele ochwepheshe abahlukene abasebenzisa ingqalasizinda ukuthi bahlanganyele nesethi efanayo yokukhishwa.

Njengoba ukulawulwa kokufinyelela okusekelwe kundima (RBAC) kwenziwe ngokuzenzakalela ku-Kubernetes 1.6, ukusebenza no-Tiller ekukhiqizeni kwaba nzima kakhulu. Ngenxa yenani elikhulu lezinqubomgomo zokuphepha ezingaba khona, isikhundla sethu kube ngukunikeza ukucushwa okuvumayo ngokuzenzakalelayo. Lokhu kuvumele abasanda kuhlanganyela ukuthi bahlole i-Helm ne-Kubernetes ngaphandle kokuthi bangene kuzilungiselelo zokuphepha kuqala. Ngeshwa, lokhu kulungiselelwa kwemvume kunganikeza umsebenzisi uhla olubanzi kakhulu lwezimvume abengazidingi. Onjiniyela be-DevOps kanye ne-SRE kwadingeka bafunde izinyathelo ezengeziwe zokusebenza lapho befaka i-Tiller kuqoqo labaqashi abaningi.

Ngemva kokufunda ukuthi umphakathi wawusebenzisa kanjani i-Helm ezimeni ezithile, saqaphela ukuthi uhlelo lokuphatha ukukhululwa kuka-Tiller kwakungadingeki luthembele engxenyeni ye-intra-cluster ukuze kugcinwe isimo noma umsebenzi njengehabhu elimaphakathi lolwazi lokukhululwa. Kunalokho, singavele sithole ulwazi oluvela kuseva ye-Kubernetes API, sikhiqize ishadi ohlangothini lweklayenti, futhi sigcine irekhodi lokufakwa ku-Kubernetes.

Umgomo oyinhloko kaTiller wawungafinyelelwa ngaphandle kukaTiller, ngakho esinye sezinqumo zethu zokuqala mayelana neHelm 3 kwaba ukulahla ngokuphelele uTiller.

Njengoba u-Tiller engasekho, imodeli yezokuphepha ye-Helm yenziwe lula kakhulu. I-Helm 3 manje isekela zonke izindlela zokuphepha zesimanje, ubunikazi, nezindlela zokugunyaza ze-Kubernetes yamanje. Izimvume ze-Helm zinqunywa kusetshenziswa kubeconfig ifayela. Abalawuli beqoqo bangakhawulela amalungelo omsebenzisi kunoma yiliphi izinga lobumbudumbudu. Ukukhishwa kusalondolozwa ngaphakathi kweqoqo, futhi konke okunye ukusebenza kwe-Helm kuhlala kunjalo.

Amakhosombe eshadi

Ezingeni eliphezulu, inqolobane yeshadi indawo lapho amashadi angagcinwa futhi kwabelwane khona. Iklayenti le-Helm liyapakisha futhi lithumele amashadi endaweni yokugcina. Kalula nje, inqolobane yamashadi iyiseva yakudala ye-HTTP enefayela elithi index.yaml kanye namanye amashadi apakishiwe.

Yize kunezinzuzo ezithile zokuhlangana kwe-Chart Repository API nezidingo eziyisisekelo zokulondoloza, kuphinde kube nokubi okumbalwa:

  • Amakhosombe eshadi awahambisani nokusetshenziswa okuningi kokuvikela okudingekayo endaweni yokukhiqiza. Ukuba ne-API ejwayelekile yokuqinisekisa nokugunyazwa kubaluleke kakhulu kuzimo zokukhiqiza.
  • Amathuluzi okusebenza kweshadi le-Helm, asetshenziselwa ukusayina, ukuqinisekisa ubuqotho nokuvela kweshadi, ayingxenye yokuzikhethela yenqubo yokushicilela Ishadi.
  • Ezimeni zabasebenzisi abaningi, ishadi elifanayo lingalayishwa ngomunye umsebenzisi, okuphinda kabili inani lesikhala esidingekayo ukuze kugcinwe okuqukethwe okufanayo. Amakhosombe ahlakaniphile athuthukisiwe ukuze axazulule le nkinga, kodwa awayona ingxenye yokucaciswa okusemthethweni.
  • Ukusebenzisa ifayela lenkomba elilodwa ukusesha, ukugcina imethadatha, kanye nokubuyisa amashadi kwenze kwaba nzima ukuthuthukisa ukusetshenziswa okuphephile kwabasebenzisi abaningi.

Le phrojekthi I-Docker Distribution (eyaziwa nangokuthi i-Docker Registry v2) ilandela i-Docker Registry futhi empeleni isebenza njengesethi yamathuluzi okupakisha, ukuthumela, ukugcina nokuletha izithombe ze-Docker. Izinsizakalo eziningi zamafu ezinkulu zinikezela ngemikhiqizo esekwe ekusatshalalisweni. Ngenxa yalokhu kuqashelwa okwengeziwe, iphrojekthi Yokusabalalisa izuze eminyakeni yokuthuthukiswa, izinqubo ezihamba phambili zokuphepha, nokuhlolwa kwenkundla okuyenze yaba elinye lamaqhawe angacushiwe aphumelele kakhulu omhlaba womthombo ovulekile.

Kodwa bewazi yini ukuthi Iphrojekthi Yokusabalalisa iklanyelwe ukusabalalisa noma yiluphi uhlobo lokuqukethwe, hhayi nje izithombe zesiqukathi?

Sibonga imizamo Vula Isinyathelo Initiative (noma i-OCI), amashadi e-Helm angabekwa kunoma yisiphi isenzakalo Sokusabalalisa. Okwamanje, le nqubo ingokokuhlola. Ukwesekwa kokungena ngemvume nezinye izici ezidingekayo ukuze uthole i-Helm 3 ephelele kuwumsebenzi oqhubekayo, kodwa sijabule ukufunda kulokho okutholwe yi-OCI namathimba Okusabalalisa akwenzile eminyakeni edlule. Futhi ngokuqeqeshwa nokuqondisa kwabo, sifunda ukuthi kunjani ukusebenzisa isevisi etholakala kakhulu ngezinga.

Incazelo enemininingwane eyengeziwe yezinguquko ezizayo ezinqolobaneni zeshadi le-Helm iyatholakala isixhumanisi.

Ukuphathwa kokukhishwa

Ku-Helm 3, isimo sohlelo lokusebenza silandelelwa ngaphakathi kweqoqo ngepheya lezinto:

  • into yokukhulula - imele isibonelo sohlelo lokusebenza;
  • imfihlo yenguqulo yokukhishwa - imele isimo esifiswayo sohlelo lokusebenza endaweni ethile ngesikhathi (isibonelo, ukukhishwa kwenguqulo entsha).

Shayela helm install idala into yokukhishwa futhi ikhiphe imfihlo. Shaya ucingo helm upgrade idinga into yokukhishwa (engayishintsha) futhi idale imfihlo yenguqulo entsha equkethe amanani amasha kanye ne-manifest elungisiwe.

Into ekhishiwe iqukethe ulwazi mayelana nokukhishwa, lapho ukukhishwa kuwukufakwa okuthile kweshadi elishiwo ngamagama kanye namanani. Le nto ichaza imethadatha yezinga eliphezulu mayelana nokukhishwa. Into yokukhishwa iphikelela kuwo wonke umjikelezo wokuphila wohlelo lokusebenza futhi ungumnikazi wazo zonke izimfihlo zenguqulo yokukhishwa, kanye nazo zonke izinto ezidalwe ngokuqondile yishadi le-Helm.

Imfihlo yenguqulo yokukhishwa ihlobanisa ukukhishwa nochungechunge lwezibuyekezo (ukufakwa, izibuyekezo, ukubuyisela emuva, ukususwa).

Ku-Helm 2, ukubuyekezwa bekuhambisana kakhulu. Shaya ucingo helm install idalwe i-v1, isibuyekezo esilandelayo (ukuthuthukiswa) - v2, njalonjalo. Imfihlo yenguqulo yokukhishwa nekhishiwe igoqwe entweni eyodwa eyaziwa ngokuthi isibuyekezo. Ukubuyekezwa kwagcinwa endaweni yamagama efanayo nekaTiller, okusho ukuthi ukukhishwa ngakunye "kwakusemhlabeni wonke" ngokwendawo yamagama; ngenxa yalokho, isenzakalo esisodwa kuphela segama esingasetshenziswa.

Ku-Helm 3, ukukhishwa ngakunye kuhlotshaniswa nezimfihlo zenguqulo eyodwa noma ngaphezulu. Into yokukhishwa ihlala ichaza ukukhishwa kwamanje okufakwe ku-Kubernetes. Imfihlo yokukhishwa ngakunye ichaza inguqulo eyodwa kuphela yalokho kukhishwa. Ukuthuthukiswa, ngokwesibonelo, kuzodala imfihlo yenguqulo entsha bese kushintsha into yokukhishwa ukuze ikhombe kuleyo nguqulo entsha. Esimeni sokuhlehlisa, ungasebenzisa izimfihlo zenguqulo yangaphambilini ukuze ubuyisele ukukhishwa kusimo sangaphambilini.

Ngemuva kokuthi i-Tiller ilahliwe, i-Helm 3 igcina idatha yokukhulula endaweni yamagama efanayo nokukhululwa. Lolu shintsho likuvumela ukuthi ufake ishadi elinegama elifanayo lokukhishwa endaweni yamagama ehlukile, futhi idatha ilondolozwa phakathi kwezibuyekezo zeqoqo/ukuqalisa kabusha ku- etcd. Isibonelo, ungafaka i-WordPress endaweni yegama "foo" bese usesikhaleni segama "sebha", futhi kokubili ukukhishwa kungaqanjwa ngokuthi "wordpress".

Izinguquko kokuncika kweshadi

Amashadi apakishiwe (kusetshenziswa helm package) ukuze isetshenziswe ne-Helm 2 ingafakwa ne-Helm 3, nokho ukuhamba komsebenzi wokuthuthukiswa kweshadi kulungiswe ngokuphelele, ngakho-ke ezinye izinguquko kufanele zenziwe ukuze kuqhutshekwe nokuthuthukiswa kweshadi nge-Helm 3. Ikakhulukazi, uhlelo lokuphatha ukuncika kweshadi lushintshile.

Isistimu yokuphatha ukuncika kweshadi isukile requirements.yaml ΠΈ requirements.lock on Chart.yaml ΠΈ Chart.lock. Lokhu kusho ukuthi amashadi asebenzise umyalo helm dependency, idinga ukusetha okuthile ukuze isebenze ku-Helm 3.

Ake sibheke isibonelo. Ake sengeze ukuncika eshadini ku-Helm 2 futhi sibone ukuthi yiziphi izinguquko lapho uthuthela ku-Helm 3.

KuHelm 2 requirements.yaml kubukeke kanje:

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

Ku-Helm 3, ukuncika okufanayo kuzobonakala kuwe Chart.yaml:

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

Amashadi asalandiwe futhi abekwe ohlwini lwemibhalo charts/, kanjalo namashadi amancane (amashadi amancane), elele kukhathalogi charts/, izoqhubeka nokusebenza ngaphandle kwezinguquko.

Sethula Amashadi Elabhulali

I-Helm 3 isekela ikilasi lamashadi elibizwa ngokuthi amashadi omtapo wolwazi (ishadi lelabhulali). Leli shadi lisetshenziswa amanye amashadi, kodwa alidali noma yimaphi ama-artifact okukhululwa ngokwalo. Izifanekiso zeshadi lelabhulali zingaveza kuphela izici define. Okunye okuqukethwe kuzitshwa nje. Lokhu kuvumela abasebenzisi ukuthi baphinde basebenzise futhi babelane ngamazwibela ekhodi angasetshenziswa kuwo wonke amashadi amaningi, ngaleyo ndlela bagweme ukuphindaphinda futhi bahambisane nomgomo. Dry.

Amashadi welabhulali amenyezelwe esigabeni dependencies kufayela Chart.yaml. Ukuwafaka nokuwaphatha akuhlukile kwamanye amashadi.

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

Sijabule ngezimo zokusebenzisa le ngxenye ezovulelwa abathuthukisi beshadi, kanye nemikhuba engcono kakhulu engavela kumashadi welabhulali.

Yini okulandelayo?

I-Helm 3.0.0-alpha.1 iyisisekelo lapho siqala ukwakha khona inguqulo entsha ye-Helm. Esihlokweni ngichaze ezinye izici ezithakazelisayo zeHelm 3. Abaningi babo basesezigabeni zokuqala zokuthuthuka futhi lokhu kuvamile; Iphuzu lokukhishwa kwe-alpha ukuhlola umbono, ukuqoqa impendulo kubasebenzisi bokuqala, nokuqinisekisa ukucabangela kwethu.

Ngokushesha lapho inguqulo ye-alpha ikhishwa (khumbula ukuthi lokhu sekwenzekile - cishe. transl.), sizoqala ukwamukela amapeshi e-Helm 3 emphakathini. Udinga ukudala isisekelo esiqinile esivumela ukusebenza okusha ukuthi kuthuthukiswe futhi kwamukelwe, futhi ukuze abasebenzisi bazizwe behilelekile kule nqubo ngokuvula amathikithi nokwenza izilungiso.

Ngizamile ukugqamisa okunye ukuthuthuka okukhulu okuza ku-Helm 3, kodwa lolu hlu aluphelele. Umgwaqo ogcwele we-Helm 3 uhlanganisa izici ezifana namasu okubuyekeza athuthukisiwe, ukuhlanganiswa okujulile nokubhaliswa kwe-OCI, kanye nokusetshenziswa kwezikimu ze-JSON ukuze kuqinisekiswe amanani eshadi. Sihlela futhi ukuhlanza i-codebase futhi sibuyekeze izingxenye zayo ebezinganakiwe eminyakeni emithathu edlule.

Uma uzwa sengathi kukhona esikuphuthele, singathanda ukuzwa imicabango yakho!

Joyina ingxoxo yethu Iziteshi ezixegayo:

  • #helm-users imibuzo kanye nokuxhumana okulula nomphakathi;
  • #helm-dev ukuxoxa ngezicelo zokudonsa, amakhodi nezimbungulu.

Ungakwazi futhi ukuxoxa ezingcingweni zethu zamasonto onke zikanjiniyela Womphakathi ngoLwesine ngo-19:30 MSK. Imihlangano inikezelwe ekuxoxisaneni ngezindaba abathuthukisi abakhulu kanye nomphakathi abasebenza kuzo, kanye nezihloko zezingxoxo zeviki. Noma ubani angajoyina futhi abe nengxenye emhlanganweni. Isixhumanisi siyatholakala esiteshini se-Slack #helm-dev.

I-PS evela kumhumushi

Funda futhi kubhulogi yethu:

Source: www.habr.com

Engeza amazwana