Chipangizo cha Helm ndi zovuta zake

Chipangizo cha Helm ndi zovuta zake
Malingaliro onyamula katundu wa typhon, Anton Swanepoel

Dzina langa ndine Dmitry Sugrobov, ndine wopanga ku Leroy Merlin. M'nkhaniyi ndikuuzani chifukwa chake Helm ikufunika, momwe imathandizira kugwira ntchito ndi Kubernetes, zomwe zasintha m'buku lachitatu, ndi momwe mungagwiritsire ntchito kukonzanso mapulogalamu popanga popanda nthawi.

Ichi ndi chidule chozikidwa pa zokamba pa msonkhano @Kubernetes Conference by Mail.ru Cloud Solutions - ngati simukufuna kuwerenga, onerani kanema.

Chifukwa chiyani timagwiritsa ntchito Kubernetes popanga

Leroy Merlin ndi mtsogoleri pamsika wogulitsa DIY ku Russia ndi Europe. Kampani yathu ili ndi otukula opitilira zana, ogwira ntchito mkati 33 komanso anthu ambiri omwe amayendera ma hypermarkets ndi tsamba lawebusayiti. Pofuna kuti onse asangalale, tinaganiza zotsatira njira zoyendetsera makampani. Pangani mapulogalamu atsopano pogwiritsa ntchito zomangamanga za microservice; gwiritsani ntchito zotengera kuti mulekanitse malo ndikuwonetsetsa kutumizidwa koyenera; ndikugwiritsa ntchito Kubernetes poyimba. Mtengo wogwiritsa ntchito oimba nyimbo umakhala wotsika mtengo kwambiri: chiwerengero cha akatswiri odziwa bwino ukadaulo chikukula pamsika, ndipo opereka chithandizo akuwoneka akupereka Kubernetes ngati ntchito.

Chilichonse chimene Kubernetes amachita, ndithudi, chikhoza kuchitika mwa njira zina, mwachitsanzo, pophimba Jenkins ena ndi docker-compose ndi zolemba, koma bwanji kusokoneza moyo ngati pali yankho lokonzekera ndi lodalirika? Ichi ndichifukwa chake tidabwera ku Kubernetes ndipo takhala tikuigwiritsa ntchito popanga kwa chaka tsopano. Pakali pano tili ndi magulu makumi awiri ndi anayi a Kubernetes, akale kwambiri omwe ali ndi zaka zopitirira chaka chimodzi, okhala ndi ma pod mazana awiri.

Themberero la mafayilo akulu a YAML ku Kubernetes

Kukhazikitsa microservice ku Kubernetes, tipanga mafayilo osachepera asanu a YAML: a Deployment, Service, Ingress, ConfigMap, Secrets - ndikuwatumiza ku gululo. Pa ntchito yotsatira tidzalemba phukusi lomwelo la jambs, ndi lachitatu tidzalemba lina, ndi zina zotero. Ngati tichulukitsa chiwerengero cha zikalata ndi chiwerengero cha malo, tidzapeza kale mazana a mafayilo, ndipo izi sizikuganizirabe malo osinthika.

Chipangizo cha Helm ndi zovuta zake
Adam Reese, woyang'anira wamkulu wa Helm, adayambitsa lingaliro la "Development Cycle ku Kubernetes", zomwe zikuwoneka ngati izi:

  1. Koperani YAML - koperani fayilo ya YAML.
  2. Matani YAML - ikani.
  3. Konzani ma indents - konzani ma indents.
  4. Bwerezani - kubwereza kachiwiri.

Njirayi imagwira ntchito, koma muyenera kukopera mafayilo a YAML nthawi zambiri. Kuti asinthe kuzungulira uku, Helm adapangidwa.

Helm ndi chiyani

Choyamba, Helm - woyang'anira phukusi, zomwe zimakuthandizani kupeza ndikuyika mapulogalamu omwe mukufuna. Kuti muyike, mwachitsanzo, MongoDB, simuyenera kupita patsamba lovomerezeka ndikutsitsa ma binaries, ingoyendetsani lamulo. helm install stable/mongodb.

