Phawula. transl.: Eli nqaku libhalwe nguScott Lowe, injineli enamava amaninzi kwi-IT, ongumbhali / umbhali-mbhali weencwadi ezisixhenxe eziprintiweyo (ikakhulukazi kwi-VMware vSphere). Ngoku usebenzela i-VMware subsidiary Heptio (efunyenwe kwi-2016), egxile kwi-computing yamafu kunye ne-Kubernetes. Umbhalo ngokwawo usebenza njengesingeniso esifutshane kwaye kulula ukuyiqonda kulawulo loqwalaselo lweKubernetes usebenzisa itekhnoloji.
I-Kustomize sisixhobo esivumela abasebenzisi ukuba "bazenzele ngokulula, iifayile ze-YAML ezingenazo itemplate ngeenjongo ezahlukeneyo, beshiya i-YAML yoqobo kwaye isebenziseka" (inkcazelo ebolekwe ngokuthe ngqo kubectl -k
ukufikelela kumsebenzi wayo (nangona nge Kubernetes 1.15, ibini elahlukileyo litsha kunesakhono esakhelwe kwi kubectl). (Phawula. transl.: Kwaye nokukhutshwa kwamva nje
Ngeyona ndlela ilula / isicelo, i-kustomize yingqokelela yemithombo (iifayile ze-YAML ezichaza izinto ze-Kubernetes: Ukuthunyelwa, iiNkonzo, njl.) kunye noluhlu lwemiyalelo yotshintsho ekufuneka lwenziwe kwezo zixhobo. Kanye njengokuba make usebenzisa isethi yomyalelo equlethwe kuyo Makefile
, kwaye iDocker yakha isikhongozeli esekwe kwimiyalelo evela Dockerfile
, lungiselela ukusetyenziswa kustomization.yaml
ukugcina imiyalelo malunga noluphi utshintsho umsebenzisi afuna ukulwenza kwiseti yemithombo.
Nantsi ifayile yomzekelo kustomization.yaml
:
resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
environment: development
Andiyi kuzama ukuthetha ngayo yonke imihlaba enokwenzeka kwifayile. kustomization.yaml
(oku kubhalwe kakuhle malunga
- Intsimi
resources
ibonisa ukuba yintoni (yeyiphi imithombo) kustomize ezakutshintsha. Kule meko, iya kukhangela izixhobo kwiifayiledeployment.yaml
иservice.yaml
kulawulo lwakho (ungakhankanya iindlela ezipheleleyo okanye ezizalanayo ukuba kuyimfuneko). - Intsimi
namePrefix
iyalela kustomize ukongeza isimaphambili esithile (kulo mzekelo -dev-
) ukunika uphawuname
zonke izixhobo ezichazwe ebaleniresources
. Ke, ukuba ukuhanjiswa kuyename
ngentsingiselonginx-deployment
, ukwenza ngokwezifiso kuya kuyenzadev-nginx-deployment
. - Intsimi
namespace
iyalela kustomize ukongeza isithuba segama elinikiweyo kubo bonke oovimba. Kule meko, ukusasazwa kunye neNkonzo kuya kuwela kwindawo yamagamadevelopment
. - Ekugqibeleni, intsimi
commonLabels
iqulethe iileyibhile eziya kongezwa kubo bonke oovimba. Kumzekelo wethu, i-kustomize iya kwabela ileyibhile kwimithombo enegamaenvironment
kunye nexabisodevelopment
.
Ukuba umsebenzisi wenza kustomize build .
kulawulo ngefayile kustomization.yaml
kunye nezibonelelo eziyimfuneko (okt iifayile deployment.yaml
и service.yaml
), ngoko kwimveliso iyakufumana okubhaliweyo ngotshintsho olukhankanyiweyo kustomization.yaml
.
Phawula. transl.: Umzobo osuka kumaxwebhu eprojekthi kusetyenziso “olulula” lwe-kustomize
Imveliso inokuhanjiswa kwakhona ukuba utshintsho kufuneka luzibophelele:
kustomize build . > custom-config.yaml
Idatha yokukhupha i-deterministic (idatha efanayo yokufaka iya kuvelisa iziphumo ezifanayo), ngoko akudingeki ukuba ugcine umphumo kwifayile. Endaweni yoko, inokudluliselwa ngokuthe ngqo komnye umyalelo:
kustomize build . | kubectl apply -f -
Iimpawu ze kustomize zinokufumaneka nge kubectl -k
(ukususela Kubernetes inguqulo 1.14). Nangona kunjalo, khumbula ukuba iphakheji ye-standalone kustomize ihlaziywa ngokukhawuleza kunephakheji edibeneyo ye-kubectl (ubuncinci oku kunjalo nge-Kubernetes 1.15 ukukhululwa).
Abafundi banokubuza: "Kutheni bonke obu buntsokothile ukuba unokuhlela iifayile ngokuthe ngqo?" Umbuzo omkhulu. Kumzekelo wethu, ngokwenene unako guqula iifayile deployment.yaml
и service.yaml
ngqo, kodwa kuthekani ukuba bayifolokhwe yeprojekthi yomnye umntu? Ukutshintsha iifayile ngokuthe ngqo kwenza kube nzima (ukuba akunakwenzeka) ukuphinda usekwe ifolokhwe xa utshintsho lwenziwa kwimvelaphi/umthombo. Ukusebenzisa i-kustomize ikuvumela ukuba ulawule olu tshintsho kwifayile kustomization.yaml
, ishiya iifayile zoqobo zingaguquki kwaye ngaloo ndlela yenza kube lula ukuphinda ubeke iifayile zoqobo ukuba kuyimfuneko.
Izibonelelo ze-kustomize zibonakala kwiimeko zokusetyenziswa ezinzima. Kulo mzekelo ungasentla kustomization.yaml
kunye nemithombo ikuluhlu olufanayo. Nangona kunjalo, i-kustomize ixhasa iimeko zokusetyenziswa apho kukho uqwalaselo lwesiseko kunye neentlobo ezininzi zalo, ezaziwa ngokuba ziweyo. Ngokomzekelo, umsebenzisi wayefuna ukuthatha i-Deployment kunye neNkonzo ye-nginx, endiyisebenzisileyo njengomzekelo, kunye nokudala uphuhliso, ukuhlelwa kunye nokuveliswa kweenguqulelo (okanye ukwahluka) kwezo fayile. Ukwenza oku, uya kufuna ukugqithisa okukhankanywe ngasentla kwaye, ngokwenene, izibonelelo ezisisiseko ngokwazo.
Ukubonisa umbono wokwaleka kunye nezixhobo ezisezantsi (izixhobo ezisisiseko), masicinge ukuba abalawuli banesakhiwo esilandelayo:
- base
- deployment.yaml
- service.yaml
- kustomization.yaml
- overlays
- dev
- kustomization.yaml
- staging
- kustomization.yaml
- prod
- kustomization.yaml
Kwifayile base/kustomization.yaml
abasebenzisi abasebenzisa indawo resources
bhengeza ngokulula izibonelelo ezimele ukustomize zibandakanye.
Kwifayile nganye overlays/{dev,staging,prod}/kustomization.yaml
abasebenzisi babhekisa kuqwalaselo lwesiseko entsimini resources
, kwaye emva koko ubonise utshintsho oluthile lwe indawo engqongileyo. Umzekelo, ifayile overlays/dev/kustomization.yaml
inokubonakala njengomzekelo onikwe ngaphambili:
resources:
- ../../base
namePrefix: dev-
namespace: development
commonLabels:
environment: development
Kule meko ifayile overlays/prod/kustomization.yaml
inokuba yahluke ngokupheleleyo:
resources:
- ../../base
namePrefix: prod-
namespace: production
commonLabels:
environment: production
sre-team: blue
Xa umsebenzisi ebaleka kustomize build .
kwikhathalogu overlays/dev
, kustomize izakuvelisa ukhetho lophuhliso. Ukuba uyabaleka kustomize build .
kwikhathalogu overlays/prod
- ufumana ukhetho lwemveliso. Kwaye konke oku - ngaphandle kokwenza naluphi na utshintsho kwi-original (isiseko) iifayile, zonke ngendlela echazayo kunye nesigqibo. Ungabophelela uqwalaselo lwesiseko kunye nabalawuli abangaphezulu ngokuthe ngqo kulawulo loguqulelo, usazi ukuba ngokusekwe kwezi fayile ungaphinda uvelise uqwalaselo olufunwayo nangaliphi na ixesha.
Phawula. transl.: Umzobo osuka kuxwebhu lweprojekthi yokusebenzisa izaleka kwi kustomize
Lungiselela inkono kakhulu ngaphezu koko kuqukunjelwe kweli nqaku. Nangona kunjalo, ndiyathemba ukuba isebenza njengentshayelelo elungileyo.
Izibonelelo ezongezelelweyo
Kukho amanqaku amaninzi alungileyo kunye neempapasho malunga ne-kustomize. Nazi ezimbalwa endizifumene ziluncedo kakhulu:
-
Guqula isiseko se-YAML yoqwalaselo lweemeko ezahlukeneyo zeprod/uvavanyo usebenzisa iKustomize ; -
I-Kustomize-Indlela efanelekileyo yokwenza i-templates kwi-Kubernetes ; -
Ulawulo oluBhengezayo lweZinto zeKubernetes usebenzisa i-Customize ; -
Ukwenza iTshati yeHelm ePhezulu ngokuLungisa .
Phawula. transl.: Unokucebisa ibhloko yekhonkco elipapashwe njenge
Ukuba unemibuzo okanye iingcebiso zokuphucula le mathiriyeli, ndihlala ndivulekele impendulo. Ungaqhagamshelana nam ku
PS evela kumguquleli
Funda nakwibhlog yethu:
- «
Izixhobo zabaphuhlisi bezicelo ezisebenza kwi-Kubernetes "; - «
I-Kubernetes 1.14: isishwankathelo sezinto ezintsha ezintsha "; - «
Iziphumo ezihlanu eziphambili zeHelm Summit 2019 eAmsterdam "; - «
Intshayelelo esebenzayo kumphathi wephakheji ye-Kubernetes - Helm ».
umthombo: www.habr.com