Uirlisí d'fhorbróirí feidhmchlár a ritheann ar Kubernetes

Uirlisí d'fhorbróirí feidhmchlár a ritheann ar Kubernetes

Réitíonn cur chuige nua-aimseartha i leith oibríochtaí go leor fadhbanna práinneacha gnó. Déanann coimeádáin agus ceolfhoirneoirí tionscadail d'aon chastacht a scála go héasca, scaoileadh leaganacha nua a shimpliú, iad a dhéanamh níos iontaofa, ach ag an am céanna cruthaíonn siad fadhbanna breise d'fhorbróirí. Is breá leis an ríomhchláraitheoir, ar an gcéad dul síos, a chód: ailtireacht, cáilíocht, feidhmíocht, elegance - agus ní conas a oibreoidh sé i Kubernetes agus conas é a thástáil agus a dhífhabhtú tar éis fiú athruithe íosta a dhéanamh. Mar sin, tá sé nádúrtha go leor freisin go bhfuil uirlisí Kubernetes á bhforbairt go gníomhach, ag cabhrú le réiteach fadhbanna fiú na forbróirí is “seansaí” agus ag ligean dóibh díriú ar an rud is mó.

Soláthraíonn an t-athbhreithniú seo faisnéis ghearr faoi chuid de na huirlisí a dhéanann an saol níos éasca do ríomhchláraitheoir a bhfuil a chód ag rith i pod'ax braisle Kubernetes.

Cúntóirí simplí

Kubectl-debug

  • An croílár: cuir do choimeádán le Pod agus féach cad a tharlaíonn ann.
  • GitHub.
  • Staitisticí gairide GH: 715 réalta, 54 tiomantas, 9 rannpháirtí.
  • Teanga: Téigh.
  • Ceadúnas: Ceadúnas Apache 2.0.

Ligeann an breiseán seo do kubectl duit coimeádán breise a chruthú taobh istigh den pod spéise, a roinnfidh ainmspás an phróisis le coimeádáin eile. Is féidir leat oibriú an pod a dhífhabhtú: seiceáil an líonra, éisteacht le trácht líonra, déan sraith den phróiseas spéise, etc.

Is féidir leat aistriú freisin chuig an gcoimeádán próiseas ag rith chroot /proc/PID/root - is féidir é seo a bheith an-áisiúil nuair is gá duit blaosc fréimhe a fháil i gcoimeádán a bhfuil sé socraithe sa léiriú securityContext.runAs.

Tá an uirlis simplí agus éifeachtach, mar sin is féidir é a bheith úsáideach do gach forbróir. Scríobh muid níos mó faoi i alt ar leithligh.

Teileláithreacht

  • An croílár: an t-iarratas a aistriú chuig do ríomhaire. Forbair agus dífhabhtaigh go háitiúil.
  • Suíomh; GitHub.
  • Staitisticí gairide GH: 2131 réalta, 2712 tiomantas, 33 ranníocóir.
  • Teanga: Python.
  • Ceadúnas: Ceadúnas Apache 2.0.

Is é an smaoineamh atá leis an snap-in seo ná coimeádán a sheoladh leis an bhfeidhmchlár ar an ríomhaire úsáideora áitiúil agus seachfhreastalaí a dhéanamh ar gach trácht ón mbraisle chuige agus ar ais. Ligeann an cur chuige seo duit forbairt go háitiúil trí chomhaid a chur in eagar sa IDE is fearr leat: beidh na torthaí ar fáil láithreach.

Is iad na buntáistí a bhaineann le reáchtáil go háitiúil ná áisiúlacht na n-athruithe agus torthaí an toirt, an cumas an t-iarratas a dhífhabhtú ar an ngnáthbhealach. Is é an taobh thíos ná go bhfuil sé ag éileamh ar luas ceangail, rud atá le feiceáil go háirithe nuair a bhíonn ort oibriú le feidhmchlár a bhfuil RPS agus trácht sách ard aige. Ina theannta sin, tá fadhbanna ag Telepresence le gléasanna toirte ar Windows, rud a d’fhéadfadh a bheith ina theorannú cinntitheach d’fhorbróirí atá i dtaithí ar an OS seo.

