Aaladaha loogu talagalay horumarinta codsiyada ka socda Kubernetes

Aaladaha loogu talagalay horumarinta codsiyada ka socda Kubernetes

Habka casriga ah ee hawlgallada ayaa xalliya dhibaatooyin badan oo ganacsi oo adag. Weelasha iyo orchestrators ayaa fududeynaya in la cabbiro mashaariicda wax kasta oo kakan, fududeeya sii deynta noocyo cusub, ka dhigaan kuwo la isku halleyn karo, laakiin isla mar ahaantaana waxay abuuraan dhibaatooyin dheeraad ah horumarinta. Barnaamijka, ugu horreyntii, wuxuu daneeyaa koodkiisa: qaab-dhismeedka, tayada, waxqabadka, xarrago - oo aan ahayn sida ay uga shaqeyn doonto Kubernetes iyo sida loo tijaabiyo oo loo xalliyo ka dib markii la sameeyo isbeddellada ugu yar. Sidaa darteed, sidoo kale waa wax dabiici ah in qalabka loogu talagalay Kubernetes si firfircoon loo horumariyo, caawinta xalinta dhibaatooyinka xitaa kuwa ugu "qadiimiga" horumariya oo u oggolaanaya inay diiradda saaraan waxa ugu muhiimsan.

Dib-u-eegiddu waxay bixinaysaa macluumaad kooban oo ku saabsan qaar ka mid ah qalabka nolosha u fududeeya barnaamij-sameeyaha kaas oo koodkiisu ku dhex socdo pod'ax ee kutlada Kubernetes.

Caawiye fudud

Kubectl-debug

  • Qadka hoose: weelkaaga ku dar Pod oo arag waxa ku jira.
  • GitHub.
  • Tirakoobka GH oo kooban: 715 xiddigood, 54 ballanqaad, 9 wax ku darsaday.
  • Luqadda: Tag
  • Shatiga: Shatiga Apache 2.0.

Qalabkan loogu talagalay kubectl wuxuu kuu ogolaanayaa inaad abuurto weel dheeraad ah gudaha gudaha dabada xiisaha, kaas oo la wadaagi doona habka magaca weelasha kale. Dhexdeeda waxaad ka saari kartaa shaqada podska: hubi shabakada, dhageyso taraafikada shabakada, samee qayb ka mid ah habka xiisaha, iwm.

Waxa kale oo aad u wareegi kartaa weelka habsocodka adiga oo ordaya chroot /proc/PID/root - tani waxay noqon kartaa mid aad u habboon markaad u baahan tahay inaad hesho qolof xidid ah weel kaas oo loogu talagalay muujinta securityContext.runAs.

Qalabku waa mid fudud oo waxtar leh, markaa waxay faa'iido u yeelan kartaa horumariye kasta. In badan ayaanu ku qornay maqaal gooni ah.

Telefishanka

  • Qadka hoose: ku wareeji codsiga kombiyuutarkaaga. Samee oo wax ka beddel gudaha.
  • website; GitHub.
  • Tirakoobka GH oo kooban: 2131 xiddigood, 2712 ballan, 33 wax ku darsaday.
  • Luqadda: Python.
  • Shatiga: Shatiga Apache 2.0.

Fikradda is-qabsigan ayaa ah in la bilaabo weel uu ku jiro kombayuutarka isticmaalaha maxalliga ah oo wakiil ka ah dhammaan taraafikada kooxda ilaa iyo gadaal. Habkani wuxuu kuu ogolaanayaa inaad horumariso gudaha adiga oo si fudud u tafatiraya faylasha ku jira IDE-ga aad jeceshahay: natiijooyinka isla markiiba waa la heli doonaa.

Faa'iidooyinka ku socodsiinta gudaha waa ku habboonaanta wax-ka-beddelka iyo natiijooyinka degdegga ah, awoodda lagu saxayo codsiga habka caadiga ah. Dhinaca hoose ayaa ah in ay dalbanayso xawaaraha isku xirka, taas oo si gaar ah loo ogaan karo marka ay tahay inaad la shaqeyso codsi leh RPS cadaalad ah oo sarreeya iyo taraafig. Intaa waxaa dheer, Telepresence waxay leedahay dhibaatooyin ku saabsan kor u qaadista mugga ee Windows, taas oo xaddidaad muhiim ah u noqon karta horumariyeyaasha caadaystay OS-kan.