Chachiwiri, Helm - injini ya template, imathandizira kugawa mafayilo. Tiyeni tibwererenso momwemo ndi mafayilo a YAML ku Kubernetes. Ndizosavuta kulemba fayilo yomweyo ya YAML, yonjezerani zosungirako, momwe Helm idzalowetsamo zikhalidwe. Ndiko kuti, m'malo mwa ma scaffolds ambiri, padzakhala ma tempuleti omwe mfundo zofunika zidzalowe m'malo mwa nthawi yoyenera.

Chachitatu, Helm - deployment master. Ndi iyo mutha kukhazikitsa, kubwezeretsa ndikusintha mapulogalamu. Tiyeni tiwone momwe tingachitire izi.

Chipangizo cha Helm ndi zovuta zake

Momwe mungagwiritsire ntchito Helm kutumiza mapulogalamu anu

Tiyeni tiyike kasitomala wa Helm pa kompyuta yanu, kutsatira wovomerezekayo malangizo. Kenako, tipanga gulu la mafayilo a YAML. M'malo motchula zamtengo wapatali, tidzasiya zosungiramo malo, zomwe Helm idzadzaza ndi zambiri mtsogolomu. Mafayilo otere amatchedwa Helm chart. Itha kutumizidwa kwa kasitomala wa Helm console m'njira zitatu:

  • onetsani chikwatu chokhala ndi ma templates;
  • sungani zosungidwazo mu .tar ndikulozerapo;
  • ikani template pamalo osungira akutali ndikuwonjezera ulalo ku chosungirako mu kasitomala wa Helm.

Mufunikanso fayilo yokhala ndi ma values ​​- values.yaml. Zomwe zili pamenepo zidzayikidwa mu template. Tiyeni tipangenso.

Chipangizo cha Helm ndi zovuta zake
Mtundu wachiwiri wa Helm uli ndi pulogalamu yowonjezera ya seva - Tiller. Imapachikidwa kunja kwa Kubernetes ndikudikirira zopempha kuchokera kwa kasitomala wa Helm, ndipo ikaitanidwa, imalowetsa zofunikira mu template ndikuzitumiza ku Kubernetes.

Chipangizo cha Helm ndi zovuta zake
Helm 3 ndiyosavuta: m'malo mokonza ma templates pa seva, chidziwitso tsopano chimakonzedwa kwathunthu kumbali ya kasitomala wa Helm ndikutumizidwa mwachindunji ku Kubernetes API. Kuphweka uku kumathandizira chitetezo chamagulu ndikuwongolera dongosolo lotulutsa.

Zonse zimagwira ntchito bwanji

Thamangani lamulo helm install. Tiyeni tisonyeze dzina la pulogalamu yotulutsidwa ndikupereka njira yopita ku values.yaml. Pamapeto pake tidzawonetsa malo omwe tchaticho chili ndi dzina la tchati. Mu chitsanzo, awa ndi "lmru" ndi "bestchart", motsatana.

helm install --name bestapp --values values.yaml lmru/bestchart

Lamulo likhoza kuchitidwa kamodzi kokha, pamene aphedwa kachiwiri m'malo mwake install kufunika kugwiritsa ntchito upgrade. Kuti mukhale ophweka, m'malo mwa malamulo awiri, mukhoza kuyendetsa lamulo upgrade ndi kiyi yowonjezera --install. Ikaperekedwa koyamba, Helm idzatumiza lamulo loti ayike kutulutsako, ndikukonzanso mtsogolo.

helm upgrade --install bestapp --values values.yaml lmru/bestchart

Zoyipa pakuyika mitundu yatsopano ya pulogalamu ndi Helm

Panthawiyi m'nkhaniyi, ndikusewera Amene Akufuna Kukhala Miliyoni ndi omvera, ndipo tikuganizira momwe tingapezere Helm kuti asinthe pulogalamu ya pulogalamuyi. Onerani kanemayo.

Pamene ndimaphunzira momwe Helm imagwirira ntchito, ndinadabwa ndi khalidwe lachilendo pamene ndikuyesera kukonzanso mapulogalamu oyendetsa mapulogalamu. Ndidasintha nambala yofunsira, ndidakweza chithunzi chatsopano ku registry ya Docker, nditumiza lamulo lotumiza - ndipo palibe chomwe chidachitika. M'munsimu muli njira zina zosapambana zosinthira mapulogalamu. Pophunzira mwatsatanetsatane aliyense wa iwo, mumayamba kumvetsetsa mawonekedwe a mkati mwa chidacho komanso zifukwa za khalidwe losadziwikiratu.

