Indlela yanamhlanje yokusebenza isombulula iingxaki ezininzi zeshishini. Izikhongozeli kunye nee-orchestrators zenza kube lula ukulinganisa iiprojekthi zaluphi na ubunzima, ukwenza lula ukukhutshwa kweenguqulelo ezintsha, zenze zithembeke ngakumbi, kodwa kwangaxeshanye zidala iingxaki ezongezelelweyo kubaphuhlisi. Umdwelisi wenkqubo, okokuqala, ukhathalele ikhowudi yakhe: uyilo, umgangatho, ukusebenza, ubuhle - kwaye hayi indlela eya kusebenza ngayo eKubernetes kunye nendlela yokuvavanya kunye nokuyilungisa emva kokwenza utshintsho oluncinci. Ke ngoko, kungokwemvelo ukuba izixhobo ze-Kubernetes ziphuhliswa ngenkuthalo, zinceda ukusombulula iingxaki zabona baphuhlisi "bakudala" kwaye zibavumela ukuba bagxile kwinto ephambili.
Olu hlaziyo lubonelela ngolwazi olufutshane malunga nezinye zezixhobo ezenza ubomi bube lula kumdwelisi wenkqubo ogama lakhe lisebenza kwi-pod'ax yeqela le-Kubernetes.
Abancedi abalula
Kubectl-debug
- Undoqo: yongeza isikhongozeli sakho kwiPod kwaye ubone ukuba kwenzeka ntoni kuyo.
-
GitHub . - Izibalo ezimfutshane ze-GH: Iinkwenkwezi ze-715, i-54 iboleka, i-9 abaxhasi.
- Ulwimi: Hamba.
- Ilayisensi: Apache License 2.0.
Le plugin ye kubectl ikuvumela ukuba wenze isikhongozeli esongezelelweyo ngaphakathi kwepod yomdla, eya kwabela inkqubo yendawo yegama kunye nezinye izikhongozeli. Kuyo unokulungisa ukusebenza kwe-pod: khangela inethiwekhi, mamela i-traffic yenethiwekhi, yenza i-strace yenkqubo yomdla, njl.
Ungatshintshela kwisikhongozeli senkqubo ngokubaleka chroot /proc/PID/root
- oku kunokuba lula kakhulu xa ufuna ukufumana iqokobhe lengcambu kwisikhongozeli esimiselwe sona kwimanifest securityContext.runAs
.
Isixhobo silula kwaye siyasebenza, ngoko sinokuba luncedo kubo bonke abaphuhlisi. Sabhala ngakumbi ngayo kwi
Umnxeba
- Undoqo: tshintshela usetyenziso kwikhompyuter yakho. Phuhlisa kwaye ulungise endaweni.
-
website ;GitHub . - Izibalo ezimfutshane ze-GH: Iinkwenkwezi ze-2131, i-2712 yenza, i-33 abaxhasi.
- Ulwimi: Python.
- Ilayisensi: Apache License 2.0.
Umbono wale snap-in kukuphehlelela isikhongozeli esinesicelo kwikhompyuter yomsebenzisi wasekhaya kunye neproxy yonke i-traffic ukusuka kwiqela ukuya kuyo nasemva. Le ndlela ikuvumela ukuba uphuhlise ekuhlaleni ngokuhlela ngokulula iifayile kwi-IDE oyithandayo: iziphumo ziya kufumaneka kwangoko.
Iinzuzo zokuqhuba ekuhlaleni kukulungeleka kokuhlelwa kunye neziphumo ezikhawulezayo, ukukwazi ukulungisa ingxaki yesicelo ngendlela eqhelekileyo. Icala elisezantsi lelokuba lifuna isantya soqhagamshelo, esiphawuleka ngakumbi xa kufuneka usebenze ngesicelo esine-RPS ephezulu kunye netrafikhi. Ukongeza, iTelepresence ineengxaki zokunyuswa kwevolumu kwiWindows, enokuthi ibe ngumda oqinisekileyo kubaphuhlisi abaqhelene nale OS.
Sele sabelane ngamava ethu okusebenzisa iTelepresence
Ksync
- Undoqo: phantse ungqamaniso olukhawulezileyo lwekhowudi kunye nesikhongozeli esikwiqela.
-
GitHub . - Izibalo ezimfutshane ze-GH: Iinkwenkwezi ze-555, i-362 iboleka, i-11 abaxhasi.
- Ulwimi: Hamba.
- Ilayisensi: Apache License 2.0.
Into eluncedo ikuvumela ukuba ungqamanise imixholo yolawulo lobulali ngolawulo lwesikhongozeli esisebenza kwiqela. Isixhobo esinjalo sifanelekile kubaphuhlisi kwiilwimi zeprogram yeskripthi, eyona ngxaki yabo ihambisa ikhowudi kwisitya esisebenzayo. I-Ksync yenzelwe ukukhulula le ntloko.
Xa iqalwa kanye ngomyalelo ksync init
iDaemonSet yenziwe kwiqela, elisetyenziswa ukujonga imeko yefayile yesixokelelwano esikhethiweyo. Kwikhompyuter yakhe yendawo, umphuhlisi uqhuba umyalelo ksync watch
, ebeka iliso kuqwalaselo kwaye iqhube
Into eseleyo kukuyalela ksync ukuba ungqamanise ngantoni. Umzekelo, lo myalelo:
ksync create --name=myproject --namespace=test --selector=app=backend --container=php --reload=false /home/user/myproject/ /var/www/myproject/
...iya kudala umlindi ogama lingu myproject
eyakukhangela i-pod eneleyibhile app=backend
kwaye uzame ukungqamanisa ulawulo lobulali /home/user/myproject/
ngekhathalogu /var/www/myproject/
kwi container kwabizwa php
.
Iingxaki kunye namanqaku kwi-ksync kumava ethu:
- Kufuneka isetyenziswe kwi-Kubernetes cluster nodes
overlay2
njengomqhubi wokugcina weDocker. Isixhobo asiyi kusebenza kunye nabanye. - Xa usebenzisa iWindows njenge-OS yomxhasi, umlindi wenkqubo yefayile usenokungasebenzi kakuhle. Le bug yaqatshelwa xa kusetyenzwa ngabalawuli abakhulu - ngenani elikhulu leefayile ezibekwe kwindlwane kunye nabalawuli. Sakha
umba ofanelekileyo kwiprojekthi yongqamaniso, kodwa akukho nkqubela kuyo okwangoku (ukususela ekuqaleni kukaJulayi). - Sebenzisa ifayile
ukukhankanya iindlela okanye iipatheni zefayile ezingadingi ngqamaniso (umzekelo, abalawuli.stignore
app/cache
ΠΈ.git
). - Ngokungagqibekanga, iksync izakuphinda iqale isikhongozeli nanini na iifayile zitshintsha. Kwi-Node.js oku kukulungele, kodwa kwi-PHP akuyomfuneko kwaphela. Kungcono ukucima i-opcache kwaye usebenzise iflegi
--reload=false
. - Ubumbeko lungasoloko lulungiswa ngaphakathi
$HOME/.ksync/ksync.yaml
.
I-squash
- Undoqo: debug iinkqubo ngokuthe ngqo kwiqela.
-
GitHub . - Izibalo ezimfutshane ze-GH: Iinkwenkwezi ze-1154, i-279 iboleka, i-23 abaxhasi.
- Ulwimi: Hamba.
- Ilayisensi: Apache License 2.0.
Esi sixhobo senzelwe iinkqubo zokulungisa ngokuthe ngqo kwiipods. Isixhobo silula kwaye sikuvumela ukuba ukhethe i-debugger oyifunayo (bona ngezantsi) kunye nesithuba segama + pod, kwinkqubo ekufuneka ungenelele kuyo. Ixhaswa ngoku:
- i-deve - ye-Go izicelo;
- I-GDB - ngethagethi ekude + nokuthunyelwa kwezibuko;
- Ugqithiso lwezibuko lwe-JDWP lokulungisa ii-aplikeshini zeJava.
Kwicala le-IDE, inkxaso ifumaneka kuphela kwi-VScode (usebenzisa
Ukulungisa iinkqubo, iSquash iqhuba isikhongozeli esinelungelo kwiindawo zeqela, ke kufuneka uqale uziqhelanise nezakhono.
Izisombululo ezidibeneyo
Masiqhubele phambili kwi-artillery enzima-engakumbi iiprojekthi "ezinkulu" ezenzelwe ukuhlangabezana ngokukhawuleza neemfuno ezininzi zabaphuhlisi.
NB: Kolu luhlu, kunjalo, kukho indawo yethu yomthombo ovulekileyo oluncedo
DevSpace
- Undoqo: kwabo bafuna ukuqalisa ukusebenza e-Kubernetes, kodwa abafuni ukungena nzulu kwihlathi layo.
-
GitHub . - Izibalo ezimfutshane ze-GH: Iinkwenkwezi ze-630, i-1912 iboleka, i-13 abaxhasi.
- Ulwimi: Hamba.
- Ilayisensi: Apache License 2.0.
Isisombululo esivela kwinkampani yegama elifanayo, elibonelela ngamaqela alawulwayo kunye ne-Kubernetes kuphuhliso lweqela. Usetyenziso lwenzelwe amaqela orhwebo, kodwa lusebenza kakuhle naziphi na ezinye.
Xa uqhuba umyalelo devspace init
kwikhathalogu yeprojekthi uya kunikwa (ngokusebenzisana):
- khetha iqela elisebenzayo leKubernetes,
- sebenzisa ekhoyo
Dockerfile
(okanye uvelise esitsha) ukwenza isikhongozeli esekwe kuso, - khetha indawo yokugcina imifanekiso yesikhongozeli, njl.
Emva kwawo onke la manyathelo okulungiselela, ungaqala uphuhliso ngokuqhuba umyalelo devspace dev
. Iya kwakha isikhongozeli, ilayishe kwindawo yokugcina, ikhuphe ukuthunyelwa kwiqela kwaye iqalise ukuhanjiswa kwezibuko kunye nolungelelwaniso lwesikhongozeli kunye nolawulo lwendawo.
Ngokukodwa, uya kucelwa ukuba uhambise i-terminal kwisikhongozeli. Akufanele unqabe, kuba ngokwenene isitya siqala ngomyalelo wokulala, kwaye ukuvavanya kwangempela isicelo kufuneka siqaliswe ngesandla.
Ekugqibeleni, iqela devspace deploy
ikhupha isicelo kunye neziseko ezihambelanayo kwi-cluster, emva koko yonke into iqala ukusebenza kwimodi yokulwa.
Lonke ubumbeko lweprojekthi lugcinwe kwifayile devspace.yaml
. Ukongeza kwimimiselo yophuhliso lwendalo, unokufumana inkcazo yesiseko kuyo, efana ne-standard Kubernetes ibonakalisa, ilula kakhulu.
Uyilo kunye nezigaba eziphambili zokusebenza kunye neDevSpace
Ukongezelela, kulula ukongeza icandelo elichazwe ngaphambili (umzekelo, i-MySQL DBMS) okanye i-Helm chart kwiprojekthi. Funda ngakumbi kwi
I-Skaffold
-
website ;GitHub . - Izibalo ezimfutshane ze-GH: Iinkwenkwezi ze-7423, i-4173 iboleka, i-136 abaxhasi.
- Ulwimi: Hamba.
- Ilayisensi: Apache License 2.0.
Esi sixhobo sivela kuGoogle ibanga ukugubungela zonke iimfuno zomphuhlisi onekhowudi ngandlela thile iya kuqhuba kwiqela leKubernetes. Ukuqala ukuyisebenzisa akulula njenge-devspace: akukho ukusebenzisana, ukufumanisa ulwimi kunye nokudala ngokuzenzekelayo Dockerfile
abayi kukunika yona apha.
Nangona kunjalo, ukuba oku akukoyiki, nantsi into ekuvumela ukuba wenze iSkaffold:
- Khangela utshintsho lwekhowudi yemvelaphi.
- Yingqamanise nesikhongozeli sepod ukuba ayifuni kudityaniswa.
- Qokelela izikhongozeli ezinekhowudi, ukuba ulwimi luyatolikwa, okanye uqokelele izinto zakudala uze uzipakishe kwizikhongozeli.
- Imifanekiso eneziphumo ikhangelwa ngokuzenzekelayo kusetyenziswa
container-structure-test . - Ukuthegiswa kunye nokulayisha imifanekiso kwiRegistry yeDocker.
- Faka isicelo kwiqela usebenzisa kubectl, Helm okanye kustomize.
- Yenza ugqithiso lwezibuko.
- Debug izicelo ezibhalwe Java, Node.js, Python.
Ukuhamba komsebenzi kwiinguqu ezahlukeneyo kuchazwe ngokuvakalisa kwifayile skaffold.yaml
. Kwiprojekthi, unokuchaza iiprofayili ezininzi apho unokutshintsha ngokuyinxenye okanye ngokupheleleyo indibano kunye nezigaba zokusasazwa. Umzekelo, kuphuhliso, khankanya umfanekiso osisiseko olungele umphuhlisi, kunye neqonga kunye nemveliso-encinci (+ sebenzisa securityContext
izikhongozeli okanye uchaze ngokutsha iqela apho isicelo siza kuthunyelwa khona).
Izikhongozeli zeDocker zinokwakhiwa ekuhlaleni okanye ukude: ngaphakathi
Ngokwahlukileyo, kuyafaneleka ukuba uqaphele ukuba kunokwenzeka ukuvavanya izitya. Isikhokelo sovavanyo lwesakhelo esele sikhankanyiwe sinika ezi ndlela zilandelayo zokuqinisekisa:
- Ukwenza imiyalelo kumxholo wesikhongozeli esinemo yokuphuma yomkhondo kunye nokujonga imveliso yokubhaliweyo yomyalelo.
- Ukujonga ubukho beefayile kwisikhongozeli kunye nokutshatisa iimpawu ezichaziweyo.
- Ukulawulwa kwemixholo yefayile usebenzisa intetho eqhelekileyo.
- Uqinisekiso lwemetadata yomfanekiso (
ENV
,ENTRYPOINT
,VOLUMES
kwaye nangokunjalo.). - Ukujonga ukuhambelana kwelayisensi.
Ungqamaniso lweefayile kunye nesikhongozeli alwenziwa ngeyona ndlela ilungileyo: I-Skaffold yenza ngokulula indawo egciniweyo enemithombo, iyikopishe kwaye iyikhuphe kwisingxobo (itha kufuneka ifakwe). Ke ngoko, ukuba umsebenzi wakho ophambili lungqamaniso lwekhowudi, kungcono ukujonga kwisisombululo esikhethekileyo (ksync).
Izigaba eziphambili zeSkaffold operation
Ngokubanzi, isixhobo asikuvumeli ukuba ukhuphe kwi-Kubernetes ibonakalisa kwaye ayinayo nayiphi na intsebenziswano, ngoko kunokubonakala kunzima ukuyiqonda. Kodwa oku kuyinzuzo yayo - inkululeko enkulu yokwenza.
igadi
-
website ;GitHub . - Izibalo ezimfutshane ze-GH: Iinkwenkwezi ze-1063, i-1927 iboleka, i-17 abaxhasi.
- Ulwimi: I-TypeScript (kucwangcisiwe ukwahlula iprojekthi ibe ngamacandelo amaninzi, amanye awo aya kuba kwi-Go, kwaye enze i-SDK yokwenza izongezo kwi-TypeScript/JavaScript kunye ne-Go).
- Ilayisensi: Apache License 2.0.
NjengoSkaffold, iGarden ijolise ekuzenzeleni iinkqubo zokuzisa ikhowudi yesicelo kwiqela le-K8s. Ukwenza oku, kufuneka uqale uchaze ubume beprojekthi kwifayile ye-YAML, kwaye emva koko usebenzise umyalelo garden dev
. Uya kwenza bonke umlingo:
- Qokelela izikhongozeli ezineendawo ezahlukeneyo zeprojekthi.
- Uqhuba ukudibanisa kunye novavanyo lweeyunithi, ukuba kukho naziphi na ezichazwe.
- Ukhupha onke amacandelo eprojekthi kwiqela.
- Ukuba ikhowudi yomthombo iyatshintsha, iya kuqalisa kwakhona umbhobho wonke.
Ingqwalasela ephambili yokusebenzisa esi sixhobo kukwabelana ngeqela elikude kunye neqela lophuhliso. Kule meko, ukuba ezinye zezakhiwo kunye namanyathelo okuvavanya sele zenziwe, oku kuya kukhawuleza ngokukhawuleza yonke inkqubo, ekubeni iGarden iya kukwazi ukusebenzisa iziphumo ezifihliweyo.
Imodyuli yeprojekthi inokuba sisingxobo, isitya seMaven, itshathi yeHelm, i-manifest ye kubectl apply
okanye nomsebenzi we-OpenFaaS. Ngaphezu koko, nayiphi na imodyuli inokutsalwa kwindawo ekude yeGit. Imodyuli inokuchaza okanye ingachazi iinkonzo, imisebenzi, kunye novavanyo. Iinkonzo kunye nemisebenzi ingaba nokuxhomekeka, ngoko unokugqiba ukulandelelana kokuthunyelwa kwenkonzo ethile kwaye uququzelele ukuqaliswa kwemisebenzi kunye neemvavanyo.
Isitiya sibonelela umsebenzisi ngedeshibhodi entle (ingaphakathi ngoku
Iphaneli yeGadi
Esi sixhobo sikwanayo nemowudi yokulayisha kwakhona eshushu, ethi ingqamanise ngokulula utshintsho lweskripthi kunye nesikhongozeli esikwiqela, ikhawulezisa kakhulu inkqubo yolungiso lweempazamo. Igadi inendawo entle
isiphelo
Ngokuqinisekileyo, olu luhlu lwezixhobo zokuphuhlisa kunye nokulungiswa kwezicelo kwi-Kubernetes azikhawulelwanga. Kukho izinto ezininzi eziluncedo kakhulu nezisebenzayo ezifanelekileyo, ukuba ayilonqaku elahlukileyo, ke ubuncinci ukukhankanywa. Sixelele ukuba usebenzisa ntoni, zeziphi iingxaki oye wadibana nazo kunye nendlela ozisombulule ngayo!
PS
Funda nakwibhlog yethu:
- Β«
i-werf - isixhobo sethu seCI / CD kwi-Kubernetes (umboniso kunye nengxelo yevidiyo) "; - Β«
Igadi v0.10.0: Ilaptop yakho ayifuni iKubernetes "; - Β«
Iingcebiso kunye namaqhinga kaKubernetes: malunga nophuhliso lwendawo kunye neTelepresence "; - Β«
kubectl-debug plugin yolungiso lweempazamo kwi-Kubernetes pods Β».
umthombo: www.habr.com