Kuyambitsa Helm 3

Kuyambitsa Helm 3

Zindikirani. transl.: May 16 a chaka chino ndi chizindikiro chofunika kwambiri pa chitukuko cha phukusi woyang'anira Kubernetes - Helm. Patsiku lino, kutulutsidwa koyamba kwa alpha kwa mtundu waukulu wamtsogolo wa polojekitiyi - 3.0 - idaperekedwa. Kutulutsidwa kwake kudzabweretsa kusintha kwakukulu komanso komwe kukuyembekezeredwa kwa nthawi yayitali ku Helm, komwe ambiri mdera la Kubernetes ali ndi chiyembekezo chachikulu. Ife tokha ndife amodzi mwa izi, popeza timagwiritsa ntchito Helm mwachangu potumiza ntchito: taphatikiza mu chida chathu chothandizira CI/CD. werf ndipo nthawi ndi nthawi timathandiza pa chitukuko cha kumtunda. Kumasulira uku kumaphatikiza zolemba za 7 kuchokera ku blog ya Helm yovomerezeka, yomwe imaperekedwa ku kutulutsidwa kwa alpha koyamba kwa Helm 3 ndikulankhula za mbiri ya polojekitiyi ndi mbali zazikulu za Helm 3. Wolemba wawo ndi Matt "bacongobbler" Fisher, wogwira ntchito ku Microsoft. ndi m'modzi mwa osunga makiyi a Helm.

Pa Okutobala 15, 2015, ntchito yomwe tsopano imadziwika kuti Helm idabadwa. Patangotha ​​chaka chimodzi chikhazikitsidwe, gulu la Helm linagwirizana ndi Kubernetes, pamene likugwira ntchito mwakhama pa Helm 2. Mu June 2018, Helm. adalowa mu CNCF monga pulojekiti yotukuka (yokulitsa). Mofulumira mpaka pano, ndipo kutulutsidwa koyamba kwa alpha kwa Helm 3 yatsopano kuli m'njira. (kumasulidwa uku zachitika kale m'katikati mwa Meyi - pafupifupi. transl.).

Muchidutswa ichi, ndilankhula za komwe zidayambira, momwe tidafikira komwe tili lero, ndikuwonetsa zina mwazinthu zapadera zomwe zikupezeka pakutulutsidwa kwa alpha koyamba kwa Helm 3, ndikufotokozera momwe timakonzekera kupita patsogolo.

Chidule:

  • mbiri ya kulengedwa kwa Helm;
  • kutsanzikana mwachikondi kwa Tiller;
  • ma chart repositories;
  • kasamalidwe ka kumasulidwa;
  • kusintha kwa kudalira ma chart;
  • ma chart a library;
  • chotsatira ndi chiyani?

Mbiri ya Helm

Kubadwa

Helm 1 idayamba ngati projekiti ya Open Source yopangidwa ndi Deis. Tinali oyambira pang'ono kutengeka Microsoft mu kasupe 2017. Ntchito yathu ina ya Open Source, yotchedwanso Deis, inali ndi chida deisctl, yomwe idagwiritsidwa ntchito (mwa zina) kukhazikitsa ndikugwiritsa ntchito nsanja ya Deis mu Gulu la Fleet. Panthawiyo, Fleet inali imodzi mwamapulatifomu oyambirira oimba nyimbo.

Pakati pa 2015, tinaganiza zosintha njira ndikusamutsa Deis (panthawiyo adatchedwa Deis Workflow) kuchoka ku Fleet kupita ku Kubernetes. Chimodzi mwa zoyamba kukonzedwanso chinali chida choyikapo. deisctl. Tidagwiritsa ntchito kukhazikitsa ndi kuyang'anira Deis Workflow mu gulu la Fleet.

Helm 1 idapangidwa m'chifanizo cha oyang'anira phukusi otchuka monga Homebrew, apt ndi yum. Cholinga chake chachikulu chinali kupeputsa ntchito monga kuyika ndikuyika mapulogalamu pa Kubernetes. Helm idakhazikitsidwa mwalamulo mu 2015 pamsonkhano wa KubeCon ku San Francisco.

Kuyesera kwathu koyamba ndi Helm kunagwira ntchito, koma sizinali zopanda malire. Adatenga zowonetsera za Kubernetes, zokongoletsedwa ndi ma jenereta ngati zoyambira za YAML. (chinthu choyambirira)*, ndikuyika zotsatira ku Kubernetes.

