Innealan airson luchd-leasachaidh thagraidhean a tha a’ ruith air Kubernetes

Innealan airson luchd-leasachaidh thagraidhean a tha a’ ruith air Kubernetes

Tha dòigh-obrach ùr-nodha a thaobh gnìomhachd a’ fuasgladh mòran dhuilgheadasan gnìomhachais èiginneach. Bidh luchd-gleidhidh agus orcastra ga dhèanamh furasta pròiseactan de iom-fhillteachd sam bith a sgèileadh, sgaoileadh dreachan ùra a dhèanamh nas sìmplidhe, gan dèanamh nas earbsaiche, ach aig an aon àm bidh iad a ’cruthachadh dhuilgheadasan a bharrachd do luchd-leasachaidh. Tha am prògramadair, an toiseach, a’ gabhail cùram mun chòd aige: ailtireachd, càileachd, coileanadh, eireachdas - agus chan ann mar a dh’ obraicheas e ann an Kubernetes agus mar a nì e deuchainn agus dì-bhugachadh às deidh eadhon glè bheag de dh’ atharrachaidhean a dhèanamh. Mar sin, tha e cuideachd gu math nàdarra gu bheil innealan airson Kubernetes gan leasachadh gu gnìomhach, a 'cuideachadh le fuasgladh fhaighinn air duilgheadasan eadhon an luchd-leasachaidh as "àrsaidh" agus a' leigeil leotha fòcas a chur air a 'phrìomh rud.

Tha an lèirmheas seo a’ toirt seachad fiosrachadh goirid mu chuid de na h-innealan a nì beatha nas fhasa do phrogramaiche aig a bheil còd a’ ruith ann am pod’ax cruinneachadh Kubernetes.

Luchd-cuideachaidh sìmplidh

Kubectl-debug

  • An loidhne shìos: cuir do shoitheach ri Pod agus faic dè thachras ann.
  • GitHub.
  • Staitistig ghoirid GH: 715 rionnagan, 54 a’ gealltainn, 9 com-pàirtichean.
  • Cànan: Rach.
  • Cead: Cead Apache 2.0.

Leigidh am plugan seo airson kubectl leat soitheach a bharrachd a chruthachadh taobh a-staigh a’ phòla ùidh, a roinneadh àite-ainm a’ phròiseis le soithichean eile. Annta faodaidh tu obrachadh a ’phoit a dhì-cheadachadh: thoir sùil air an lìonra, èist ri trafaic lìonra, dèan sreath den phròiseas inntinneach, msaa.

Faodaidh tu cuideachd atharrachadh gu container phròiseas le bhith a 'ruith chroot /proc/PID/root - faodaidh seo a bhith gu math goireasach nuair a dh’ fheumas tu slige freumh fhaighinn ann an soitheach airson a bheil e suidhichte anns an fhoillseachadh securityContext.runAs.

Tha an inneal sìmplidh agus èifeachdach, agus mar sin faodaidh e a bhith feumail do gach leasaiche. Sgrìobh sinn barrachd mu dheidhinn ann an artaigil air leth.

Teile-liochd

  • An loidhne shìos: gluasad an aplacaid chun choimpiutair agad. Leasaich agus deasbaid gu h-ionadail.
  • làrach-lìn; GitHub.
  • Staitistig ghoirid GH: 2131 rionnagan, 2712 a’ gealltainn, 33 com-pàirtichean.
  • Cànan: Python.
  • Cead: Cead Apache 2.0.

Is e beachd an t-snaim seo soitheach a chuir air bhog leis an tagradh air a’ choimpiutair cleachdaiche ionadail agus neach-ionaid a h-uile trafaic bhon bhuidheann thuige agus air ais. Leigidh an dòigh-obrach seo leat leasachadh gu h-ionadail le bhith dìreach a’ deasachadh fhaidhlichean anns an IDE as fheàrr leat: bidh na toraidhean rim faighinn sa bhad.

Is e na buannachdan bho bhith a’ ruith gu h-ionadail goireasachd deasachaidhean agus toraidhean sa bhad, an comas an tagradh a dheasbad san dòigh àbhaisteach. Is e an ana-cothrom gu bheil e èiginneach air astar ceangail, a tha gu sònraichte follaiseach nuair a dh’ fheumas tu a bhith ag obair le tagradh le RPS meadhanach àrd agus trafaic. A bharrachd air an sin, tha duilgheadasan aig Telepresence le àrdachadh meud air Windows, a dh’ fhaodadh a bhith na chuingealachadh cinnteach dha luchd-leasachaidh a tha cleachdte ris an OS seo.

