ProHoster > Blag > Riarachán > 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.
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.
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.
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:
... 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.
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.
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.
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.
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).
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.
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ó).
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!