* Zindikirani. transl.: Kuchokera ku mtundu woyamba wa Helm, mawu a YAML adasankhidwa kuti afotokoze zida za Kubernetes, ndipo ma tempuleti a Jinja ndi zolemba za Python zidathandizidwa polemba masinthidwe. Tidalemba zambiri za izi komanso kapangidwe kake ka Helm koyamba mumutu wakuti "Mbiri Yachidule ya Helm" zinthu izi.

Mwachitsanzo, kuti musinthe gawo mufayilo ya YAML, mumayenera kuwonjezera zomanga zotsatirazi ku chiwonetserochi:

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

Ndizosangalatsa kuti injini zama template zilipo lero, sichoncho?

Pazifukwa zambiri, woyikira woyamba wa Kubernetes amafunikira mndandanda wamafayilo owoneka bwino ndipo amangopanga zochitika zazing'ono, zokhazikika. Zinali zovuta kugwiritsa ntchito kuti gulu la Deis Workflow R & D linali lovuta pamene likuyesera kusamutsa mankhwala awo ku nsanja iyi - komabe, mbewu za lingalirozo zinali zitafesedwa kale. Kuyesa kwathu koyamba kunali mwayi wabwino wophunzira: tinazindikira kuti tinali okonda kwambiri kupanga zida za pragmatic zomwe zimathetsa mavuto a tsiku ndi tsiku kwa ogwiritsa ntchito.

Kutengera zomwe zidachitika kale, tinayamba kupanga Helm 2.

Kupanga Helm 2

Kumapeto kwa 2015, gulu la Google lidalumikizana nafe. Ankagwiritsa ntchito chida chofanana cha Kubernetes. Deployment Manager wa Kubernetes anali doko la chida chomwe chidagwiritsidwa ntchito pa Google Cloud Platform. β€œKodi tingakonde,” iwo anafunsa motero, β€œkucheza kwa masiku angapo kukambitsirana kufanana ndi kusiyana kwake?”

Mu Januware 2016, magulu a Helm ndi Deployment Manager adakumana ku Seattle kuti asinthane malingaliro. Zokambiranazo zinatha ndi dongosolo lofuna: kuphatikiza mapulojekiti onse kuti apange Helm 2. Pamodzi ndi Deis ndi Google, anyamata ochokera SkippBox (tsopano gawo la Bitnami - pafupifupi transl.), ndipo tinayamba kugwira ntchito pa Helm 2.

Tinkafuna kuti Helm ikhale yosavuta kugwiritsa ntchito, koma onjezani izi:

  • ma templates a chart kuti musinthe;
  • kasamalidwe ka magulu amagulu;
  • malo osungiramo ma chart padziko lonse lapansi;
  • mawonekedwe okhazikika a phukusi ndi njira yosayina;
  • kudzipereka kwakukulu pakumasulira kwa semantic ndikusunga kuyanjana kwambuyo pakati pa mitundu.

Kuti mukwaniritse zolingazi, chinthu chachiwiri chawonjezeredwa ku chilengedwe cha Helm. Chigawo chapakati-gulu ichi chimatchedwa Tiller ndipo chinali ndi udindo woyika ma chart a Helm ndikuwongolera.

Kuyambira kutulutsidwa kwa Helm 2 mu 2016, Kubernetes adawonjezera zatsopano zingapo. Kuwonjezeredwa kotengera maudindo (Mtengo wa RBAC), yomwe pamapeto pake idalowa m'malo mwa Attribute-Based Access Control (ABAC). Mitundu yatsopano yazithandizo idayambitsidwa (Zotumiza zinali zikadali mu beta panthawiyo). Tanthauzo la Custom Resource (poyamba linkatchedwa Third Party Resources kapena TPRs) linapangidwa. Ndipo chofunika kwambiri, njira zabwino kwambiri zawonekera.

Pakati pa zosintha zonsezi, Helm adapitilizabe kutumikira ogwiritsa ntchito Kubernetes mokhulupirika. Pambuyo pa zaka zitatu ndi zowonjezera zambiri zatsopano, zinali zoonekeratu kuti inali nthawi yoti asinthe kwambiri codebase kuti atsimikizire kuti Helm akhoza kupitiriza kukwaniritsa zosowa zomwe zikukula za chilengedwe.

Kutsanzikana mwachikondi kwa Tiller

Popanga Helm 2, tidawonetsa Tiller ngati gawo la kuphatikiza kwathu ndi Google Deployment Manager. Tiller adachita gawo lofunikira kwa magulu omwe amagwira ntchito mgulu limodzi: adalola akatswiri osiyanasiyana omwe amagwiritsa ntchito zomangamanga kuti agwirizane ndi zotulutsa zomwezo.