Tha sinn mu thràth air ar n-eòlas air cleachdadh Telepresence a cho-roinn an seo.

Ksync

  • An loidhne shìos: sioncronadh còd cha mhòr sa bhad leis a’ ghobhar anns a’ bhraisle.
  • GitHub.
  • Staitistig ghoirid GH: 555 rionnagan, 362 a’ gealltainn, 11 com-pàirtichean.
  • Cànan: Rach.
  • Cead: Cead Apache 2.0.

Leigidh an goireas leat susbaint eòlaire ionadail a shioncronachadh leis an eòlaire de shoitheach a tha a’ ruith sa bhuidheann. Tha inneal mar seo foirfe dha luchd-leasachaidh ann an sgrìobhadh cànanan prògramadh, aig a bheil prìomh dhuilgheadas a bhith a’ lìbhrigeadh còd gu soitheach ruith. Tha Ksync air a dhealbhadh gus faochadh a thoirt don cheann goirt seo.

Nuair a thòisichear aon uair leis an àithne ksync init tha DaemonSet air a chruthachadh anns a’ bhraisle, a thathas a’ cleachdadh gus sùil a chumail air staid siostam faidhle an t-soithich taghte. Air a 'choimpiutair ionadail aige, bidh an leasaiche a' ruith an àithne ksync watch, a bhios a’ cumail sùil air rèiteachaidhean agus ruith sioncranachaidh, a bhios gu dìreach a’ sioncronadh fhaidhlichean leis a’ bhuidheann.

Chan eil air fhàgail ach stiùireadh a thoirt do ksync dè a bu chòir a shioncronachadh le dè. Mar eisimpleir, an òrdugh seo:

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

... cruthaichidh neach-faire ainmichte myprojecta bhios a’ lorg pod le leubail app=backend agus feuch ris an eòlaire ionadail a shioncronachadh /home/user/myproject/ le catalog /var/www/myproject/ aig a' ghobhar ris an canar php.

Duilgheadasan agus notaichean air ksync bhon eòlas againn:

  • Feumar a chleachdadh air nodan cruinneachadh Kubernetes overlay2 Mar dhràibhear stòraidh airson Docker. Cha obraich an goireas le gin eile.
  • Nuair a bhios tu a’ cleachdadh Windows mar OS teachdaiche, is dòcha nach obraich neach-coimhead an t-siostam faidhle gu ceart. Chaidh am biast seo a thoirt fa-near nuair a bha e ag obair le clàran mòra - le àireamh mhòr de fhaidhlichean neadachaidh agus chlàran. Chruthaich sinn cùis iomchaidh anns a 'phròiseact sioncronaidh, ach chan eil adhartas sam bith ann fhathast (bho thoiseach an Iuchair).
  • Cleachd faidhle .stignore gus slighean no pàtrain faidhle a shònrachadh nach fheumar a shioncronachadh (mar eisimpleir, clàran app/cache и .git).
  • Gu gnàthach, ath-thòisichidh ksync an soitheach nuair a dh’ atharraicheas faidhlichean. Airson Node.js tha seo goireasach, ach airson PHP tha e gu tur neo-riatanach. Tha e nas fheàrr opcache a chuir dheth agus am bratach a chleachdadh --reload=false.
  • Faodar an rèiteachadh a cheartachadh an-còmhnaidh $HOME/.ksync/ksync.yaml.

Squais

  • An loidhne shìos: pròiseasan deasbaid gu dìreach anns a’ bhuidheann.
  • GitHub.
  • Staitistig ghoirid GH: 1154 rionnagan, 279 a’ gealltainn, 23 com-pàirtichean.
  • Cànan: Rach.
  • Cead: Cead Apache 2.0.

Tha an inneal seo air a dhealbhadh airson pròiseasan dì-bhugachaidh gu dìreach ann am pods. Tha an goireas sìmplidh agus eadar-ghnìomhach a’ leigeil leat an debugger a tha thu ag iarraidh a thaghadh (faic gu h-ìosal) agus namespace + pod, anns a 'phròiseas a dh'fheumas tu eadar-theachd. Le taic an-dràsta:

  • delve - airson tagraidhean Go;
  • GDB - tro targaid iomallach + port air adhart;
  • Port JDWP air adhart airson tagraidhean Java a dhì-bhugachadh.