Waxaan horey u wadaagnay khibradeena isticmaalka Telepresence halkan.

Ksync

  • Qadka hoose: ku dhawaad ​​isla markiiba wada shaqaynta koodka iyo weelka ku jira kooxda.
  • GitHub.
  • Tirakoobka GH oo kooban: 555 xiddigood, 362 ballanqaad, 11 wax ku darsaday.
  • Luqadda: Tag
  • Shatiga: Shatiga Apache 2.0.

Utility wuxuu kuu ogolaanayaa inaad isku dhejiso waxa ku jira hagaha maxaliga ah iyo tusaha weelka ku dhex socda kooxda Qalabka noocan oo kale ah wuxuu ku fiican yahay horumariyeyaasha qorista luqadaha barnaamijka, kuwaas oo dhibaatadooda ugu weyn ay tahay gaarsiinta koodka weelka socda. Ksync waxaa loogu talagalay in lagu nafiso madax xanuunkan.

Marka lagu bilaabay hal mar amarka ksync init DaemonSet ayaa lagu dhex abuuray kutlada, kaas oo loo isticmaalo in lagula socdo xaalada nidaamka faylka weelka la doortay. Kumbuyuutarkiisa maxalliga ah, horumariyaha ayaa ku shaqeeya amarka ksync watch, kaas oo la socda qaabaynta iyo socodsiinta isweydaarsiga, kaas oo si toos ah ula shaqeeya faylasha kooxda.

Waxa hadhay oo dhan waa in la baro ksync waxa la isku waafajinayo waxa. Tusaale ahaan, amarkan:

ksync create --name=myproject --namespace=test --selector=app=backend --container=php --reload=false /home/user/myproject/ /var/www/myproject/

... abuuri doona ilaaliye la magacaabay myprojectKaas oo raadin doona boodh leh calaamad app=backend iskuna day inaad isku xidho hagaha deegaanka /home/user/myproject/ oo leh buug /var/www/myproject/ weelka lagu magacaabo php.

Dhibaatooyinka iyo qoraallada ksync ee khibradeena:

  • Waa in lagu isticmaalo Kubernetes cluster noodes overlay2 sida darawal kaydinta Docker. Adeeggu lama shaqayn doono cid kale.
  • Markaad isticmaaleyso Windows macmiil ahaan OS, ilaaliyaha nidaamka faylka waxaa laga yaabaa inuusan si sax ah u shaqeyn. Cayayaankan ayaa la dareemay markii la shaqaynayey hagayaal waaweyn - oo wata faylal iyo hagayaal tiro badan oo buul leh. Waxaan abuurnay arrin khuseeya Mashruuca syncthing, laakiin ma jiraan wax horumar ah oo ku saabsan weli (tan iyo bilowgii Luulyo).
  • Isticmaal faylka .stignore si loo qeexo waddooyinka ama qaababka faylka ee aan u baahnayn in la is waafajiyo (tusaale ahaan, hagaha app/cache ΠΈ .git).
  • Sida caadiga ah, ksync waxay dib u bilaabi doontaa weelka mar kasta oo faylalku isbedelaan. Node.js tani waa ku habboon tahay, laakiin PHP gabi ahaanba lama baahna. Way fiicantahay in la damiyo opcache oo la isticmaalo calanka --reload=false.
  • Qaabaynta had iyo jeer waa lagu sixi karaa gudaha $HOME/.ksync/ksync.yaml.

squash

  • Qadka hoose: habsocodyada si toos ah uga saara kooxda.
  • GitHub.
  • Tirakoobka GH oo kooban: 1154 xiddigood, 279 ballanqaad, 23 wax ku darsaday.
  • Luqadda: Tag
  • Shatiga: Shatiga Apache 2.0.

Qalabkan waxaa loogu talagalay in lagu saxo hababka si toos ah pods. Utility waa mid fudud oo isdhexgalka kuu ogolaanaya inaad doorato debugger la doonayo (hoos eeg) iyo meelaynta magaca + pod, habka aad u baahan tahay inaad soo farageliso. Hadda la taageero:

  • delve - codsiyada Go;
  • GDB - iyada oo loo marayo bartilmaameedka fogaanta + gudbinta dekedda;
  • U soo gudbinta dekeda JDWP ee ka saarida codsiyada Java.