Popeza kuti kuwongolera kogwiritsa ntchito gawo (RBAC) kudathandizidwa mwachisawawa ku Kubernetes 1.6, kugwira ntchito ndi Tiller pakupanga kunakhala kovuta kwambiri. Chifukwa cha kuchuluka kwa ndondomeko zachitetezo zomwe zingatheke, udindo wathu wakhala wopereka masinthidwe ololedwa mwachisawawa. Izi zinalola oyambitsa kumene kuyesa Helm ndi Kubernetes popanda kulowa m'malo otetezedwa poyamba. Tsoka ilo, kasinthidwe ka chilolezochi atha kupatsa wogwiritsa ntchito zilolezo zambiri zomwe sanafune. Mainjiniya a DevOps ndi SRE adayenera kuphunzira njira zina zogwirira ntchito pokhazikitsa Tiller m'gulu la anthu ambiri.

Titaphunzira momwe anthu ammudzi amagwiritsira ntchito Helm pazochitika zinazake, tinazindikira kuti njira yoyendetsera kumasulidwa kwa Tiller sinafunikire kudalira gawo la intra-cluster kuti likhalebe ndi boma kapena ntchito monga likulu lapakati kuti mudziwe zambiri. M'malo mwake, titha kungolandira zambiri kuchokera ku seva ya Kubernetes API, kupanga tchati kumbali ya kasitomala, ndikusunga mbiri yakukhazikitsa ku Kubernetes.

Cholinga chachikulu cha Tiller chikadatheka popanda Tiller, kotero chimodzi mwazosankha zathu zoyamba za Helm 3 chinali kusiya kwathunthu Tiller.

Ndi Tiller atapita, mtundu wachitetezo wa Helm wasinthidwa kwambiri. Helm 3 tsopano imathandizira chitetezo chamakono, chidziwitso, ndi njira zololeza za Kubernetes zamakono. Zilolezo za helm zimatsimikiziridwa pogwiritsa ntchito kubeconfig. Oyang'anira Cluster amatha kuletsa ufulu wa ogwiritsa ntchito pamlingo uliwonse wa granularity. Zotulutsidwa zimasungidwabe mgululi, ndipo magwiridwe antchito onse a Helm amakhalabe osasunthika.

Zosungiramo ma chart

Pamwamba, malo osungiramo tchati ndi malo omwe ma chart amatha kusungidwa ndikugawidwa. Makasitomala a Helm amanyamula ndikutumiza ma chart kumalo osungirako. Mwachidule, malo osungiramo ma chart ndi seva ya HTTP yakale yokhala ndi index.yaml file ndi ma chart opakidwa.

Ngakhale pali zabwino zina kuti Charts Repository API ikukwaniritsa zofunika kwambiri zosungirako, palinso zovuta zina:

  • Zosungira ma chart sizigwirizana ndi machitidwe ambiri achitetezo omwe amafunikira popanga. Kukhala ndi API yokhazikika yotsimikizira ndi kuvomereza ndikofunikira kwambiri pazopanga.
  • Zida zoyambira tchati za Helm, zomwe zimagwiritsidwa ntchito kusaina, kutsimikizira kukhulupirika ndi chiyambi cha tchati, ndi gawo losasankha la ndondomeko yosindikiza Tchati.
  • Muzochitika za anthu ambiri, tchati chomwecho chikhoza kuikidwa ndi wogwiritsa ntchito wina, kuwirikiza kawiri kuchuluka kwa malo ofunikira kuti asunge zomwezo. Malo osungira anzeru apangidwa kuti athetse vutoli, koma sali gawo lachidziwitso chokhazikika.
  • Kugwiritsa ntchito fayilo imodzi yolozera posaka, kusunga metadata, ndi kupeza ma chart kwapangitsa kuti zikhale zovuta kupanga zotetezedwa za ogwiritsa ntchito ambiri.

Ntchitoyi Kugawa kwa Docker (yemwe amadziwikanso kuti Docker Registry v2) ndiye wolowa m'malo wa Docker Registry ndipo amakhala ngati zida zonyamula, kutumiza, kusunga ndi kutumiza zithunzi za Docker. Ntchito zambiri zamtambo zazikulu zimapereka zinthu zochokera ku Distribution. Chifukwa cha chidwi chowonjezereka ichi, pulojekiti ya Distribution yapindula ndi zaka zambiri zowonjezera, njira zabwino zotetezera chitetezo, ndi kuyesa kumunda zomwe zapangitsa kuti ikhale imodzi mwa anthu opambana kwambiri omwe sanatchulidwe pa Open Source world.

Koma kodi mumadziwa kuti Distribution Project idapangidwa kuti igawane zamtundu uliwonse, osati zithunzi zongotengera?