Air taobh IDE, chan eil taic ri fhaighinn ach ann an VScode (a’ cleachdadh leudachadh), ge-tà, tha planaichean airson na bliadhna seo (2019) a’ toirt a-steach Eclipse agus Intellij.

Gus pròiseasan dì-bhugachaidh, bidh Squash a’ ruith soitheach sochair air na nodan cnuasachaidh, agus mar sin feumaidh tu an toiseach eòlas fhaighinn air na comasan modh sàbhailte gus duilgheadasan tèarainteachd a sheachnadh.

Fuasglaidhean coileanta

Gluaisidh sinn air adhart gu làmhachas trom - barrachd phròiseactan “mòr-sgèile” air an dealbhadh gus coinneachadh sa bhad ri mòran de fheumalachdan luchd-leasachaidh.

NB: Anns an liosta seo, gu dearbh, tha àite ann airson ar goireas Open Source gaoir (air an robh dapp roimhe). Ach, tha sinn mu thràth air sgrìobhadh agus bruidhinn mu dheidhinn barrachd air aon uair, agus mar sin cho-dhùin sinn gun a bhith ga thoirt a-steach don ath-sgrùdadh. Dhaibhsan a tha airson a bhith nas eòlaiche air na comasan aige, tha sinn a’ moladh an aithisg a leughadh/ èisteachd ris “Is e werf an inneal againn airson CI/CD ann an Kubernetes".

DevSpace

  • An loidhne shìos: dhaibhsan a tha airson tòiseachadh ag obair ann an Kubernetes, ach nach eil airson a dhol a-steach don jungle aige.
  • GitHub.
  • Staitistig ghoirid GH: 630 rionnagan, 1912 a’ gealltainn, 13 a’ cur a-steach.
  • Cànan: Rach.
  • Cead: Cead Apache 2.0.

Fuasgladh bhon chompanaidh den aon ainm, a bheir seachad cruinneachaidhean stiùirichte le Kubernetes airson leasachadh sgioba. Chaidh an goireas a chruthachadh airson cruinneachaidhean malairteach, ach tha e ag obair gu math le gin eile.

Nuair a ruith an àithne devspace init ann an catalog a’ phròiseict thèid a thabhann dhut (gu h-eadar-ghnìomhach):

  • tagh buidheann obrach Kubernetes,
  • cleachdadh a tha ann mar-thà Dockerfile (no cruthaich fear ùr) gus soitheach a chruthachadh stèidhichte air,
  • tagh stòr airson ìomhaighean container a stòradh, msaa.

Às deidh na ceumannan ullachaidh sin uile, faodaidh tu tòiseachadh air leasachadh le bhith a ’ruith an àithne devspace dev. Togaidh e an soitheach, luchdaichidh e suas e don stòr, cuir a-steach an cleachdadh chun bhuidheann agus tòisichidh e air port air adhart agus sioncronadh an t-soithich leis an eòlaire ionadail.

Gu roghnach, thèid iarraidh ort an inneal-crìochnachaidh a ghluasad chun bhogsa. Cha bu chòir dhut diùltadh, oir gu fìrinneach bidh an soitheach a’ tòiseachadh leis an àithne cadail, agus airson fìor dheuchainn feumaidh an tagradh a chuir air bhog le làimh.

Mu dheireadh, an sgioba devspace deploy a’ sgaoileadh an tagraidh agus a’ bhun-structair co-cheangailte ris a’ bhuidheann, agus às deidh sin bidh a h-uile càil a’ tòiseachadh ag obair ann am modh sabaid.

Tha a h-uile rèiteachadh pròiseict air a stòradh ann am faidhle devspace.yaml. A bharrachd air na suidheachaidhean àrainneachd leasachaidh, gheibh thu cuideachd tuairisgeul air a’ bhun-structar a tha ann, coltach ri comharran àbhaisteach Kubernetes, dìreach air a dhèanamh nas sìmplidhe.

Innealan airson luchd-leasachaidh thagraidhean a tha a’ ruith air Kubernetes
Ailtireachd agus prìomh ìrean de bhith ag obair le DevSpace

A bharrachd air an sin, tha e furasta pàirt ro-mhìnichte (mar eisimpleir, MySQL DBMS) no cairt Helm a chur ris a’ phròiseact. Leugh tuilleadh ann an sgrìobhainnean - chan eil e iom-fhillte.

Sgeadaich

  • làrach-lìn; GitHub.
  • Staitistig ghoirid GH: 7423 rionnagan, 4173 a’ gealltainn, 136 com-pàirtichean.
  • Cànan: Rach.
  • Cead: Cead Apache 2.0.