Njira 1. Osasintha zambiri kuyambira pakukhazikitsa komaliza

Monga akunena webusaitiyi Helm, "Ma chart a Kubernetes amatha kukhala akulu komanso ovuta, kotero Helm amayesa kuti asakhudze chilichonse." Chifukwa chake, ngati musintha mtundu waposachedwa wa chithunzi cha pulogalamuyo mu registry ya docker ndikuyendetsa lamulo helm upgrade, pamenepo palibe chimene chidzachitike. Helm adzaganiza kuti palibe chomwe chasintha ndipo palibe chifukwa chotumizira lamulo kwa Kubernetes kuti asinthe pulogalamuyi.

Apa ndi pansipa, tag yaposachedwa ikuwonetsedwa ngati chitsanzo. Mukatchula chizindikirochi, Kubernetes amatsitsa chithunzicho kuchokera ku registry ya docker nthawi zonse, mosasamala kanthu za parameter ya imagePullPolicy. Kugwiritsa ntchito kwaposachedwa kwambiri sikoyenera ndipo kumayambitsa zotsatira zoyipa.

Njira 2. Sinthani LABEL mu chithunzi

Monga zalembedwa chimodzimodzi zolemba, "Helm ingosintha pulogalamu ngati yasintha kuyambira pomwe idatulutsidwa komaliza." Kusankha koyenera pa izi kungawoneke ngati kukonzanso LABEL pachithunzi cha docker chomwe. Komabe, Helm sayang'ana pazithunzi zogwiritsira ntchito ndipo sadziwa za kusintha kulikonse kwa iwo. Chifukwa chake, pokonzanso zolemba pachithunzichi, Helm sangadziwe za iwo, ndipo lamulo losinthira ntchito silidzatumizidwa ku Kubernetes.

Njira 3: Gwiritsani ntchito kiyi --force

Chipangizo cha Helm ndi zovuta zake
Tiyeni titembenuzire ku zolemba ndikuyang'ana kiyi yofunikira. Mfungulo imamveka bwino kwambiri --force. Ngakhale dzina lodziwikiratu, khalidweli ndi losiyana ndi kuyembekezera. M'malo mokakamiza kusinthidwa kwa pulogalamu, cholinga chake chenicheni ndikubwezeretsa kumasulidwa komwe kuli mu FAILED status. Ngati simugwiritsa ntchito kiyi iyi, muyenera kuchita malamulowo motsatizana helm delete && helm install --replace. Ndibwino kugwiritsa ntchito kiyi m'malo mwake --force, yomwe imapangitsa kuti ma sequentials azitsatira malamulowa. Zambiri mu izi kukoka pempho. Kuti muwuze Helm kuti asinthe mtundu wa pulogalamuyo, mwatsoka, kiyi iyi sigwira ntchito.

Njira 4. Sinthani zilembo mwachindunji ku Kubernetes

Chipangizo cha Helm ndi zovuta zake
Kusintha chizindikiro mwachindunji mu tsango pogwiritsa ntchito lamulo kubectl edit - lingaliro loyipa. Izi zipangitsa kusagwirizana kwa chidziwitso pakati pa pulogalamu yomwe ikuyendetsa ndi yomwe idatumizidwa koyambirira. Makhalidwe a Helm pakutumizidwa pankhaniyi amasiyana ndi mawonekedwe ake: Helm 2 sichita chilichonse, ndipo Helm 3 idzatumiza mtundu watsopano wa pulogalamuyi. Kuti mumvetse chifukwa chake, muyenera kumvetsetsa momwe Helm imagwirira ntchito.

Kodi Helm amagwira ntchito bwanji?

Kuti mudziwe ngati pulogalamu yasintha kuyambira pomwe idatulutsidwa komaliza, Helm atha kugwiritsa ntchito:

  • kugwiritsa ntchito Kubernetes;
  • zatsopano zamtengo wapatali.yaml ndi tchati chamakono;
  • Zambiri zotulutsidwa za Helm.