Dhinaca IDE-ga, taageerada waxa kaliya oo lagu heli karaa VScode (adoo isticmaalaya fidinta), si kastaba ha ahaatee, qorshayaasha sanadkan (2019) waxaa ka mid ah Eclipse iyo Intellij.

Si loo saxo geeddi-socodka, Squash waxay ku waddaa weel mudnaan leh oo ku jira qanjidhada kooxda, marka waa inaad marka hore naftaada barataa awoodaha hab ammaan ah si looga fogaado dhibaatooyinka amniga.

xalal dhamaystiran

Aan u gudubno madaafiicda culculus - mashruucyo badan oo β€œbalaadhan” ah oo loogu talagalay in ay isla markiiba daboolaan baahiyo badan oo horumariyayaal ah.

NBLiiskan, dabcan, waxaa jira meel loogu talagalay utility Isha Furan werf (oo hore loo yiqiin dapp). Si kastaba ha ahaatee, hore ayaan u qornay oo ka hadalnay wax ka badan hal jeer, sidaas darteed waxaan go'aansanay inaanan ku darin dib u eegista. Kuwa doonaya inay aqoon dheeraad ah u yeeshaan awoodeeda, waxaan kugula talineynaa akhrinta / dhageysiga warbixinta "werf waa qalabkeena CI/CD ee Kubernetes".

DevSpace

  • Qadka hoose: kuwa raba in ay ka shaqeeyaan Kubernetes, laakiin ma rabaan in ay si qoto dheer u galaan kaymaha.
  • GitHub.
  • Tirakoobka GH oo kooban: 630 xiddigood, 1912 ayaa ballan qaaday, 13 wax ku darsaday.
  • Luqadda: Tag
  • Shatiga: Shatiga Apache 2.0.

Xalka shirkadda isku magaca ah, kaas oo siinaya kooxo la maareeyay Kubernetes horumarinta kooxda. Utility waxaa loo sameeyay kooxo ganacsi, laakiin si weyn ayay ula shaqeysaa kuwa kale.

Marka la ordo amarka devspace init Buugga mashruuca waxaa lagugu siin doonaa (si dhexgal ah):

  • dooro koox Kubernetes ah oo shaqaynaysa,
  • isticmaali jira Dockerfile (ama soo saar mid cusub) si aad u abuurto weel ku salaysan,
  • dooro bakhaar lagu kaydiyo sawirada weelka, iwm.

Dhammaan tallaabooyinkan diyaarinta ah ka dib, waxaad bilaabi kartaa horumarinta adiga oo socodsiinaya amarka devspace dev. Waxay dhisi doontaa weelka, waxay ku shubi doontaa kaydka, waxay soo rogi doontaa kutlada waxayna bilaabi doontaa gudbinta dekeda iyo isku-dubbaridka weelka iyo hagaha deegaanka.

Ikhtiyaar ahaan, waxaa lagugu soo jeedin doonaa inaad u rarto terminalka weelka. Waa inaadan diidin, sababtoo ah dhab ahaantii weelku wuxuu ka bilaabmaa amarka hurdada, iyo baaritaanka dhabta ah ee codsiga wuxuu u baahan yahay in lagu bilaabo gacanta.

Ugu dambeyntii, kooxda devspace deploy soo rogo arjiga iyo kaabayaasha la xidhiidha kooxda, ka dib wax walba waxay bilaabaan inay ku shaqeeyaan habka dagaalka.

Dhammaan qaabaynta mashruuca waxa lagu kaydiyaa fayl devspace.yaml. Marka lagu daro goobaha horumarinta deegaanka, waxaad sidoo kale ka heli kartaa sharaxaad ka mid ah kaabayaasha ku jira, oo la mid ah kuwa caadiga ah ee Kubernetes, oo kaliya oo si weyn loo fududeeyay.

Aaladaha loogu talagalay horumarinta codsiyada ka socda Kubernetes
Dhismaha iyo marxaladaha ugu muhiimsan ee la shaqaynta DevSpace

Intaa waxaa dheer, way fududahay in lagu daro qayb horay loo sii qeexay (tusaale, MySQL DBMS) ama shaxda Helm mashruuca. Wax badan ka sii akhri dukumentiyo - ma aha mid adag.