Tha an goireas seo bho Google ag ràdh gu bheil e a’ còmhdach feumalachdan leasaiche a bhios a chòd a’ ruith dòigh air choireigin air buidheann Kubernetes. Chan eil e cho furasta a chleachdadh ri devspace: chan eil eadar-ghnìomhachd ann, lorg cànain agus cruthachadh fèin-ghluasadach Dockerfile cha toir iad seachad e dhut an seo.

Ach, mura cuir seo eagal ort, seo na leigidh Skaffold leat a dhèanamh:

  • Cum sùil air atharrachaidhean còd stòr.
  • Sioncronaich e leis a’ ghobhar pod mura h-eil feum air co-chruinneachadh.
  • Cruinnich soithichean le còd, ma tha an cànan air a mhìneachadh, no cruinnich artifacts agus pacaich iad ann an soithichean.
  • Thèid na h-ìomhaighean a thig às a sgrùdadh gu fèin-ghluasadach a’ cleachdadh container-structar-deuchainn.
  • A’ tagadh agus a’ luchdachadh suas ìomhaighean gu Clàr Docker.
  • Cleachd tagradh ann am brabhsair a’ cleachdadh kubectl, Helm no kustomize.
  • Dèan port air adhart.
  • Tagraidhean debug sgrìobhte ann an Java, Node.js, Python.

Tha sruth-obrach ann an diofar atharrachaidhean air a mhìneachadh gu dearbhach san fhaidhle skaffold.yaml. Airson pròiseact, faodaidh tu cuideachd grunn phròifil a mhìneachadh anns an urrainn dhut na h-ìrean cruinneachaidh is cleachdadh atharrachadh gu ìre no gu tur. Mar eisimpleir, airson leasachadh, sònraich ìomhaigh bunaiteach a tha iomchaidh don leasaiche, agus airson cumail suas agus cinneasachadh - an ìre as lugha (+ cleachdadh securityContext soithichean no ath-mhìneachadh an cruinneachadh anns an tèid an tagradh a chleachdadh).

Faodar soithichean docker a thogail gu h-ionadail no air astar: ann an Togail Google Cloud no ann am buidheann a’ cleachdadh Cainneach. Tha Bazel agus Jib Maven / Gradle cuideachd a’ faighinn taic. Airson tagadh, tha Skaffold a’ toirt taic do dh’ iomadh ro-innleachd: le git gealltanas hash, ceann-latha/ùine, sha256-suim de stòran, msaa.

Air leth, is fhiach a bhith mothachail gu bheil e comasach deuchainn a dhèanamh air soithichean. Tha am frèam deuchainn structar-container a chaidh ainmeachadh mar-thà a’ tabhann na dòighean dearbhaidh a leanas:

  • A’ cur an gnìomh òrdughan ann an co-theacsa soitheach le bhith a’ cumail sùil air inbhean fàgail agus a’ sgrùdadh toradh teacsa na h-àithne.
  • A’ sgrùdadh làthaireachd fhaidhlichean anns a’ bhogsa agus a’ maidseadh nam feartan a chaidh a shònrachadh.
  • Smachd air susbaint faidhle a’ cleachdadh abairtean cunbhalach.
  • Dearbhadh meata-dàta ìomhaigh (ENV, ENTRYPOINT, VOLUMES msaa).
  • A’ sgrùdadh co-chòrdalachd ceadachais.

Chan eilear a’ sioncronadh fhaidhlichean leis a’ ghobhar anns an dòigh as fheàrr: bidh Skaffold dìreach a’ cruthachadh tasglann leis na stòran, ga chopaigeadh agus ga dhì-phapadh anns a’ ghobhar (feumar teàrr a chuir a-steach). Mar sin, mas e sioncronadh còd a’ phrìomh obair agad, tha e nas fheàrr coimhead a dh’ ionnsaigh fuasgladh sònraichte (ksync).

Innealan airson luchd-leasachaidh thagraidhean a tha a’ ruith air Kubernetes
Prìomh ìrean de obrachadh Skaffold

San fharsaingeachd, chan eil an t-inneal a 'toirt cothrom dhut tarraing a-mach à taisbeanaidhean Kubernetes agus chan eil eadar-ghnìomhachd sam bith ann, agus mar sin dh' fhaodadh gum bi e doirbh a mhaighstir. Ach tha seo cuideachd na bhuannachd - barrachd saorsa gnìomh.