Kuti mudziwe zambiri: Helm amasunga kuti zidziwitso zamkati za zotulutsidwa?Pochita lamulo helm history, tipeza zidziwitso zonse zamitundu yomwe idayikidwa pogwiritsa ntchito Helm.

Chipangizo cha Helm ndi zovuta zake
Palinso zambiri zatsatanetsatane za ma templates otumizidwa ndi mfundo zake. Titha kupempha:

Chipangizo cha Helm ndi zovuta zake
Mu mtundu wachiwiri wa Helm, chidziwitsochi chili pamalo omwewo pomwe Tiller akuyendetsa (kube-system mwachisawawa), mu ConfigMap, yolembedwa ndi "OWNER=TILLER":

Chipangizo cha Helm ndi zovuta zake
Pamene mtundu wachitatu wa Helm ukuwonekera, chidziwitsocho chinasunthira ku zinsinsi, ndi kumalo omwewo omwe ntchitoyo ikugwira ntchito. Chifukwa cha izi, zinakhala zotheka kuyendetsa mapulogalamu angapo nthawi imodzi m'malo osiyanasiyana okhala ndi dzina lotulutsa lomwe. M'gulu lachiwiri linali mutu waukulu pamene malo a mayina ali paokha koma amatha kukhudza wina ndi mzake.

Chipangizo cha Helm ndi zovuta zake

Helm yachiwiri, poyesa kumvetsetsa ngati kusinthidwa kukufunika, imagwiritsa ntchito magwero awiri okha a chidziwitso: zomwe zaperekedwa kwa izo tsopano, ndi zamkati za zotulutsidwa, zomwe zili mu ConfigMap.

Chipangizo cha Helm ndi zovuta zake
Helm yachitatu imagwiritsa ntchito njira yophatikizira njira zitatu: kuwonjezera pa chidziwitsocho, imaganiziranso ntchito yomwe ikugwira ntchito pakali pano ku Kubernetes.

Chipangizo cha Helm ndi zovuta zake
Pachifukwa ichi, Helm wakale sangachite kalikonse, popeza samaganizira zambiri zamagwiritsidwe ntchito mgululi, koma Helm 3 ilandila zosintha ndikutumiza pulogalamu yatsopano kuti itumizidwe.

Njira 5. Gwiritsani ntchito --recreate-pods switch