Skaffold

  • website; GitHub.
  • Tirakoobka GH oo kooban: 7423 xiddigood, 4173 ayaa ballan qaaday, 136 wax ku darsaday.
  • Luqadda: Tag
  • Shatiga: Shatiga Apache 2.0.

Adeegan ka socda Google wuxuu sheeganayaa inuu daboolayo dhammaan baahiyaha horumariye kaas oo koodkiisu si uun ugu shaqayn doono kooxda Kubernetes. Bilaabidda isticmaalkeeda uma fududa sida devspace: ma jiro is dhexgal, ogaanshaha luqadda iyo abuuritaanka otomaatiga ah Dockerfile halkan kuma siin doonaan.

Si kastaba ha noqotee, haddii tani aysan ku cabsi gelin, waa kan waxa Skaffold kuu ogolaanaya inaad sameyso:

  • Lasoco isbedelada koodhka isha
  • Ku dheji weelka birta haddii uusan u baahnayn isku-ururin.
  • Ku ururi weelasha koodka leh, haddii luqadda la turjumayo, ama soo ururi agabka oo ku xidh weel.
  • Sawirada ka soo baxa si toos ah ayaa loo hubiyaa iyadoo la isticmaalayo weel-qaab-imtixaan.
  • Ku calaamadinta iyo ku dhejinta sawirada Diiwaanka Docker.
  • Geli arjiga kutlada adoo isticmaalaya kubectl, Helm ama kustomize.
  • Samee gudbinta dekedda
  • Codsiyada qaladka ah ee ku qoran Java, Node.js, Python.

Socodka shaqada ee kala duwanaansho kala duwan ayaa si cad loogu qeexay faylka skaffold.yaml. Mashruuc, waxaad sidoo kale qeexi kartaa dhowr profiles oo aad qayb ahaan ama gebi ahaanba bedeli karto marxaladaha isku dhafka iyo hawlgelinta. Tusaale ahaan, horumarinta, sheeg sawirka aasaasiga ah ee ku habboon horumariyaha, iyo diyaarinta iyo soo saarista - mid yar (+ isticmaalka securityContext weel ama dib u qeex kooxda codsiga la geyn doono).

Weelasha docker-ka waxaa laga dhisi karaa gudaha ama meel fog: gudaha Dhismaha Google Cloud ama koox la isticmaalayo Kaniko. Bazel iyo Jib Maven/Gradle sidoo kale waa la taageeray. Calaamadaynta, Skaffold waxay taageertaa xeelado badan: by git commit hash, taariikhda/waqtiga, sha256-wadarta ilaha, iwm.

Si gooni ah, waxaa habboon in la xuso suurtagalnimada tijaabinta weelasha. Qaab dhismeedka tijaabada weelka ee hore loo sheegay ayaa bixiya hababka xaqiijinta ee soo socda:

  • Fulinta amarada macnaha guud ee weelka oo leh la socodka xaaladaha ka bixida iyo hubinta qoraalka amarka.
  • Hubinta joogitaanka faylalka ku jira weelka iyo is waafajinta sifooyinka la cayimay.
  • Xakamaynta waxa ku jira faylka adoo isticmaalaya tibaaxo joogto ah.
  • Xaqiijinta xogta badan ee sawirka (ENV, ENTRYPOINT, VOLUMES iyo wixi la mida.).
  • Hubinta waafaqsanaanta shatiga

Isku-xidhka faylalka weelka looma fuliyo sida ugu wanaagsan: Skaffold waxay si fudud u abuurtaa kaydka ilaha, koobiyo oo ka furto weelka (tar waa in la rakibaa). Sidaa darteed, haddii hawshaada ugu weyni ay tahay isku-darka koodhka, waxa fiican inaad eegto xal gaar ah (ksync).

Aaladaha loogu talagalay horumarinta codsiyada ka socda Kubernetes
Marxaladaha ugu muhiimsan ee hawlgalka Skaffold

Guud ahaan, qalabku kuma ogola inaad ka soo baxdo Kubernetes muujinta oo aan lahayn wax isdhexgal ah, sidaas darteed waxay u muuqan kartaa mid adag in la barto. Laakiin tani sidoo kale waa faa'iido u leedahay - xorriyadda ficilka weyn.