Garden

  • làrach-lìn; GitHub.
  • Staitistig ghoirid GH: 1063 rionnagan, 1927 a’ gealltainn, 17 com-pàirtichean.
  • Cànan: TypeScript (thathas an dùil am pròiseact a roinn ann an grunn phàirtean, cuid dhiubh ann an Go, agus cuideachd SDK a dhèanamh airson tuilleadan a chruthachadh ann an TypeScript/JavaScript and Go).
  • Cead: Cead Apache 2.0.

Coltach ri Skaffold, tha Garden ag amas air fèin-ghluasad a dhèanamh air pròiseasan lìbhrigidh còd tagraidh gu cruinneachadh K8s. Gus seo a dhèanamh, feumaidh tu an toiseach cunntas a thoirt air structar a’ phròiseict ann am faidhle YAML, agus an uairsin ruith an àithne garden dev. Nì i an draoidheachd gu lèir:

  • Cruinnich soithichean le diofar phàirtean den phròiseact.
  • A’ dèanamh deuchainnean amalachaidh agus aonad, ma tha gin air a mhìneachadh.
  • A’ sgaoileadh a h-uile pàirt den phròiseact chun bhuidheann.
  • Ma dh’ atharraicheas an còd stòr, ath-thòisichidh e an loidhne-phìoban gu lèir.

Is e prìomh amas cleachdadh an inneil seo cruinneachadh iomallach a cho-roinn le sgioba leasachaidh. Anns a ’chùis seo, ma chaidh cuid de na ceumannan togail is deuchainn a dhèanamh mu thràth, luathaichidh seo am pròiseas gu lèir gu mòr, leis gum bi e comasach dha Garden na toraidhean taisgte a chleachdadh.

Faodaidh modal pròiseict a bhith na shoitheach, inneal Maven, cairt Helm, foillseachadh airson kubectl apply no eadhon gnìomh OpenFaaS. A bharrachd air an sin, faodar gin de na modalan a tharraing bho stòr Git iomallach. Faodaidh modal seirbheisean, gnìomhan agus deuchainnean a mhìneachadh no nach eil. Faodaidh eisimeileachd a bhith aig seirbheisean agus gnìomhan, gus an urrainn dhut sreath cleachdadh seirbheis sònraichte a dhearbhadh agus cur air bhog gnìomhan agus deuchainnean a chuir air dòigh.

Tha Garden a’ toirt deas-bhòrd brèagha don neach-cleachdaidh (an-dràsta ann an staid deuchainneach), a tha a’ taisbeanadh graf a’ phròiseict: co-phàirtean, sreath cruinneachaidh, coileanadh ghnìomhan is dheuchainnean, na ceanglaichean agus an eisimeileachd. Dìreach anns a 'bhrobhsair, faodaidh tu na logaichean de phàirtean pròiseict gu lèir fhaicinn agus dearbhadh dè a tha co-phàirt sònraichte a' toirt a-mach tro HTTP (ma tha, gu dearbh, goireas inntrigidh air ainmeachadh air a shon).

Innealan airson luchd-leasachaidh thagraidhean a tha a’ ruith air Kubernetes
Pannal airson a 'Ghàrraidh

Tha modh ath-luchdachadh teth aig an inneal seo cuideachd, a bhios dìreach a’ sioncronadh atharrachaidhean sgriobta leis a’ ghobhar sa bhuidheann, a’ luathachadh pròiseas deasbaid an tagraidh gu mòr. Tha fear math aig gàrradh na sgrìobhainnean agus nach dona seata eisimpleirean, a 'toirt cothrom dhut fàs cleachdte ris gu luath agus tòiseachadh air a chleachdadh. Air an t-slighe, dìreach o chionn ghoirid dh'fhoillsich sinn eadar-theangachadh artaigil bho na h-ùghdaran aige.

co-dhùnadh

Gu dearbh, chan eil an liosta seo de dh ’innealan airson a bhith a’ leasachadh agus a ’deasbad thagraidhean ann an Kubernetes cuingealaichte ri. Tha mòran a bharrachd ghoireasan fìor fheumail agus practaigeach ann a tha airidh air, mura h-eil artaigil air leth, an uairsin co-dhiù iomradh. Inns dhuinn dè a chleachdas tu, dè na duilgheadasan a choinnich thu agus mar a dh’ fhuasgail thu iad!

PS

Leugh cuideachd air ar blog:

Source: www.habr.com

Cuir beachd ann