Ndi kiyi --recreate-pods mutha kukwaniritsa zomwe munakonza poyambirira kuti mukwaniritse ndi kiyi --force. Zotengerazo ziyambiranso ndipo, molingana ndi chithunziPullPolicy: Nthawi zonse mfundo za tag yaposachedwa (zambiri pa izi m'munsimu pamwambapa), Kubernetes adzatsitsa ndikukhazikitsa mtundu watsopano wa chithunzicho. Izi sizingachitike m'njira yabwino kwambiri: osaganizira za StrategyType of deployment, idzazimitsa mwadzidzidzi zochitika zonse zakale ndikuyamba kuyambitsa zatsopano. Panthawi yoyambiranso, dongosololi silingagwire ntchito, ogwiritsa ntchito adzavutika.

Ku Kubernetes komweko, vuto lofananalo linaliponso kwa nthawi yayitali. Ndipo tsopano, zaka 4 pambuyo kutsegula Nkhani, vuto lakonzedwa, ndipo kuyambira ndi mtundu 1.15 wa Kubernetes, kuthekera koyambitsanso ma pods kumawonekera.

Helm amangozimitsa mapulogalamu onse ndikuyambitsa zida zatsopano pafupi. Simungathe kuchita izi popanga, kuti musayambitse nthawi yogwiritsira ntchito. Izi zimangofunika pazosowa zachitukuko ndipo zitha kuchitika m'malo a siteji.

Momwe mungasinthire mtundu wa pulogalamuyo pogwiritsa ntchito Helm?

Tidzasintha zomwe zimatumizidwa ku Helm. Nthawi zambiri, izi ndizomwe zimasinthidwa m'malo mwa tag yachithunzi. Pankhani yaposachedwa, yomwe nthawi zambiri imagwiritsidwa ntchito pazinthu zopanda phindu, chidziwitso chosinthika ndi chofotokozera, chomwe chilibe ntchito kwa Kubernetes mwiniwake, ndipo kwa Helm idzakhala ngati chizindikiro chofuna kukonzanso ntchitoyo. Zosankha zodzaza mtengo wamawu:

  1. Mtengo wachisawawa kugwiritsa ntchito muyezo - {{ randAlphaNum 6 }}.
    Pali chenjezo: pambuyo pa kutumizidwa kulikonse pogwiritsa ntchito tchati chokhala ndi zosinthika zotere, mtengo wofotokozera udzakhala wapadera, ndipo Helm adzaganiza kuti pali zosintha. Zikuwoneka kuti tidzayambiranso kugwiritsa ntchito nthawi zonse, ngakhale sitinasinthe mtundu wake. Izi sizowopsa, chifukwa sipadzakhala nthawi yopumira, komabe sizosangalatsa.
  2. Matani nokha tsiku ndi nthawi - {{ .Release.Date }}.
    Chosiyana ndi chofanana ndi mtengo wachisawawa wokhala ndi kusintha kwapadera kwamuyaya.
  3. Njira yolondola kwambiri ndiyo kugwiritsa ntchito cheke. Iyi ndiye SHA yachithunzi kapena SHA ya zomwe adachita komaliza mu git - {{ .Values.sha }}.
    Adzafunika kuwerengedwa ndikutumizidwa kwa kasitomala wa Helm kumbali yoyitana, mwachitsanzo ku Jenkins. Ngati ntchitoyo yasintha, ndiye kuti checksum isintha. Chifukwa chake, Helm amangosintha pulogalamu ikafunika.

Tiyeni tifotokoze mwachidule zoyesayesa zathu

  • Helm imapanga kusintha m'njira yocheperako, kotero kusintha kulikonse pazithunzi zogwiritsira ntchito mu Docker Registry sikudzabweretsa zosintha: palibe chomwe chidzachitike lamuloli litaperekedwa.
  • Mphindi --force amagwiritsidwa ntchito kubwezeretsa zotulutsa zovuta ndipo sizimalumikizidwa ndi zosintha zokakamiza.
  • Mphindi --recreate-pods idzasinthitsa mapulogalamu mwamphamvu, koma idzachita m'njira yowononga: idzazimitsa zotengera zonse. Ogwiritsa adzavutika ndi izi; simuyenera kuchita izi popanga.
  • Sinthani mwachindunji gulu la Kubernetes pogwiritsa ntchito lamulo kubectl edit musati: tidzaphwanya kusasinthasintha, ndipo khalidwe lidzasiyana malinga ndi mtundu wa Helm.
  • Ndi kutulutsidwa kwa mtundu watsopano wa Helm, ma nuances ambiri adawonekera. Nkhani zomwe zili mu Helm repository zimafotokozedwa m'mawu omveka bwino, zidzakuthandizani kumvetsetsa tsatanetsatane.
  • Kuyika mawu omasulira ku tchati kumapangitsa kuti ikhale yosinthika. Izi zikuthandizani kuti muyambe kugwiritsa ntchito moyenera, popanda nthawi yopuma.

Lingaliro la "mtendere wapadziko lonse" lomwe limagwira ntchito m'mbali zonse za moyo: werengani malangizo musanagwiritse ntchito, osati pambuyo. Pokhapokha ndi chidziwitso chathunthu ndizotheka kupanga machitidwe odalirika ndikupangitsa ogwiritsa ntchito kukhala osangalala.

Maulalo ena ogwirizana nawo:

  1. Kudziwana ndi Helm 3
  2. Tsamba lovomerezeka la Helm
  3. Helm posungira pa GitHub
  4. 25 Zothandiza Kubernetes Zida: Kutumiza ndi Kuwongolera

Lipotili linaperekedwa koyamba pa @Kubernetes Conference ndi Mail.ru Cloud Solutions. Penyani! Π²ΠΈΠ΄Π΅ΠΎ zisudzo zina ndikulembetsa ku zolengeza zochitika pa Telegraph Pafupi ndi Kubernetes ku Mail.ru Group.

Source: www.habr.com

Kuwonjezera ndemanga