Garden

  • website; GitHub.
  • Tirakoobka GH oo kooban: 1063 xiddigood, 1927 ayaa ballan qaaday, 17 wax ku darsaday.
  • Luqadda: Nooca Qoraalka (waxaa la qorsheeyay in mashruuca loo qaybiyo dhawr qaybood, kuwaas oo qaarkood ku jiri doona Go, oo sidoo kale loo sameeyo SDK si loogu abuuro add-ons ee TypeScript/JavaScript iyo Go).
  • Shatiga: Shatiga Apache 2.0.

Sida Skaffold, Beerta waxay rabta inay otomaatig u samayso hababka gaarsiinta koodka codsiga kooxda K8s. Si tan loo sameeyo, marka hore waxaad u baahan tahay inaad ku qeexdo qaab dhismeedka mashruuca ee faylka YAML, ka dibna maamula amarka garden dev. Waxay samayn doontaa sixirka oo dhan:

  • Ku ururi weelasha ay ku jiraan qaybaha kala duwan ee mashruuca.
  • Waxay qabataa imtixaanada is dhexgalka iyo unugga, haddii mid la sharraxay.
  • Waxay u soo saartaa dhammaan qaybaha mashruuca kooxda
  • Haddii koodhka isha isbeddelo, waxay dib u bilaabi doontaa dhammaan dhuumaha.

Ujeeddada ugu weyn ee isticmaalka qalabkan waa in lala wadaago koox horumarineed oo fog. Xaaladdan oo kale, haddii qaar ka mid ah dhismaha iyo tillaabooyinka tijaabada hore loo sameeyay, tani waxay si weyn u dedejin doontaa habka oo dhan, maadaama Beerta ay awood u yeelan doonto inay isticmaasho natiijooyinka kaydsan.

Mashruucu wuxuu noqon karaa weel, weel Maven, shaxda Helm, muujinta kubectl apply ama xitaa shaqada OpenFaaS. Waxaa intaa dheer, mid kasta oo ka mid ah cutubyada waxaa laga soo saari karaa kaydka Git ee fog. Qaybtu waxa laga yaabaa ama ma qeexi karto adeegyada, hawlaha, iyo imtixaanada. Adeegyada iyo hawluhu waxay yeelan karaan ku-tiirsanaan, markaa waxaad go'aamin kartaa isku xigxiga hawlgelinta adeeg gaar ah oo aad abaabuli karto bilaabista hawlaha iyo imtixaannada.

Beerta waxay siisa isticmaalaha dashboard qurux badan (hadda ku jira xaalad tijaabo ah), kaas oo soo bandhigaya garaafka mashruuca: qaybaha, isku xigxiga shirka, fulinta hawlaha iyo imtixaanada, xiriirkooda iyo ku tiirsanaanta. Isla markaaba browserka, waxaad ka eegi kartaa diiwaanka dhammaan qaybaha mashruuca oo aad hubiso waxa qayb gaar ah ka soo baxayso HTTP (haddii, dabcan, kheyraadka soo galaya loo caddeeyo).

Aaladaha loogu talagalay horumarinta codsiyada ka socda Kubernetes
Guddiga beerta

Qalabkani waxa kale oo uu leeyahay hab dib-u-cusbooneysii, kaas oo si fudud ula jaan-qaada isbeddelada qoraalka iyo weelka ku jira kooxda, si weyn u dedejisa habka khaladka codsiga. Beertu waxay leedahay mid wanaagsan dukumiintiyada oo aan xumaan tusaaleyaal, taasoo kuu ogolaanaysa inaad si dhakhso ah ula qabsato oo aad bilowdo isticmaalka. By habka, kaliya dhawaan waxaan daabacay tarjumaada maqaalka ka qorayaasha ay.

gunaanad

Dabcan, liiskan qalabyada loogu talagalay horumarinta iyo ciribtirka codsiyada ee Kubernetes kuma koobna. Waxaa jira waxyaabo badan oo faa'iido leh oo wax ku ool ah oo u qalma, haddii aysan ahayn maqaal gaar ah, ka dibna ugu yaraan sheegid. Noo sheeg waxaad isticmaashid, dhibaatooyinka aad la kulantay iyo sida aad u xallisay!

PS

Sidoo kale ka akhri boggayaga:

Source: www.habr.com

Add a comment