Chifukwa cha khama Tsegulani Chidebe Initiative (kapena OCI), ma chart a Helm amatha kuyikidwa pamwambo uliwonse wa Distribution. Pakalipano, njirayi ndi yoyesera. Thandizo lolowera ndi zina zofunika pa Helm 3 yonse ndi ntchito yomwe ikuchitika, koma ndife okondwa kuphunzira kuchokera ku zomwe magulu a OCI ndi Distribution apeza pazaka zambiri. Ndipo kudzera mu upangiri wawo ndi chitsogozo, timaphunzira momwe zimakhalira kugwiritsa ntchito ntchito zomwe zimapezeka kwambiri pamlingo.

Kufotokozera mwatsatanetsatane za zosintha zomwe zikubwera m'mabuku a Helm chart zilipo kugwirizana.

Kasamalidwe kakumasulidwa

Mu Helm 3, mawonekedwe ogwiritsira ntchito amatsatiridwa mkati mwa tsango ndi zinthu ziwiri:

  • chinthu chomasulidwa - chimayimira chitsanzo cha ntchito;
  • chinsinsi cha mtundu wotulutsidwa - chimayimira zomwe mukufuna kugwiritsa ntchito panthawi inayake (mwachitsanzo, kutulutsidwa kwa mtundu watsopano).

Chovuta helm install imapanga chinthu chomasulidwa ndikutulutsa chinsinsi. Imbani helm upgrade imafuna chinthu chomasulidwa (chomwe chitha kusintha) ndikupanga chinsinsi chomasulidwa chatsopano chokhala ndi zatsopano komanso chiwonetsero chokonzekera.

Chinthu chotulutsidwa chili ndi zambiri za kutulutsidwa, komwe kumasulidwa ndikuyika tchati chotchulidwa ndi makonda. Chinthu ichi chikufotokozera metadata yapamwamba kwambiri yokhudza kutulutsidwa. Zomwe zimatulutsidwa zimapitilira nthawi yonse ya pulogalamuyo ndipo ndiye mwini wake wa zinsinsi zonse zotulutsidwa, komanso zinthu zonse zomwe zimapangidwa mwachindunji ndi tchati cha Helm.

Chinsinsi cha mtundu womasulidwa chimagwirizanitsa kutulutsidwa ndi zosintha zingapo (kukhazikitsa, zosintha, zobweza, kufufutidwa).

Mu Helm 2, kukonzanso kunali kofanana kwambiri. Imbani helm install adapanga v1, kusinthidwa kotsatira (kusintha) - v2, ndi zina zotero. Chinsinsi cha mtundu womasulidwa ndi kumasulidwa chaphwanyidwa kukhala chinthu chimodzi chodziwika kuti revision. Zokonzanso zinasungidwa mu malo omwewo monga Tiller, zomwe zikutanthauza kuti kumasulidwa kulikonse kunali "padziko lonse" malinga ndi malo a mayina; chifukwa chake, chitsanzo chimodzi chokha cha dzinali chingagwiritsidwe ntchito.

Mu Helm 3, kutulutsidwa kulikonse kumalumikizidwa ndi zinsinsi za mtundu umodzi kapena zingapo zotulutsidwa. Chinthu chomasulidwa nthawi zonse chimafotokoza kutulutsidwa komwe kwatumizidwa ku Kubernetes. Chinsinsi cha mtundu uliwonse wotulutsa chimalongosola mtundu umodzi wokha wa kutulutsidwako. Kukweza, mwachitsanzo, kumapanga chinsinsi cha mtundu watsopano womasulidwa ndikusintha chinthu chomasulidwa kuti chiloze ku mtundu watsopanowo. Ngati mukubweza, mutha kugwiritsa ntchito zinsinsi za mtundu wakale kuti mubwezeretse zomwe zidali kale.

Tiller atasiyidwa, Helm 3 imasunga zidziwitso m'malo omwewo monga kutulutsidwa. Kusintha kumeneku kumakupatsani mwayi woyika tchati chokhala ndi dzina lomwelo lotulutsa mumalo osiyanasiyana, ndipo deta imasungidwa pakati pa zosintha zamagulu / kuyambiranso mu etcd. Mwachitsanzo, mutha kukhazikitsa WordPress mu "foo" namespace kenako mu "bar" namespace, ndipo zotulutsidwa zonse zitha kutchedwa "wordpress".

Kusintha kwa kudalira ma chart

Ma chart odzaza (kugwiritsa ntchito helm package) kuti mugwiritse ntchito ndi Helm 2 ikhoza kuikidwa ndi Helm 3, komabe ndondomeko ya chitukuko cha tchati yasinthidwa kotheratu, kotero kusintha kwina kuyenera kupangidwa kuti mupitirize chitukuko cha tchati ndi Helm 3. Makamaka, ndondomeko yoyendetsera kudalira tchati yasintha.