Táimid tar éis ár dtaithí ar úsáid na Teileláithreachta a roinnt cheana féin anseo.

Ksync

  • An croílár: sioncrónú cód beagnach meandarach leis an gcoimeádán sa bhraisle.
  • GitHub.
  • Staitisticí gairide GH: 555 réalta, 362 tiomantas, 11 rannpháirtí.
  • Teanga: Téigh.
  • Ceadúnas: Ceadúnas Apache 2.0.

Ligeann an áirgiúlacht duit inneachar eolaire áitiúil a shioncronú leis an eolaire coimeádán atá ag rith sa bhraisle. Tá uirlis den sórt sin foirfe d'fhorbróirí i dteangacha ríomhchláraithe scriptithe, arb í an phríomhfhadhb atá acu cód a sheachadadh chuig coimeádán reatha. Tá Ksync deartha chun an tinneas cinn seo a mhaolú.

Nuair a bheidh an t-ordú tosaithe uair amháin ksync init cruthaítear DaemonSet sa bhraisle, a úsáidtear chun monatóireacht a dhéanamh ar staid chóras comhaid an choimeádáin roghnaithe. Ar a ríomhaire áitiúil, ritheann an forbróir an t-ordú ksync watch, a dhéanann monatóireacht ar chumraíochtaí agus ritheann sioncronaithe, a dhéanann comhaid a shioncronú go díreach leis an mbraisle.

Níl fágtha ach a threorú do ksync cad atá le sioncronú leis an méid. Mar shampla, an t-ordú seo:

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

... cruthóidh sé faireoir ainmnithe myprojecta chuardóidh pod le lipéad app=backend agus déan iarracht an t-eolaire áitiúil a shioncronú /home/user/myproject/ le catalóg /var/www/myproject/ ag an gcoimeádán ar a dtugtar php.

Fadhbanna agus nótaí ar ksync ónár dtaithí:

  • Ní mór é a úsáid ar nóid bhraisle Kubernetes overlay2 Mar tiománaí stórála do Docker. Ní oibreoidh an áirgiúlacht le haon daoine eile.
  • Agus Windows á n-úsáid mar chliant OS, b'fhéidir nach n-oibreoidh faireoir an chórais comhad i gceart. Tugadh an fabht seo faoi deara agus tú ag obair le heolairí móra - le líon mór comhad neadaithe agus eolairí. Chruthaigh muid ceist ábhartha sa tionscadal sioncronaithe, ach níl aon dul chun cinn déanta air go fóill (ó thús mhí Iúil).
  • Úsáid comhad .stignore chun cosáin nó patrúin comhaid a shonrú nach gá iad a shioncronú (mar shampla, eolairí app/cache и .git).
  • De réir réamhshocraithe, atosóidh ksync an coimeádán aon uair a athraíonn comhaid. Do Node.js tá sé seo áisiúil, ach do PHP tá sé go hiomlán gan ghá. Is fearr opcache a mhúchadh agus an bhratach a úsáid --reload=false.
  • Is féidir an chumraíocht a cheartú i gcónaí i $HOME/.ksync/ksync.yaml.

Squash

  • An croílár: próisis dífhabhtaithe go díreach sa bhraisle.
  • GitHub.
  • Staitisticí gairide GH: 1154 réalta, 279 tiomantas, 23 rannpháirtí.
  • Teanga: Téigh.
  • Ceadúnas: Ceadúnas Apache 2.0.

Tá an uirlis seo deartha le haghaidh próisis dífhabhtaithe go díreach i pods. Tá an áirgiúlacht simplí agus idirghníomhach is féidir leat an dífhabhtóir atá ag teastáil a roghnú (Féach thíos) agus ainmspás + pod, ar gá duit idirghabháil a dhéanamh sa phróiseas. Tacaítear leis faoi láthair:

  • delve - le haghaidh feidhmchláir Go;
  • GDB - trí sprioc cianda + cur ar aghaidh calafoirt;
  • Seoladh calafoirt JDWP le haghaidh feidhmchláir Java a dhífhabhtú.

