Qaphela. transl.: Isihloko sabhalwa nguScott Lowe, unjiniyela onolwazi olunzulu ku-IT, ongumbhali/umdidiyeli wezincwadi eziyisikhombisa eziphrintiwe (ikakhulukazi ku-VMware vSphere). Manje usebenzela inkampani engaphansi kwe-VMware i-Heptio (etholwe ngo-2016), egxile kwi-cloud computing kanye ne-Kubernetes. Umbhalo ngokwawo usebenza njengesingeniso esifushane nesiqondakala kalula sokuphathwa kokucushwa kwe-Kubernetes kusetshenziswa ubuchwepheshe.
I-Kustomize iyithuluzi elivumela abasebenzisi “ukwenza ngendlela oyifisayo amafayela e-YAML alula, angenazifanekiso ngezinjongo ezihlukene, okushiya i-YAML yoqobo injalo futhi isebenziseka” (incazelo ebolekwe ngokuqondile kwa- kubectl -k
ukuze ufinyelele ukusebenza kwayo (yize kusukela ku-Kubernetes 1.15, kanambambili ehlukene yintsha kunamakhono akhelwe ku-kubectl). (Qaphela. transl.: Kanye nokukhishwa kwakamuva
Ngendlela yayo elula/uhlelo lokusebenza, i-kustomize imane iyiqoqo lezinsiza (amafayela e-YAML achaza izinto ze-Kubernetes: Ukuthunyelwa, Izinsizakalo, njll.) kanye nohlu lwemiyalo yezinguquko okudingeka zenziwe kulezo zinsiza. Njengoba nje i-make isebenzisa imiyalo equkethwe kuyo Makefile
, futhi i-Docker yakha isiqukathi ngokusekelwe emiyalweni evela Dockerfile
,enza ngendlela oyifisayo ukusetshenziswa kustomization.yaml
ukugcina imiyalelo mayelana nokuthi yiziphi izinguquko umsebenzisi afuna ukuzenza kusethi yezinsiza.
Nali ifayela eliyisibonelo kustomization.yaml
:
resources:
- deployment.yaml
- service.yaml
namePrefix: dev-
namespace: development
commonLabels:
environment: development
Ngeke ngizame ukukhuluma ngazo zonke izinkambu ezingaba khona kufayela. kustomization.yaml
(lokhu kubhalwe kahle ngakho
- Insimu
resources
ikhombisa ukuthi (iziphi izinsiza) kustomize ezoshintsha. Kulokhu, izobheka izinsiza kumafayeladeployment.yaml
иservice.yaml
ohlwini lwakho lwemibhalo (ungacacisa izindlela ezigcwele noma ezihlobene uma kunesidingo). - Insimu
namePrefix
iyalela kustomize ukwengeza isiqalo esithile (kulokhu -dev-
) ukuchasisaname
zonke izinsiza ezichazwe ensiminiresources
. Ngakho, uma Deployment hasname
ngencazelonginx-deployment
, ukwenza ngendlela oyifisayo kuzokwenzadev-nginx-deployment
. - Insimu
namespace
iyalela kustomize ukwengeza indawo yegama enikeziwe kuzo zonke izinsiza. Kulesi simo, Ukuthunyelwa Nesevisi kuzowela endaweni yamagamadevelopment
. - Ekugcineni, insimu
commonLabels
iqukethe isethi yamalebula azokwengezwa kuzo zonke izinsiza. Esibonelweni sethu, i-kustomize izokwabela ilebula ezinsizeni ezinegamaenvironment
kanye nencazelodevelopment
.
Uma umsebenzisi enza kustomize build .
ohlwini lwemibhalo olunefayela kustomization.yaml
kanye nezinsiza ezidingekayo (okungukuthi amafayela deployment.yaml
и service.yaml
), lapho-ke okukhiphayo izothola umbhalo onezinguquko ezishiwo ku kustomization.yaml
.
Qaphela. transl.: Umfanekiso ovela kumadokhumenti ephrojekthi ngokusetshenziswa “okulula” kwe-kustomize
Okukhiphayo kungaqondiswa kabusha uma izinguquko zidinga ukwenziwa:
kustomize build . > custom-config.yaml
Idatha yokuphumayo iyanqunywa (idatha yokufaka efanayo izokhiqiza imiphumela efanayo), ngakho-ke akudingeki ukuthi ulondoloze umphumela efayeleni. Kunalokho, ingadluliselwa ngokuqondile komunye umyalo:
kustomize build . | kubectl apply -f -
Izici ze-kustomize nazo zingafinyelelwa nge kubectl -k
(kusukela ku-Kubernetes version 1.14). Kodwa-ke, khumbula ukuthi iphakheji ye-standalone kustomize ibuyekezwa ngokushesha kunephakheji ehlanganisiwe ye-kubectl (okungenani lokhu kunjalo ngokukhishwa kwe-Kubernetes 1.15).
Abafundi bangase babuze: “Kungani konke lokhu kuyinkimbinkimbi uma ukwazi ukuhlela amafayela ngokuqondile?” Umbuzo omkhulu. Esibonelweni sethu, ngempela can guqula amafayela deployment.yaml
и service.yaml
ngokuqondile, kodwa kuthiwani uma beyimfoloko yephrojekthi yomunye umuntu? Ukushintsha amafayela ngokuqondile kwenza kube nzima (uma kungenzeki) ukusekela kabusha imfoloko lapho izinguquko zenziwa kumsuka/umthombo. Ukusebenzisa i-kustomize kukuvumela ukuthi wenze lezi zinguquko zibe phakathi kwefayela kustomization.yaml
, ishiya amafayela angempela ephelele futhi ngaleyo ndlela kube lula ukusekela kabusha amafayela okuqala uma kudingeka.
Izinzuzo ze-kustomize zibonakala ezimweni zokusetshenziswa eziyinkimbinkimbi. Kulesi sibonelo esingenhla kustomization.yaml
futhi izinsiza zikuhlu lwemibhalo olufanayo. Kodwa-ke, i-kustomize isekela izimo zokusebenzisa lapho kukhona ukucushwa kwesisekelo nokuhlukahluka kwakho okuningi, okwaziwa nangokuthi ukumbondelana. Isibonelo, umsebenzisi ubefuna ukuthatha i-Deployment and Service ye-nginx, engiyisebenzise njengesibonelo, futhi adale ukuthuthukiswa, izinguqulo zesiteji nokukhiqiza (noma okuhlukile) kwalawo mafayela. Ukuze enze lokhu, uzodinga ukumbondela okukhulunywe ngenhla futhi, empeleni, izinsiza eziyisisekelo ngokwazo.
Ukukhombisa umqondo wokumbondelana nezinsiza ezingaphansi (izinsiza eziyisisekelo), ake sicabange ukuthi izinkomba zinesakhiwo esilandelayo:
- base
- deployment.yaml
- service.yaml
- kustomization.yaml
- overlays
- dev
- kustomization.yaml
- staging
- kustomization.yaml
- prod
- kustomization.yaml
Kufayela base/kustomization.yaml
abasebenzisi abasebenzisa inkambu resources
vele umemezele izinsiza okufanele zifakwe kustomize.
Kufayela ngalinye overlays/{dev,staging,prod}/kustomization.yaml
abasebenzisi babhekisela ekucushweni kwesisekelo kunkambu resources
, bese ubonisa izinguquko ezithile ze imvelo enikeziwe. Ngokwesibonelo, ifayela overlays/dev/kustomization.yaml
ingase ibukeke njengesibonelo esinikezwe ngaphambili:
resources:
- ../../base
namePrefix: dev-
namespace: development
commonLabels:
environment: development
Kulokhu ifayela overlays/prod/kustomization.yaml
kungase kwehluke ngokuphelele:
resources:
- ../../base
namePrefix: prod-
namespace: production
commonLabels:
environment: production
sre-team: blue
Lapho umsebenzisi egijima kustomize build .
kukhathalogi overlays/dev
, i-kustomize izokhiqiza inketho yokuthuthukisa. Uma ugijima kustomize build .
kukhathalogi overlays/prod
- uthola inketho yokukhiqiza. Futhi konke lokhu - ngaphandle kokwenza izinguquko kokwangempela (isisekelo) amafayela, wonke ngendlela echazayo nenqumayo. Ungakwazi ukubophezela ukucushwa kwesisekelo kanye nezinkomba zembondela ngokuqondile ekulawuleni inguqulo, wazi ukuthi ngokusekelwe kulawa mafayela ungakwazi ukukhiqiza kabusha ukulungiselelwa okufunayo nganoma yisiphi isikhathi.
Qaphela. transl.: Umfanekiso ovela kumadokhumenti ephrojekthi ekusebenziseni ukumbondela ku-kustomize
Yenza ngokwezifiso ikani kakhulu ngaphezu kwalokho okuvezwe kulesi sihloko. Nokho, ngethemba ukuthi izosebenza njengesingeniso esihle.
Izinsiza Ezengeziwe
Kunezihloko eziningi ezinhle nezincwadi ezimayelana nokustomize. Nazi ezimbalwa engizithole ziwusizo ngokukhethekile:
-
Shintsha ukulungiselelwa kwe-YAML kwesisekelo sezindawo ezihlukene ze-prod/test usebenzisa i-Kustomize ; -
I-Kustomize — Indlela eyiyo yokwenza ithempulethi ku-Kubernetes ; -
Ukuphathwa Kwezimemezelo Zezinto ze-Kubernetes Ezisebenzisa Ukwenza Ngokwezifiso ; -
Ukwenza ngendlela oyifisayo Amashadi e-Helm Helm ngokwenza ngendlela oyifisayo .
Qaphela. transl.: Ungakwazi futhi ukuncoma ibhulokhi yezixhumanisi ezishicilelwe njenge
Uma unemibuzo noma iziphakamiso zokuthuthukisa le nto, ngihlale ngivulekele impendulo. Ungangithinta ku
I-PS evela kumhumushi
Funda futhi kubhulogi yethu:
- «
Amathuluzi onjiniyela bezinhlelo zokusebenza ezisebenza ku-Kubernetes "; - «
I-Kubernetes 1.14: ukubuka konke okusha okuyinhloko "; - «
Imiphumela emihlanu eyinhloko ye-Helm Summit 2019 e-Amsterdam "; - «
Isingeniso esisebenzayo kumphathi wephakheji we-Kubernetes - Helm ".
Source: www.habr.com