Dongosolo la kasamalidwe ka tchati lachokapo requirements.yaml ΠΈ requirements.lock pa Chart.yaml ΠΈ Chart.lock. Izi zikutanthauza kuti ma chart omwe adagwiritsa ntchito lamulo helm dependency, amafuna kukhazikitsidwa kuti agwire ntchito mu Helm 3.

Tiyeni tione chitsanzo. Tiyeni tiwonjezere kudalira tchati mu Helm 2 ndikuwona zomwe zikusintha mukasamukira ku Helm 3.

Mu Helm 2 requirements.yaml zidawoneka chonchi:

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

Mu Helm 3, kudalira komweko kudzawonetsedwa mwa inu Chart.yaml:

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

Ma chart akadatsitsidwabe ndikuyikidwa m'ndandanda charts/, kotero subcharts (matchati), zomwe zili m'ndandanda charts/, idzapitirizabe kugwira ntchito popanda kusintha.

Kuyambitsa Ma chart a Library

Helm 3 imathandizira gulu la ma chart omwe amatchedwa ma chart a library (chati cha library). Tchatichi chimagwiritsidwa ntchito ndi ma chart ena, koma sichimapanga zotulutsa zilizonse zokha. Ma templates chart chart a library amatha kungolengeza zinthu define. Zina zimangonyalanyazidwa. Izi zimalola ogwiritsa ntchito kugwiritsanso ntchito ndikugawana mawu amomwe angagwiritsidwe ntchito pamachati angapo, potero amapewa kubwereza komanso kutsatira mfundoyi. youma.

Ma chart a library akulengezedwa mu gawoli dependencies mu file Chart.yaml. Kuyika ndikuwongolera sikusiyana ndi ma chart ena.

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

Ndife okondwa ndi momwe gawoli lidzatsegulire opanga ma chart, komanso njira zabwino zomwe zingatulukire pama chart a library.

Kodi yotsatira?

Helm 3.0.0-alpha.1 ndiye maziko omwe timayamba kupanga Helm yatsopano. M'nkhani yomwe ndinafotokozera zina zosangalatsa za Helm 3. Ambiri a iwo akadali kumayambiriro kwa chitukuko ndipo izi ndi zachilendo; Cholinga cha kutulutsidwa kwa alpha ndikuyesa lingaliro, kusonkhanitsa ndemanga kuchokera kwa ogwiritsa ntchito oyambirira, ndikutsimikizira zomwe timaganiza.

Mwamsanga pamene Baibulo la alpha limasulidwa (kumbukirani kuti izi ndi zachitika kale - pafupifupi. transl.), tiyamba kuvomereza zigamba za Helm 3 kuchokera kugulu. Muyenera kupanga maziko olimba omwe amalola kuti magwiridwe antchito atsopano apangidwe ndi kutengedwa, komanso kuti ogwiritsa ntchito amve kutenga nawo gawo potsegula matikiti ndikukonza.

Ndayesera kuwunikira zina mwazosintha zazikulu zomwe zikubwera ku Helm 3, koma mndandandawu siwokwanira. Msewu wathunthu wa Helm 3 umaphatikizapo zinthu monga njira zosinthira zosinthika, kuphatikiza mozama ndi zolembera za OCI, komanso kugwiritsa ntchito ma JSON schemas kutsimikizira tchati. Tikukonzekeranso kuyeretsa codebase ndikusintha magawo ake omwe adanyalanyazidwa kwa zaka zitatu zapitazi.

Ngati mukuona ngati taphonya chinachake, tikufuna kumva maganizo anu!

Lowani nawo pazokambirana zathu Njira zocheperako:

  • #helm-users pa mafunso ndi kulankhulana kosavuta ndi anthu ammudzi;
  • #helm-dev kukambirana zopempha kukoka, code ndi nsikidzi.

Mutha kuchezanso pama foni athu a mlungu ndi mlungu a Public Developer Lachinayi nthawi ya 19:30 MSK. Misonkhano imaperekedwa pokambirana nkhani zomwe otsogolera akuluakulu ndi anthu ammudzi akugwira ntchito, komanso mitu ya zokambirana za sabata. Aliyense akhoza kujowina ndi kutenga nawo mbali pamsonkhano. Ulalo ukupezeka mu njira ya Slack #helm-dev.

PS kuchokera kwa womasulira

Werenganinso pa blog yathu:

Source: www.habr.com

Kuwonjezera ndemanga