Ar thaobh an IDE, níl tacaíocht ar fáil ach i VScode (ag baint úsáide as síntí), áfach, áirítear Eclipse agus Intellij ar na pleananna don bhliain reatha (2019).

Chun próisis a dhífhabhtú, ritheann Scuais coimeádán pribhléideach ar na nóid bhraisle, mar sin ní mór duit dul i dtaithí ar na cumais ar dtús modh sábháilte chun fadhbanna slándála a sheachaint.

Réitigh iomlána

Gabhaimis ar aghaidh chuig an airtléire trom – níos mó tionscadal “ar mhórscála” atá deartha chun freastal láithreach ar go leor de riachtanais fhorbróirí.

NB: Sa liosta seo, ar ndóigh, tá áit le haghaidh ár bhfóntas Foinse Oscailte caoirigh (ar a dtugtaí dapp). Mar sin féin, scríobhamar cheana féin agus labhair faoi níos mó ná uair amháin, agus dá bhrí sin cinneadh gan é a chur san áireamh san athbhreithniú. Dóibh siúd ar mian leo cur amach níos fearr ar a cumas, molaimid an tuairisc a léamh/éisteacht “Is é werf ár n-uirlis le haghaidh CI/CD i Kubernetes'.

DevSpace

  • An croílár: dóibh siúd ar mian chun tosú ag obair i Kubernetes, ach nach bhfuil ag iarraidh a delve domhain isteach ina jungle.
  • GitHub.
  • Staitisticí gairide GH: 630 réalta, gealltanas 1912, 13 rannpháirtí.
  • Teanga: Téigh.
  • Ceadúnas: Ceadúnas Apache 2.0.

Réiteach ón gcuideachta den ainm céanna, a sholáthraíonn braislí bainistithe le Kubernetes le haghaidh forbairt foirne. Cruthaíodh an áirgiúlacht do bhraislí tráchtála, ach oibríonn sé go hiontach le haon cheann eile.

Agus an t-ordú á rith devspace init i gcatalóg an tionscadail a thairgfear duit (go hidirghníomhach):

  • roghnaigh braisle oibre Kubernetes,
  • úsáid atá ann cheana féin Dockerfile (nó ceann nua a ghiniúint) chun coimeádán a chruthú bunaithe air,
  • roghnaigh stór chun íomhánna coimeádáin a stóráil, etc.

Tar éis na céimeanna ullmhúcháin seo go léir, is féidir leat forbairt a thosú tríd an ordú a rith devspace dev. Tógfaidh sé an coimeádán, uaslódáil chuig an stór é, rollfaidh sé amach an t-imscaradh chuig an mbraisle agus cuirfidh sé tús le cur ar aghaidh calafoirt agus sioncrónú an choimeádáin leis an eolaire áitiúil.

Roghnach, tabharfar leid duit an teirminéal a aistriú go dtí an coimeádán. Níor cheart duit diúltú, mar i ndáiríre tosaíonn an coimeádán leis an ordú codlata, agus le haghaidh fíor-thástáil ní mór an feidhmchlár a sheoladh de láimh.

Ar deireadh, an fhoireann devspace deploy an feidhmchlár agus an bonneagar gaolmhar a rolladh amach chuig an mbraisle, agus ina dhiaidh sin tosaíonn gach rud ag feidhmiú i mód comhraic.

Stóráiltear gach cumraíocht tionscadail i gcomhad devspace.yaml. Chomh maith leis na socruithe timpeallacht forbartha, is féidir leat a fháil freisin cur síos ar an mbonneagar ann, cosúil le manifests caighdeánach Kubernetes, ach amháin go mór simplithe.

Uirlisí d'fhorbróirí feidhmchlár a ritheann ar Kubernetes
Ailtireacht agus príomhchéimeanna oibre le DevSpace

Ina theannta sin, tá sé éasca comhpháirt réamhshainithe (mar shampla, MySQL DBMS) nó cairt Helm a chur leis an tionscadal. Léigh tuilleadh i doiciméadú - níl sé casta.

Scafall

  • Suíomh; GitHub.
  • Staitisticí gairide GH: 7423 réalta, 4173 tiomantas, 136 ranníocóir.
  • Teanga: Téigh.
  • Ceadúnas: Ceadúnas Apache 2.0.

Maíonn an áirgiúlacht seo ó Google go gclúdaíonn sé gach riachtanas atá ag forbróir a rithfidh a chód ar bhealach éigin ar bhraisle Kubernetes. Níl sé chomh héasca é a úsáid agus devspace: gan aon idirghníomhaíocht, braite teanga agus uathchruthú Dockerfile ní thairgfidh siad duit anseo é.

Mar sin féin, mura gcuireann sé seo eagla ort, seo a ligeann Skaffold duit a dhéanamh:

  • Rianaigh athruithe cód foinse.
  • Sioncrónaigh é leis an gcoimeádán pod mura bhfuil gá le cóimeáil.
  • Bailigh coimeádáin le cód, má tá an teanga á léiriú, nó tiomsaigh déantáin agus pacáil isteach i gcoimeádáin iad.
  • Déantar na híomhánna mar thoradh a sheiceáil go huathoibríoch ag baint úsáide as coimeádán-struchtúr-tástáil.
  • Íomhánna a chlibeáil agus a uaslódáil chuig Clárlann an Docker.
  • Feidhmchlár a imscaradh i mbraisle ag baint úsáide as kubectl, Helm nó kustomize.
  • Déan cur ar aghaidh port.
  • Feidhmchláir dífhabhtaithe scríofa i Java, Node.js, Python.

Tá cur síos dearbhach sa chomhad ar shreabhadh oibre in éagsúlachtaí éagsúla skaffold.yaml. Le haghaidh tionscadail, is féidir leat roinnt próifílí a shainiú freisin inar féidir leat na céimeanna tionóil agus imlonnaithe a athrú go páirteach nó go hiomlán. Mar shampla, le haghaidh forbartha, sonraigh íomhá bonn atá áisiúil don fhorbróir, agus le haghaidh stáitse agus táirgeadh - ceann íosta (+ úsáid securityContext coimeádáin nó ath-shainmhínigh an braisle ina n-imlonnófar an t-iarratas).

Is féidir coimeádáin docker a thógáil go háitiúil nó go cianda: i Google Cloud Build nó i mbraisle ag baint úsáide as Kaniko. Tugtar tacaíocht freisin do Bazel agus Jib Maven/Gradle. Le haghaidh clibeála, tacaíonn Skaffold le go leor straitéisí: le git tiomanta hash, dáta / am, sha256-suim foinsí, etc.

Ar leithligh, is fiú a thabhairt faoi deara go bhféadfaí coimeádáin a thástáil. Tairgeann an creat tástála struchtúir coimeádán a luadh cheana na modhanna fíoraithe seo a leanas:

  • Orduithe a fhorghníomhú i gcomhthéacs coimeádán le stádas scoir a rianú agus aschur téacs an ordaithe a sheiceáil.
  • Seiceáil láithreacht comhaid sa choimeádán agus meaitseáil na tréithe sonraithe.
  • Rialú ar ábhar comhaid ag baint úsáide as nathanna rialta.
  • Fíorú meiteashonraí íomhánna (ENV, ENTRYPOINT, VOLUMES agus a leithéidí).
  • Comhoiriúnacht ceadúnais a sheiceáil.

Ní dhéantar comhaid a shioncronú leis an gcoimeádán ar an mbealach is fearr: cruthaíonn Skaffold cartlann leis na foinsí, déanann sé é a chóipeáil agus a dhíphacáil sa choimeádán (ní mór tarra a shuiteáil). Dá bhrí sin, más é do phríomhthasc ná sioncrónú cód, is fearr breathnú i dtreo réiteach speisialaithe (ksync).

Uirlisí d'fhorbróirí feidhmchlár a ritheann ar Kubernetes
Príomhchéimeanna oibríocht Skaffold

Go ginearálta, ní cheadaíonn an uirlis duit achomaireacht ó Kubernetes manifests agus nach bhfuil aon idirghníomhaíocht, mar sin d'fhéadfadh sé cosúil deacair a mháistir. Ach tá sé seo freisin a buntáiste - níos mó saoirse gníomhaíochta.

Garden

  • Suíomh; GitHub.
  • Staitisticí gairide GH: 1063 réalta, tiomantas 1927, 17 rannpháirtí.
  • Teanga: TypeScript (tá sé beartaithe an tionscadal a roinnt ina chomhpháirteanna éagsúla, cuid acu in Go, agus SDK a dhéanamh freisin chun breiseáin a chruthú i TypeScript/JavaScript agus Go).
  • Ceadúnas: Ceadúnas Apache 2.0.

Cosúil le Skaffold, tá sé mar aidhm ag Garden na próisis a bhaineann le cód iarratais a sheachadadh chuig braisle K8s a uathoibriú. Chun seo a dhéanamh, ní mór duit cur síos a dhéanamh ar struchtúr an tionscadail i gcomhad YAML ar dtús, agus ansin an t-ordú a rith garden dev. Déanfaidh sí an draíocht ar fad:

  • Bailigh coimeádáin le codanna éagsúla den tionscadal.
  • Déanann sé tástálacha comhtháthú agus aonaid, más ann dóibh a bhfuil cur síos déanta orthu.
  • Rolladh amach comhpháirteanna uile an tionscadail sa bhraisle.
  • Má athraíonn an cód foinse, atosóidh sé an phíblíne iomlán.

Is é príomhfhócas an uirlis seo a úsáid ná braisle iargúlta a roinnt le foireann forbartha. Sa chás seo, má tá cuid de na céimeanna tógála agus tástála déanta cheana féin, cuirfidh sé seo go mór leis an bpróiseas iomlán, ós rud é go mbeidh Garden in ann na torthaí taisce a úsáid.

Is féidir le modúl tionscadail a bheith ina choimeádán, ina choimeádán Maven, ina chairt Helm, ina léiriú do kubectl apply nó fiú feidhm OpenFaaS. Thairis sin, is féidir aon cheann de na modúil a tharraingt ó stór iargúlta Git. Féadfaidh modúl seirbhísí, tascanna agus tástálacha a shainiú nó nach féidir. Féadfaidh spleáchais a bheith ag seirbhísí agus tascanna, ionas gur féidir leat seicheamh imlonnaithe seirbhíse áirithe a chinneadh agus seoladh tascanna agus tástálacha a eagrú.

Soláthraíonn Garden painéal álainn don úsáideoir (i láthair na huaire i staid turgnamhach), a thaispeánann graf an tionscadail: comhpháirteanna, seicheamh cóimeála, cur i gcrích tascanna agus tástálacha, a gceangal agus a spleáchais. Ar dheis sa bhrabhsálaí, is féidir leat logaí na gcomhpháirteanna tionscadail go léir a fheiceáil agus seiceáil cad a aschuireann comhpháirt ar leith trí HTTP (má dhearbhaítear, ar ndóigh, acmhainn iontrála dó).

Uirlisí d'fhorbróirí feidhmchlár a ritheann ar Kubernetes
Painéal don Ghairdín

Tá modh athlódála te ag an uirlis seo freisin, rud a shioncrónaíonn go simplí athruithe scripte leis an gcoimeádán sa bhraisle, rud a chuireann dlús mór leis an bpróiseas dífhabhtaithe iarratais. Tá ceann maith ag gairdín an doiciméadú agus ní olc sraith samplaí, rud a ligeann duit dul i dtaithí air go tapa agus tosú á úsáid. Dála an scéil, ach le déanaí d'fhoilsíomar aistriúchán alt óna húdair.

Conclúid

Ar ndóigh, níl an liosta uirlisí seo chun feidhmchláir a fhorbairt agus a dhífhabhtú i Kubernetes teoranta dóibh. Tá i bhfad níos mó fóntais an-úsáideach agus praiticiúla atá fiú, más rud é nach alt ar leith, ansin ar a laghad a lua. Inis dúinn cad a úsáideann tú, cad iad na fadhbanna a bhí agat agus conas a réitigh tú iad!

PS

Léigh freisin ar ár mblag:

Foinse: will.com

Add a comment