Riachtanais chun feidhmchlár a fhorbairt i Kubernetes

Tá sé beartaithe agam inniu labhairt faoi conas iarratais a scríobh agus cad iad na ceanglais a bhaineann le d’iarratas a bheith ag obair go maith i Kubernetes. Ionas nach mbeidh aon tinneas cinn leis an bhfeidhmchlár, ionas nach mbeidh ort aon “cratches” a chumadh agus a thógáil timpeall air - agus oibríonn gach rud mar a bhí beartaithe ag Kubernetes féin.

Tá an léacht seo mar chuid de "Scoil Oíche Slurm ar Kubernetes" Is féidir leat féachaint ar léachtaí oscailte teoiriciúla na Scoile Tráthnóna ar Youtube, grúpáilte i seinnliosta. Dóibh siúd ar fearr leo téacs seachas físeán, tá an t-alt seo ullmhaithe againn.

Is é mo ainm Pavel Selivanov, faoi láthair tá mé an príomh-innealtóir DevOps ag Mail.ru Cloud Solutions, déanaimid scamaill, déanaimid kubernetes bainistíochta agus mar sin de. I measc na gcúraimí atá agam anois tá cúnamh le forbairt, na scamaill seo a rolladh amach, na feidhmchláir a scríobhaimid a rolladh amach agus na huirlisí a chuirimid ar fáil dár n-úsáideoirí a fhorbairt go díreach.

Riachtanais chun feidhmchlár a fhorbairt i Kubernetes

Tá DevOps á dhéanamh agam, is dóigh liom le trí bliana anuas, is dócha. Ach, i bprionsabal, tá mé ag déanamh an méid a dhéanann DevOps le tuairim is cúig bliana anois. Roimhe sin, bhí baint agam den chuid is mó le rudaí riaracháin. Thosaigh mé ag obair le Kubernetes i bhfad ó shin - is dócha go bhfuil ceithre bliana caite ó thosaigh mé ag obair leis.

Go ginearálta, thosaigh mé nuair a bhí Kubernetes leagan 1.3, is dócha, agus b'fhéidir 1.2 - nuair a bhí sé fós ina thús. Níl sé ina thús a thuilleadh - agus is léir go bhfuil éileamh mór ar an margadh d'innealtóirí ar mhaith leo a bheith in ann Kubernetes a dhéanamh. Agus tá éileamh an-ard ag cuideachtaí ar dhaoine den sórt sin. Dá bhrí sin, i ndáiríre, bhí an chuma ar an léacht seo.

Má labhraímid de réir an phlean ar a mbeidh mé ag caint faoi, tá an chuma air seo, idir lúibíní tá sé scríofa (TL; DR) - “ró-fhada; ná léigh." Beidh mo chur i láthair inniu comhdhéanta de liostaí gan teorainn.

Riachtanais chun feidhmchlár a fhorbairt i Kubernetes

Go deimhin, ní maith liom féin cur i láthair den sórt sin nuair a dhéantar iad, ach is ábhar é seo nach ndearna mé amach conas an fhaisnéis seo a eagrú ar bhealach difriúil agus an cur i láthair seo á ullmhú agam.

Toisc, den chuid is mó, gurb é an t-eolas seo ná “ctrl+c, ctrl+v”, ónár Vicí i rannán DevOps, i measc rudaí eile, áit a bhfuil ceanglais scríofa againn d’fhorbróirí: “ guys, ionas go seolfaimid d’iarratas isteach Kubernetes, ba cheart go mbeadh sé mar seo."

Sin an fáth gur tharla an cur i láthair a bheith chomh mór sin. Tá brón orm. Déanfaidh mé iarracht oiread agus is féidir a insint ionas nach mbeidh sé leadránach más féidir.

Cad atá le breathnú againn anois:

  • is iad seo, ar an gcéad dul síos, logs (logs iarratais?), cad atá le déanamh leo i Kubernetes, cad atá le déanamh leo, cad ba cheart dóibh a bheith;
  • cad atá le déanamh le cumraíochtaí i Kubernetes, cad iad na bealaí is fearr agus is measa chun iarratas Kubernetes a chumrú;
  • Labhraímis faoi cad is seiceálacha inrochtaineachta i gcoitinne, cad ba cheart a bheith acu;
  • a ligean ar labhairt faoi cad is múchadh graceful;
  • déanaimis labhairt faoi acmhainní arís;
  • Déanaimis teagmháil arís ar an ábhar stórála sonraí;
  • agus ag an deireadh inseoidh mé duit cad é an téarma feidhmchlár mistéireach scamall-dhúchasach seo. Scamalltacht, mar aidiacht den téarma seo.

Logs

Molaim tosú leis na logaí - leis an áit ar gá na logaí seo a bhrú i Kubernetes. Anois tá feidhmchlár seolta agat in Kubernetes. De réir na clasaicí, scríobh iarratais roimhe seo logaí áit éigin i gcomhad i gcónaí. Scríobh feidhmchláir dhona logaí chuig comhad in eolaire baile an fhorbróra a sheol an feidhmchlár. Scríobh feidhmchláir mhaithe logaí chuig comhad áit éigin i /var/log.

Riachtanais chun feidhmchlár a fhorbairt i Kubernetes

Dá réir sin, a thuilleadh, bhí roinnt rudaí cumraithe ag riarthóirí maith ina mbonneagar a d'fhéadfadh na logaí seo a rothlú - an rsyslog céanna, a bhreathnaíonn ar na logaí seo agus nuair a tharlaíonn rud éigin dóibh, tá go leor acu, cruthaíonn sé cóipeanna cúltaca , cuireann sé logaí ann , scriosann sé seanchomhaid, níos mó ná seachtain, sé mhí agus roinnt eile. Go teoiriciúil, ba cheart go mbeadh forálacha againn ionas go simplí toisc go scríobhann an feidhmchlár logaí, nach n-imíonn an spás ar na freastalaithe táirgeachta (freastalaithe do chomhrac?). Agus, dá réir sin, níor stop an táirgeadh iomlán mar gheall ar na logaí.

Nuair a bhogaimid go dtí saol Kubernetes agus an rud céanna a reáchtáil ann, is é an chéad rud is féidir leat aird a thabhairt air ná go leanann daoine, agus iad ag scríobh logaí i gcomhad, ag scríobh orthu.

Tarlaíonn sé, má labhraímid faoi Kubernetes, is é an áit cheart chun logaí a scríobh áit éigin ó choimeádán duga ná iad a scríobh ón bhfeidhmchlár chuig an Stdout/Stderr mar a thugtar air, is é sin, sruthanna caighdeánacha aschuir an chórais oibriúcháin, an t-aschur earráide caighdeánach. Is é seo an bealach is ceart, is simplí agus is loighciúil chun logaí a chur i bprionsabal i Docker agus go sonrach i Kubernetis. Mar má scríobhann d’iarratas logaí chuig Stdout/Stderr, is ar Docker agus ar an mbreiseán Kubernetes atá sé cinneadh a dhéanamh cad ba cheart a dhéanamh leis na logaí seo. De réir réamhshocraithe tógfaidh Docker a chomhaid speisialta i bhformáid JSON.

Anseo éiríonn an cheist, cad a dhéanfaidh tú eile leis na logs? Is é an bealach is éasca soiléir, ní mór dúinn an cumas a dhéanamh kubectl logs agus féach ar na logaí seo de na “pods”. Ach, is dócha, ní rogha an-mhaith é seo - ní mór rud éigin eile a dhéanamh leis na logaí.

Faoi láthair, déanaimis labhairt ag an am céanna, ós rud é go ndearna muid teagmháil le hábhar na logaí, ba cheart go mbeadh a leithéid de rud cosúil le logaí. Is é sin, ní bhaineann sé seo go díreach le Kubernetes, ach nuair a thosaíonn muid ag smaoineamh ar cad atá le déanamh le logs, bheadh ​​​​sé go maith smaoineamh ar seo freisin.

Tá uirlis de chineál éigin ag teastáil uainn, ar bhealach cairdiúil, a thógfaidh na logaí seo a chuireann ár ndugálaí isteach ina chomhaid agus a sheolfaidh áit éigin iad. Tríd is tríd, is gnách go seolann muid gníomhaire de chineál éigin taobh istigh de Kubernetes i bhfoirm DaemonSet - bailitheoir log, a insítear go simplí cá bhfuil na logaí a bhailíonn Docker suite. Agus glacann an gníomhaire bailiúcháin seo go simplí iad, b'fhéidir fiú iad a pharsáil ar bhealach éigin ar an mbealach, b'fhéidir iad a shaibhriú le roinnt meiteaisnéis bhreise agus, ar deireadh thiar, cuireann sé iad le haghaidh stórála áit éigin. Tá éagsúlachtaí ann cheana féin. Is dócha gurb é Elasticsearch an ceann is coitianta, áit ar féidir leat logaí a stóráil agus is féidir leat iad a aisghabháil go caothúil as sin. Ansin, ag baint úsáide as iarratas, ag baint úsáide as Kibana, mar shampla, graif a thógáil bunaithe orthu, foláirimh a thógáil bunaithe orthu, agus mar sin de.

Is é an smaoineamh is tábhachtaí, ba mhaith liom é a dhéanamh arís, ná gur droch-smaoineamh é taobh istigh Docker, go háirithe taobh istigh de Kubernetes, do logs a stóráil i gcomhad.

Toisc ar dtús, tá sé deacair na logaí taobh istigh den choimeádán a fháil i gcomhad. Ní mór duit dul isteach sa choimeádán ar dtús, exec ann, agus ansin breathnú ar na logs. Is é an chéad phointe eile ná má tá logaí agat i gcomhad, ansin is gnách go mbíonn timpeallacht íosta ag na coimeádáin agus níl aon fóntais ann a theastaíonn le haghaidh gnáth-obair le logaí. Déan iad a adhlacadh, breathnú orthu, iad a oscailt in eagarthóir téacs. Is é an chéad nóiméad eile nuair a bhíonn logaí againn i gcomhad taobh istigh de choimeádán, má scriostar an coimeádán seo, tuigeann tú, gheobhaidh na logaí bás in éineacht leis. Dá réir sin, ciallaíonn aon atosú den choimeádán nach bhfuil níos mó logaí ann. Arís, droch-rogha.

Agus is é an pointe deireanach ná go mbíonn d'iarratas istigh i gcoimeádáin de ghnáth agus sin é - is gnách gurb é an t-aon phróiseas a bhíonn ar siúl. Níl aon chaint ar chor ar bith faoi aon phróiseas a bheadh ​​​​ag rothlú comhaid le do logs. Chomh luath agus a thosaíonn na logaí á scríobh chuig comhad, ciallaíonn sé seo, gabh mo leithscéal, go dtosóimid ar an bhfreastalaí táirgeachta a chailleadh. Toisc, ar an gcéad dul síos, tá siad deacair a fháil, ní rianaíonn aon duine iad, agus ní rialaíonn aon duine iad - dá réir sin, fásann an comhad gan stad go dtí go n-imíonn an spás ar an bhfreastalaí amach. Mar sin, deirim arís gur drochsmaoineamh é logáil isteach i Docker, go háirithe i Kubernetes, chuig comhad.

An chéad phointe eile, anseo ba mhaith liom a labhairt faoi seo arís - ós rud é go bhfuil muid ag baint leis an ábhar na logs, bheadh ​​​​sé go maith chun labhairt faoi conas ba chóir logs breathnú chun é a dhéanamh áisiúil a bheith ag obair leo. Mar a dúirt mé, níl baint dhíreach ag an ábhar le Kubernetes, ach baineann sé go han-mhaith leis an ábhar DevOps. Ar an ábhar an chultúir forbartha agus cairdeas idir an dá roinn éagsúla - Dev agus Ops, ionas go mbeidh gach duine compordach.

Ciallaíonn sé seo go hidéalach, inniu, gur cheart logaí a scríobh i bhformáid JSON. Má tá roinnt feidhmchlár dothuigthe agat féin, a scríobhann logaí i bhformáidí dothuigthe toisc go gcuireann tú cló de shaghas éigin isteach nó rud éigin mar sin, tá sé in am creatlach de chineál éigin a google, fillteán de chineál éigin a ligeann duit gnáth-logáil a chur i bhfeidhm; cumasaigh paraiméadair logála i JSON ann, toisc gur formáid shimplí é JSON, is simplí é a pharsáil.

Mura n-oibríonn do JSON de réir critéar áirithe, níl a fhios ag aon duine cad é, ansin ar a laghad scríobh logaí i bhformáid is féidir a pharsáil. Anseo, in áit, is fiú smaoineamh ar an bhfíric, mar shampla, má tá tú ag rith a bunch coimeádán nó díreach próisis le nginx, agus tá a socruithe logáil féin ag gach ceann acu, ansin is dócha gur cosúil go mbeidh sé an-deacair duit. pharsáil iad. Toisc go gcaithfidh tú do pharsálaí féin a scríobh do gach cás nginx nua, toisc go scríobhann siad logaí ar bhealach difriúil. Arís, is dócha gur fiú smaoineamh ar a chinntiú go raibh an chumraíocht logála céanna ag na cásanna nginx seo go léir, agus scríobh siad a gcuid logaí go léir go haonfhoirmeach. Baineann an rud céanna le gach iarratas.

Sa deireadh, ba mhaith liom freisin breosla a chur leis an tine gur chóir, go hidéalach, logs bhformáid il-líne a sheachaint. Seo an rud, má d'oibrigh tú riamh le bailitheoirí loga, ansin is dóichí go bhfaca tú cad a gheallann siad duit, gur féidir leo oibriú le logaí il-líne, fios a bheith acu conas iad a bhailiú, agus mar sin de. Go deimhin, i mo thuairim, ní féidir le bailitheoir amháin inniu logaí il-líne a bhailiú de ghnáth, go hiomlán agus gan earráidí. Ar bhealach daonna, ionas go mbeidh sé áisiúil agus saor ó earráidí.

Riachtanais chun feidhmchlár a fhorbairt i Kubernetes

Ach tá rian cruachta i gcónaí logaí il-líne agus conas iad a sheachaint. Is í an cheist anseo ná gur taifead é loga ar imeacht, agus nach loga é statrace i ndáiríre. Má bhailímid logaí agus má chuireann muid iad áit éigin in Elasticsearch agus ansin graif a tharraingt uathu, roinnt tuarascálacha ar ghníomhaíocht úsáideora a thógáil ar do shuíomh, ansin nuair a fhaigheann tú rian cruachta, ciallaíonn sé go bhfuil rud éigin gan choinne ag tarlú i d’iarratas. Agus déanann sé ciall rian cruachta a uaslódáil go huathoibríoch áit éigin isteach i gcóras atá in ann iad a rianú.

Seo bogearraí (an Sentry céanna) a dhéantar go sonrach chun oibriú le rian cruachta. Féadann sé tascanna uathoibrithe a chruthú láithreach, iad a shannadh do dhuine, foláireamh nuair a tharlaíonn rianta reachtaithe, na rianta reachtaithe seo a ghrúpáil de réir cineáil amháin, agus mar sin de. I bprionsabal, ní dhéanann sé ciall i bhfad chun labhairt faoi staactres nuair a labhairt linn faoi logs, toisc go bhfuil siad, tar éis an tsaoil, rudaí éagsúla le cuspóirí éagsúla.

Cumraíocht

Ansin labhairt linn faoi chumraíocht i Kubernetes: cad atá le déanamh leis agus conas ba cheart feidhmchláir taobh istigh de Kubernetes a chumrú. Go ginearálta, deirim de ghnáth nach bhfuil Docker faoi choimeádáin. Tá a fhios ag gach duine go mbaineann Docker le coimeádáin, fiú iad siúd nár oibrigh mórán le Docker. Deirim arís, níl Docker faoi choimeádáin.

Baineann Docker, i mo thuairim, le caighdeáin. Agus tá caighdeáin ann le haghaidh beagnach gach rud: caighdeáin chun d'iarratas a thógáil, caighdeáin chun d'iarratas a shuiteáil.

Riachtanais chun feidhmchlár a fhorbairt i Kubernetes

Agus an rud seo - d'úsáid muid é roimhe seo, d'éirigh go háirithe tóir air le teacht na gcoimeádán - tugtar athróga ENV (comhshaol) ar an rud seo, is é sin, athróga timpeallachta atá i do chóras oibriúcháin. Is bealach iontach é seo go ginearálta chun d’iarratas a chumrú, mar má tá feidhmchláir agat i JAVA, Python, Go, Perl, Dia forbid, agus is féidir leo go léir óstach an bhunachair sonraí, úsáideoir bunachar sonraí, athróga phasfhocal bunachar sonraí a léamh, ansin tá sé iontach. Tá feidhmchláir agat i gceithre theanga éagsúla cumraithe sa phlean bunachar sonraí ar an mbealach céanna. Níl a thuilleadh cumraíochtaí éagsúla ann.

Is féidir gach rud a chumrú ag baint úsáide as athróga ENV. Nuair a labhairt linn faoi Kubernetes, tá bealach iontach a dhearbhú athróga ENV ceart taobh istigh Imscaradh. Dá réir sin, má tá muid ag caint faoi shonraí rúnda, ansin is féidir linn sonraí rúnda ó athróga ENV (pasfhocail go bunachair shonraí, etc.) a bhrú isteach i rún, braisle rúnda a chruthú agus a chur in iúl sa tuairisc ENV in Imscaradh nach bhfuil muid ag dearbhú go díreach. luach na hathróige seo, agus déanfar luach athróg phasfhocal an bhunachair shonraí seo a léamh ón rún. Is iompar caighdeánach Kubernetes é seo. Agus is é seo an rogha is fearr chun d'iarratais a chumrú. Díreach ag leibhéal an chóid, arís baineann sé seo le forbróirí. Más DevOps tú, is féidir leat ceist a chur: “A bhuachaillí, múin d’iarratas chun athróga timpeallachta a léamh. Agus beidh áthas orainn go léir.”

Má léann gach duine sa chuideachta na hathróga comhshaoil ​​​​ainmnithe céanna, is iontach an rud é sin. Mar sin nach dtarlaíonn sé go bhfuil cuid acu ag fanacht leis an mbunachar sonraí postgres, tá cuid eile ag fanacht le hainm an bhunachair shonraí, tá cuid eile ag fanacht le rud éigin eile, tá cuid eile ag fanacht le dbn de chineál éigin, ionas go mbeidh aonfhoirmeacht ann dá réir.

Tagann an fhadhb nuair a bhíonn an oiread sin athróg timpeallachta agat nach n-osclaíonn tú ach Imscaradh - agus tá cúig chéad líne d’athróga timpeallachta ann. Sa chás seo, níl agat ach athróga timpeallachta atá imithe i léig - agus ní gá duit tú féin a chéasadh a thuilleadh. Sa chás seo, bheadh ​​​​sé ciall chun tús a úsáid configs. Is é sin, cuir oiliúint ar d'iarratas chun cumraíochtaí a úsáid.

Is í an cheist amháin nach bhfuil configs cad a cheapann tú. Ní cumraíocht é config.pi atá áisiúil le húsáid. Nó roinnt cumraíochta i do bhformáid féin, mar rogha air sin cumasach - ní hé seo an cumraíocht atá i gceist agam freisin.

Is é an rud atá á rá agam ná cumraíocht i bhformáidí inghlactha, is é sin, is é an caighdeán is mó tóir ar fad ná an caighdeán .yaml. Tá sé soiléir conas é a léamh, tá sé inléite ag an duine, tá sé soiléir conas é a léamh ón iarratas.

Dá réir sin, chomh maith le YAML, is féidir leat freisin, mar shampla, JSON a úsáid, tá parsáil chomh áisiúil le YAML maidir le cumraíocht an fheidhmchláir a léamh as sin. Tá sé i bhfad níos deacra do dhaoine léamh. Is féidir leat triail a bhaint as an bhformáid, a la ini. Tá sé áisiúil go leor é a léamh, ó thaobh an duine de, ach d’fhéadfadh sé a bheith deacair é a phróiseáil go huathoibríoch, sa chiall más mian leat riamh do chuid cumraíochtaí féin a ghiniúint, d’fhéadfadh sé a bheith deacair an fhormáid ini a ghiniúint cheana féin.

Ach in aon chás, is cuma cén fhormáid a roghnaíonn tú, is é an pointe go bhfuil sé an-áisiúil ó thaobh Kubernetes de. Is féidir leat do chumraíocht iomlán a chur taobh istigh de Kubernetes, sa ConfigMap. Agus ansin tóg an configmap seo agus iarr air é a shuiteáil taobh istigh de do phod in eolaire sonrach éigin, áit a léifidh d'iarratas an chumraíocht ón configmap seo amhail is nach raibh ann ach comhad. Is é seo, i ndáiríre, an rud atá go maith le déanamh nuair a bhíonn go leor roghanna cumraíochta agat i d'iarratas. Nó níl ann ach struchtúr casta de chineál éigin, tá neadú ann.

Má tá configmap agat, is féidir leat d'iarratas a mhúineadh go han-mhaith, mar shampla, athruithe sa chomhad ina bhfuil an configmap suite a rianú go huathoibríoch, agus freisin d'iarratas a athlódáil go huathoibríoch nuair a athraíonn na cumraíochtaí. Bheadh ​​sé seo ina rogha iontach go ginearálta.

Arís, labhair mé faoi seo cheana féin - níl faisnéis rúnda sa configmap, níl faisnéis rúnda in athróga, níl faisnéis rúnda i rúin. Ó ann, ceangail an fhaisnéis rúnda seo le taidhleoireacht. De ghnáth, stóráilimid gach tuairisc ar oibiachtaí Kubernetes, imscaradh, configmaps, seirbhísí i git. Dá réir sin, is droch-smaoineamh é an focal faire a chur ar an mbunachar sonraí i git, fiú más é do git é, atá agat go hinmheánach sa chuideachta. Toisc, ar a laghad, cuimhníonn git gach rud agus níl sé chomh héasca pasfhocail a bhaint as.

Seiceáil sláinte

Is é an chéad phointe eile an rud ar a dtugtar Seiceáil Sláinte. Go ginearálta, níl i gceist le seiceáil Sláinte ach seiceáil go bhfuil d’iarratas ag obair. Ag an am céanna, is minic a bhíonn muid ag caint faoi fheidhmchláir ghréasáin áirithe, a bhfuil, dá réir sin, ó thaobh seiceáil sláinte (tá sé níos fearr gan aistriú anseo agus a thuilleadh) beidh sé seo roinnt URL speisialta, a phróiseáil siad mar. caighdeán, a dhéanann siad de ghnáth /health.

Agus an URL seo á rochtain, dá réir sin, deir ár n-iarratas "tá, ceart go leor, tá gach rud go breá liom, 200" nó "ní hea, níl gach rud go breá liomsa, thart ar 500." Dá réir sin, más rud é nach http ár n-iarratas, ní feidhmchlár gréasáin, táimid ag caint anois faoi chineál éigin deamhan, is féidir linn a dhéanamh amach conas seiceálacha sláinte a dhéanamh. Is é sin, nach bhfuil sé riachtanach, mura bhfuil an t-iarratas http, ansin oibríonn gach rud gan seiceáil sláinte agus ní féidir é seo a dhéanamh ar bhealach ar bith. Is féidir leat roinnt faisnéise a nuashonrú go tréimhsiúil sa chomhad, is féidir leat teacht suas le roinnt ordú speisialta do do dheamhan, mar, daemon status, a déarfaidh "tá, tá gach rud go breá, tá an deamhan ag obair, tá sé beo."

Cad atá i gceist leis? Is dócha gurb é an chéad rud agus an rud is soiléire cén fáth go bhfuil gá le seiceáil sláinte - chun a thuiscint go bhfuil an t-iarratas ag obair. Ciallaíonn mé, níl sé ach dúr, nuair a bhíonn sé suas anois, tá an chuma air go bhfuil sé ag obair, ionas gur féidir leat a bheith cinnte go bhfuil sé ag obair. Agus casadh sé amach go bhfuil an feidhmchlár ag rith, tá an coimeádán ag rith, tá an cás ag obair, tá gach rud go breá - agus ansin tá na húsáideoirí go léir gearrtha amach cheana féin ar na huimhreacha gutháin go léir ón tacaíocht theicniúil agus a rá "cad é atá tú..., tú? thit a chodladh, níl aon rud ag obair."

Is bealach é seiceáil sláinte chun a fheiceáil ó thaobh an úsáideora go n-oibríonn sé. Ceann de na modhanna. A ligean ar é a chur ar an mbealach seo. Ó thaobh Kubernetes, is bealach é seo freisin a thuiscint nuair a thosaíonn an t-iarratas, toisc go dtuigeann muid go bhfuil difríocht idir nuair a seoladh an coimeádán, a cruthaíodh agus a thosaigh sé, agus nuair a seoladh an t-iarratas go díreach sa choimeádán seo. Mar má ghlacann muid roinnt feidhmchlár java meán agus iarracht a dhéanamh é a sheoladh sa duga, ansin ar feadh daichead soicind, nó fiú nóiméad, nó fiú deich, is féidir tús a chur díreach fíneáil. Sa chás seo, is féidir leat ar a laghad cnag ar a calafoirt, ní bheidh sé freagra ann, is é sin, nach bhfuil sé réidh fós tráchta a fháil.

Arís, le cabhair ó sheiceáil sláinte agus le cabhair ón bhfíric go bhfuil muid ag casadh anseo, is féidir linn a thuiscint i Kubernetes nach bhfuil ach coimeádán ardaithe san iarratas, ach tá an t-iarratas féin tosaithe, freagraíonn sé cheana féin leis an seiceáil sláinte, rud a chiallaíonn gur féidir linn trácht a sheoladh ann.

Riachtanais chun feidhmchlár a fhorbairt i Kubernetes

Is é an rud a bhfuilim ag caint faoi anois ná tástálacha Ullmhachta/Beoúlachta laistigh de Kubernetes; dá réir sin, tá ár dtástálacha ullmhachta freagrach as infhaighteacht an iarratais mar chomhardú. Is é sin, má dhéantar tástálacha ullmhachta san iarratas, ansin tá gach rud ceart go leor, tá trácht na gcliant ag dul chuig an iarratas. Mura ndéantar tástálacha ullmhachta, ní bhíonn an t-iarratas rannpháirteach go simplí, ní ghlacann an cás áirithe seo páirt sa chothromú, baintear é den chothromaíocht, agus ní shreabhann trácht na gcliant. Dá réir sin, tá gá le tástálacha Beo laistigh de Kubernetes ionas gur féidir an feidhmchlár a atosú má théann sé i bhfostú. Mura n-oibríonn an tástáil beocht d'iarratas a dhearbhaítear i Kubernetes, ansin ní dhéantar an t-iarratas a bhaint díreach ón gcothromaíocht, déantar é a atosú.

Agus seo pointe tábhachtach ar mhaith liom a lua: ó thaobh praiticiúil de, is gnách go n-úsáidtear an tástáil ullmhachta níos minice agus go bhfuil gá léi níos minice ná an tástáil bheocht. Is é sin, ní smaoineamh an-mhaith é tástálacha ullmhachta agus beocht a dhearbhú gan smaoineamh, toisc gur féidir le Kubernetes é sin a dhéanamh, agus úsáid a bhaint as gach rud is féidir leis a dhéanamh. Míneoidh mé cén fáth. Toisc gurb é pointe uimhir a dó sa tástáil gur smaoineamh maith a bheadh ​​ann an tseirbhís bhunúsach a sheiceáil i do sheiceálacha sláinte. Ciallaíonn sé seo má tá feidhmchlár gréasáin agat a thugann amach roinnt faisnéise, nach mór dó, go nádúrtha, a thógáil ó áit éigin. I mbunachar sonraí, mar shampla. Bhuel, sábhálann sé an fhaisnéis a thagann isteach sa REST API seo isteach sa bhunachar sonraí céanna. Ansin, dá réir sin, má fhreagraíonn do sheiceáil sláinte díreach cosúil le slashhealth theagmhálaithe, deir an feidhmchlár “200, ceart go leor, tá gach rud ceart go leor,” agus ag an am céanna níl rochtain ar bhunachar sonraí d’fheidhmchláir, agus deir an t-iarratas seiceála sláinte “200, ceart go leor, tá gach rud ceart go leor ” - Is seiceáil sláinte dona é seo. Ní hé seo an chaoi ar cheart dó oibriú.

Is é sin, d’iarratas, nuair a thagann iarratas chuige /health, ní fhreagraíonn sé ach, “200, ceart go leor”, téann sé ar dtús, mar shampla, chuig an mbunachar sonraí, déanann sé iarracht nascadh leis, déanann sé rud an-bhunúsach ann, cosúil le ceann a roghnú, ní gá ach seiceáil go bhfuil nasc sa bunachar sonraí agus is féidir leat an bunachar sonraí a cheistiú. Dá n-éireodh leis seo go léir, is é an freagra "200, ceart go leor." Mura n-éiríonn leis, deir sé go bhfuil earráid ann, níl an bunachar sonraí ar fáil.

Dá bhrí sin, maidir leis seo, fillim arís ar na tástálacha Réidheachta/Beo - cén fáth ar dócha go dteastaíonn tástáil ullmhachta uait, ach go bhfuil tástáil bheocht i gceist. Toisc má dhéanann tú cur síos ar sheiceálacha sláinte go díreach mar a dúirt mé díreach, ansin beidh sé amach nach bhfuil sé ar fáil sa chuid shamplaв или со всех instancei mbunachar sonraí, mar shampla. Nuair a dhearbhaigh tú tástáil ullmhachta, thosaigh ár seiceálacha sláinte ag teip, agus dá réir sin na hiarratais go léir nach bhfuil rochtain ar an mbunachar sonraí orthu, déantar iad a mhúchadh ó chothromú agus go deimhin "hang" díreach i staid a ndearnadh faillí orthu agus fanacht ar a mbunachair sonraí a fháil. oibre.

Má tá tástáil beocht dearbhaithe againn, ansin samhlaigh, tá ár mbunachar sonraí briste, agus i do Kubernetes tosaíonn leath de gach rud a atosú toisc go mainneoidh an tástáil beocht. Ciallaíonn sé seo go gcaithfidh tú atosú. Níl sé seo ar chor ar bith cad ba mhaith leat, bhí mé fiú taithí phearsanta i gcleachtas. Bhí feidhmchlár comhrá againn a scríobhadh in JS agus a chuir isteach i mbunachar sonraí Mongo é. Agus ba í an fhadhb ná go raibh sé ag tús mo chuid oibre le Kubernetes, rinneamar cur síos ar ullmhacht, beocht na dtástálacha ar an bprionsabal gur féidir le Kubernetes é a dhéanamh, mar sin úsáidfimid é. Dá réir sin, ag pointe éigin d’éirigh Mongo rud beag “mall” agus thosaigh an sampla ag teip. Dá réir sin, de réir na tástála báistí, thosaigh na pods ag “marú”.

De réir mar a thuigeann tú, nuair a “maraítear” iad, is comhrá é seo, is é sin, tá go leor nasc ó chliaint ar crochadh air. Tá siad “maraíodh” freisin - ní hea, ní cliaint, naisc amháin - ní léir ag an am céanna, agus mar gheall ar an bhfíric nach maraítear iad ag an am céanna, roinnt níos luaithe, roinnt níos déanaí, ní thosaíonn siad ag an am céanna. am. Chomh maith le randamach caighdeánach, ní féidir linn am tosaithe an fheidhmchláir a thuar le cruinneas milleasoicind gach uair, mar sin déanann siad é uair amháin ag an am. Ardaítear pointe eolais amháin, cuirtear leis an gcothromaíocht, tagann gach cliant ann, ní féidir leis ualach den sórt sin a sheasamh, toisc go bhfuil sé ina aonar, agus, go garbh, tá dosaen acu ag obair ann, agus titeann sé. Ardaíonn an chéad cheann eile, tá an t-ualach iomlán air, titeann sé freisin. Bhuel, leanann na titimí seo ag easghluaiseachta. Sa deireadh, conas a réitíodh é seo - ní raibh le déanamh againn ach trácht úsáideoirí a stopadh go docht leis an bhfeidhmchlár seo, ligean do gach cás ardú agus ansin an trácht úsáideora go léir a thosú ag an am céanna ionas go raibh sé scaipthe cheana féin i measc na ndeich gcás.

Murab é an tástáil bheochta seo atá á fhógairt, a chuirfeadh iallach air go léir atosú, bheadh ​​an feidhmchlár tar éis é a láimhseáil go breá. Ach tá gach rud ó chothromú díchumasaithe dúinn, toisc go bhfuil na bunachair shonraí dorochtana agus go bhfuil gach úsáideoir "titim as". Ansin, nuair a thagann an bunachar sonraí seo ar fáil, cuirtear gach rud san áireamh sa chothromaíocht, ach ní gá tús a chur le hiarratais arís, agus ní gá am agus acmhainní a chur amú ar seo. Tá siad go léir anseo cheana féin, tá siad réidh le haghaidh tráchta, agus mar sin osclaíonn an trácht, tá gach rud go breá - tá an t-iarratas i bhfeidhm, leanann gach rud ag obair.

Dá bhrí sin, tá tástálacha ullmhachta agus beocht difriúil, fiú ina theannta sin, is féidir leat seiceálacha sláinte éagsúla a dhéanamh go teoiriciúil, radii cineál amháin, cineál liv amháin, mar shampla, agus seiceáil rudaí éagsúla. Le linn tástálacha ullmhachta, seiceáil do chuid inneall. Agus maidir le tástáil bheocht, mar shampla, ní seiceálann tú ó thaobh an tuairim de nach bhfuil sa tástáil bheocht go ginearálta ach iarratas a fhreagraíonn, an bhfuil sé in ann freagra a thabhairt ar chor ar bith.

Toisc gurb é an tástáil bheocht, den chuid is mó, ná nuair a bhíonn muid “i bhfostú”. Tá lúb gan teorainn tosaithe nó rud éigin eile - agus ní phróiseáiltear a thuilleadh iarratais. Dá bhrí sin, déanann sé ciall fiú iad a scaradh - agus loighic éagsúla a chur i bhfeidhm iontu.

Maidir leis an méid a chaithfidh tú a fhreagairt nuair a bhíonn tástáil agat, nuair a dhéanann tú seiceálacha sláinte. Níl ann ach pian i ndáiríre. Is dócha go ndéanfaidh na daoine sin atá eolach air seo gáire - ach dáiríre, tá seirbhísí feicthe agam i mo shaol a fhreagraíonn “200” i XNUMX% de na cásanna. Is é sin, cé a éiríonn. Ach ag an am céanna i gcorp an fhreagra scríobhann siad "earráid mar sin agus mar sin."

Is é sin, tagann an stádas freagartha duit - tá gach rud rathúil. Ach ag an am céanna, ní mór duit an corp a pharsáil, mar go ndeir an comhlacht “brón orm, tháinig deireadh leis an iarratas le hearráid” agus níl anseo ach an réaltacht. Chonaic mé é seo sa saol fíor.

Agus ionas nach mbíonn sé greannmhar ag daoine áirithe, agus go mbíonn daoine eile an-phianmhar, is fiú cloí le riail shimplí. I seiceálacha sláinte, agus i bprionsabal nuair a bhíonn tú ag obair le feidhmchláir ghréasáin.

Má chuaigh gach rud go maith, freagair ansin leis an dá chéadú freagra. I bprionsabal, fóirsteann aon fhreagra dhá chéad duit. Má léann tú ragsy go han-mhaith agus go bhfuil a fhios agat go bhfuil roinnt stádas freagartha difriúil ó chinn eile, freagair leis na cinn chuí: 204, 5, 10, 15, cibé rud. Mura bhfuil sé an-mhaith, ansin díreach "dhá náid nialais." Má théann gach rud go dona agus nach bhfreagraíonn an seiceáil sláinte, ansin freagair le haon cúig chéadú. Arís, má thuigeann tú conas freagra a thabhairt, cé chomh difriúil atá stádais freagartha óna chéile. Mura dtuigeann tú, is é 502 an rogha atá agat freagra a thabhairt ar sheiceálacha sláinte má théann rud éigin mícheart.

Is pointe eile é seo, ba mhaith liom beagán a thabhairt ar ais maidir le seiceáil na seirbhísí bunúsacha. Má thosaíonn tú, mar shampla, seiceáil na seirbhísí bunúsacha go léir a sheasann taobh thiar d'iarratas - gach rud i gcoitinne. Cad a fhaighimid ó thaobh na hailtireachta microservice, ní mór dúinn a leithéid de choincheap mar "cúplála íseal" - is é sin, nuair a bhíonn do chuid seirbhísí ag brath go mion ar a chéile. Má theipeann ar cheann acu, leanfaidh na cinn eile go léir gan an fheidhmiúlacht seo ag obair. Ní oibríonn cuid den fheidhmiúlacht. Dá réir sin, má cheanglaíonn tú na seiceálacha sláinte go léir lena chéile, ansin beidh rud amháin ag titim amach sa bhonneagar, agus toisc gur thit sé, tosaíonn seiceáil sláinte na seirbhísí go léir ag teip freisin - agus tá níos mó bonneagair ann go ginearálta don ailtireacht microservice iomlán Uimh. Chuaigh gach rud dorcha ann.

Mar sin, ba mhaith liom a rá arís gur gá duit na bunseirbhísí a sheiceáil, na seirbhísí sin nach féidir le d’iarratas i gcéad faoin gcéad de na cásanna a jab a dhéanamh dá n-uireasa. Is é sin, tá sé loighciúil má tá API REST agat trína sábhálann an t-úsáideoir chuig an mbunachar sonraí nó trína n-aisghabhann sé ón mbunachar sonraí, ansin in éagmais bunachar sonraí, ní féidir leat ráthaíocht a thabhairt d'obair le do chuid úsáideoirí.

Ach má tá do chuid úsáideoirí, nuair a thógann tú amach as an mbunachar sonraí iad, saibhrithe freisin le roinnt meiteashonraí eile, ó inneall eile, a chuireann tú isteach sula seolann tú freagra chuig an frontend - agus nach bhfuil an t-inneall seo ar fáil, ciallaíonn sé seo go dtugann tú do freagra gan aon chuid de na meiteashonraí.

Ina dhiaidh sin, tá ceann de na fadhbanna pianmhara againn agus iarratais á seoladh.

Go deimhin, ní bhaineann sé seo ach le Kubernetes den chuid is mó, ach tharla sé gur thosaigh cultúr de chineál éigin ollfhorbartha agus DevOps go háirithe ag scaipeadh timpeall an ama chéanna le Kubernetes. Mar sin, den chuid is mó, is léir go gcaithfidh tú d'iarratas a dhúnadh go galánta gan Kubernetes. Fiú roimh Kubernetes, rinne daoine é seo, ach le teacht Kubernetes, thosaigh muid ag caint faoi en masse.

Múchadh Graceful

Go ginearálta, cad é Múchadh Graceful agus cén fáth a bhfuil gá leis? Baineann sé seo le nuair a thuairteanna d'iarratas ar chúis éigin, ní mór duit a dhéanamh app stop - nó má fhaigheann tú, mar shampla, comhartha ón gcóras oibriúcháin, caithfidh d'iarratas é a thuiscint agus rud éigin a dhéanamh faoi. Is é an cás is measa, ar ndóigh, ná nuair a fhaigheann d’iarratas SITERM agus é cosúil le “SITERM, fanaimis ag obair, ná déanaimis tada.” Is é seo an rogha downright dona.

Riachtanais chun feidhmchlár a fhorbairt i Kubernetes

Rogha beagnach chomh dona is ea nuair a fhaigheann d’iarratas SIGTERM agus tá sé cosúil le “a dúirt siad segterm, ciallaíonn sé sin go bhfuil muid ag críochnú, ní fhaca mé, níl a fhios agam aon iarratais úsáideora, níl a fhios agam cén cineál iarratais a bhfuil mé ag obair orthu faoi láthair, a dúirt siad SITERM, ciallaíonn sé sin go bhfuil muid ag críochnú " Is droch-rogha é seo freisin.

Cén rogha atá go maith? Is é an chéad phointe ná críochnú oibríochtaí a chur san áireamh. Rogha maith is ea do fhreastalaí a chur san áireamh fós cad a dhéanann sé má fhaigheann sé SITERM.

Is múchadh bog é SITERM, tá sé deartha go speisialta, is féidir é a idircheapadh ag leibhéal an chóid, is féidir é a phróiseáil, a rá anois, fan, críochnóimid an obair atá againn ar dtús, ansin scoirfimid.

Ó thaobh Kubernetes de, is é seo an chuma atá air. Nuair a deirimid le pod atá ag rith i mbraisle Kubernetes, “stop, imigh leat,” nó má atosaítear sinn, nó tarlaíonn nuashonrú nuair a athchruthaíonn Kubernetes na pods, seolann Kubernetes an teachtaireacht SITERM céanna chuig an pod, ag fanacht air. tamall, agus , is é seo an t-am a fhanann sé, tá sé cumraithe freisin, tá a leithéid de paraiméadar speisialta i dioplómaí agus tá sé ar a dtugtar Graceful ShutdownTimeout. De réir mar a thuigeann tú, ní thugtar é sin do rud ar bith, agus ní ar rud ar bith a bhfuilimid ag caint faoi anois.

Is féidir linn a rá go sonrach cé chomh fada agus a chaithfidh muid fanacht idir an t-am a sheolaimid SITERM chuig an iarratas agus nuair a thuigimid go bhfuil an chuma ar an scéal go bhfuil an t-iarratas imithe ar mire as rud éigin nó go bhfuil sé “i bhfostú” agus nach mbeidh deireadh leis - agus ní mór dúinn. seol SIGKILL air, is é sin, a chuid oibre a chur i gcrích go dian. Is é sin, dá réir sin, tá deamhan de chineál éigin againn ag rith, déanann sé oibríochtaí a phróiseáil. Tuigimid, ar an meán, nach maireann ár n-oibríochtaí a n-oibríonn an deamhan orthu níos mó ná 30 soicind ag an am. Dá réir sin, nuair a thagann SITERM, tuigimid gur féidir lenár ndeamhan, ar a mhéad, críochnú 30 soicind tar éis SITERM. Scríobhaimid é, mar shampla, 45 soicind ar eagla na heagla agus a rá go bhfuil SITERM. Ina dhiaidh sin fanaimid 45 soicind. Go teoiriciúil, le linn an ama seo ba chóir go mbeadh a chuid oibre críochnaithe ag an diabhal agus chríochnaigh sé féin. Ach más rud é nach bhféadfadh sé go tobann, ciallaíonn sé gur dócha go bhfuil sé i bhfostú - níl sé ag próiseáil ár n-iarratais de ghnáth a thuilleadh. Agus i 45 soicind is féidir leat go sábháilte, i ndáiríre, ingne síos air.

Agus anseo, i ndáiríre, is féidir fiú 2 ghné a chur san áireamh. Ar an gcéad dul síos, tuig, má fuair tú iarratas, gur thosaigh tú ag obair leis ar bhealach éigin agus nár thug tú freagra don úsáideoir, ach go bhfuair tú SITERM, mar shampla. Déanann sé ciall é a bheachtú agus freagra a thabhairt don úsáideoir. Seo pointe uimhir a haon maidir leis seo. Is é pointe uimhir a dó anseo ná má scríobhann tú d’iarratas féin, go dtógann tú an ailtireacht go ginearálta sa chaoi is go bhfaighidh tú iarratas ar d’iarratas, ansin tosaíonn tú ar roinnt oibre, tosaíonn tú ag íoslódáil comhaid ó áit éigin, ag íoslódáil bunachar sonraí, agus cad nach bhfuil. - Sin. Go ginearálta, d'úsáideoir, hangs d'iarratas ar feadh leathuaire agus ag fanacht leat chun freagra a thabhairt dó - ansin, is dócha, is gá duit a bheith ag obair ar an ailtireacht. Is é sin, ach a chur san áireamh fiú tuiscint coiteann go má tá do oibríochtaí gearr, ansin tá sé ciall chun neamhaird a SITERM agus é a mhodhnú. Má tá do chuid oibríochtaí fada, ansin ní dhéanann sé ciall neamhaird a dhéanamh ar SITERM sa chás seo. Déanann sé ciall an ailtireacht a athdhearadh chun oibríochtaí fada den sórt sin a sheachaint. Ionas nach mbíonn úsáideoirí ag fanacht ach ag fanacht. Níl a fhios agam, déan soicéad gréasáin de shaghas éigin ann, déan crúcaí droim ar ais a sheolfaidh do fhreastalaí chuig an gcliant cheana féin, rud ar bith eile, ach ná cuir iallach ar an úsáideoir crochadh ar feadh leathuaire agus fanacht le seisiún go dtí tú freagra a thabhairt air. Toisc go bhfuil sé dothuartha nuair a d'fhéadfadh sé briseadh.

Nuair a thagann deireadh le d’iarratas, ba cheart duit cód scoir cuí a sholáthar. Is é sin, má iarradh ar d'iarratas a dhúnadh, a stopadh, agus bhí sé in ann é féin a stopadh de ghnáth, ansin ní gá duit cód scoir 1,5,255 de chineál éigin a thabhairt ar ais agus mar sin de. Aon rud nach cód nialasach é, ar a laghad i gcórais Linux, táim cinnte de seo, meastar nár éirigh leis. Is é sin, meastar gur tháinig deireadh le d’iarratas sa chás seo le hearráid. Dá réir sin, ar bhealach cairdiúil, má chríochnaigh d'iarratas gan earráid, deir tú 0 ar an aschur. Má theipeann ar d’iarratas ar chúis éigin, deir tú neamh-0 san aschur. Agus is féidir leat oibriú leis an eolas seo.

Agus an rogha dheireanach. Is olc an rud é nuair a sheolann d’úsáideoir iarratas agus go mbeidh sé ar crochadh ar feadh leathuaire agus tú á phróiseáil. Ach go ginearálta, ba mhaith liom a rá freisin faoi cad is fiú go ginearálta é ó thaobh an chliaint. Is cuma má tá feidhmchlár soghluaiste, ceann tosaigh, etc. Is gá a chur san áireamh gur féidir seisiún an úsáideora a fhoirceannadh go ginearálta, is féidir le haon rud a tharlóidh. Is féidir iarratas a sheoladh, mar shampla, gan próiseáil a dhéanamh uirthi agus gan freagra a thabhairt ar ais. Ba chóir go gcuirfí san áireamh le d’éadan nó le d’fheidhmchlár soghluaiste - aon aghaidh go ginearálta, cuirimis é sin san áireamh. Má oibríonn tú le soicéid gréasáin, is é seo an pian is measa a bhí agam riamh.

Nuair nach bhfuil a fhios ag forbróirí roinnt comhráite rialta sin, tarlaíonn sé, is féidir leis an websocket briseadh. Chun iad, nuair a tharlaíonn rud éigin ag an seachfhreastalaí, ní dhéanaimid ach an cumraíocht a athrú, agus déanann sé athlódáil. Ar ndóigh, tá gach seisiún fad-cónaí stróicthe sa chás seo. Tagann forbróirí chugainn agus deir siad: “A bhuachaillí, cad atá á dhéanamh agat, tá an comhrá briste síos dár gcliaint go léir!” Deirimid leo: “Cad atá á dhéanamh agat? An bhfuil do chliaint in ann athcheangal? Deir siad: “Ní hea, ní mór dúinn gan na seisiúin a stróicthe.” I mbeagán focal, tá sé seo i ndáiríre nonsense. Ní mór taobh an chliaint a chur san áireamh. Go háirithe, mar a deirim, le seisiúin fhadtéarmacha cosúil le websockets, is féidir é a bhriseadh agus, gan aird ag an úsáideoir, ní mór duit a bheith in ann a reinstall seisiúin den sórt sin. Agus ansin tá gach rud foirfe.

Acmhainní

I ndáiríre, anseo inseoidh mé scéal díreach duit. Arís ón saol fíor. An rud is tinn dá chuala mé riamh faoi acmhainní.

Acmhainní sa chás seo, is éard atá i gceist agam, iarratais de chineál éigin, teorainneacha gur féidir leat a chur ar pods i do bhraislí Kubernetes. An rud is greannmhaire a chuala mé ó fhorbróir... Dúirt duine de mo chomhfhorbróirí in áit oibre roimhe seo uair amháin: “Ní thosóidh m’iarratas sa bhraisle.” D'fhéach mé le feiceáil nach raibh sé ag tosú, ach níor tháinig sé isteach sna hacmhainní, nó bhí teorainneacha an-bheag socraithe acu. I mbeagán focal, ní féidir leis an bhfeidhmchlár tosú mar gheall ar acmhainní. Deirim: "Ní thosóidh sé mar gheall ar acmhainní, socraíonn tú cé mhéad atá uait agus socróidh tú luach leordhóthanach." Deir sé: “Cén cineál acmhainní?” Thosaigh mé ag míniú dó gur gá Kubernetes, teorainneacha ar iarratais agus blah, blah, blah a shocrú. D’éist an fear ar feadh cúig nóiméad, chrom sé agus dúirt: “Tháinig mé anseo le bheith ag obair mar fhorbróir, níor mhaith liom eolas a fháil ar acmhainní ar bith. Tháinig mé anseo chun cód a scríobh agus sin é.” Tá sé brónach. Is coincheap an-brónach é seo ó thaobh an fhorbróra de. Go háirithe sa saol nua-aimseartha, mar a déarfá, devops forásach.

Cén fáth a bhfuil gá le hacmhainní ar chor ar bith? Tá 2 chineál acmhainní i Kubernetes. Tugtar iarratais ar chuid acu, tugtar teorainneacha ar chuid eile. De réir acmhainní tuigfimid nach bhfuil ann i gcónaí ach dhá bhunshrianta. Is é sin, teorainneacha ama LAP agus teorainneacha RAM do choimeádán ag rith i Kubernetes.

Cuireann teorainn uasteorainn leis an gcaoi ar féidir acmhainn a úsáid i d’iarratas. Is é sin, dá réir sin, má deir tú 1GB RAM sna teorainneacha, ansin ní bheidh d'iarratas in ann níos mó ná 1GB RAM a úsáid. Agus má tá sé ag iarraidh go tobann agus iarracht é seo a dhéanamh, ansin beidh próiseas ar a dtugtar oom killer, as cuimhne, is é sin, teacht agus a mharú d'iarratas - is é sin, beidh sé atosú go simplí. Ní atosófar feidhmchláir bunaithe ar LAP. I dtéarmaí LAP, má dhéanann feidhmchlár iarracht go leor a úsáid, níos mó ná mar a shonraítear sna teorainneacha, roghnófar an LAP go docht go simplí. Ní chuireann sé seo mar thoradh ar restarts. Is é seo an teorainn - is é seo an uasteorainn.

Agus tá iarraidh. Is éard atá i gceist le hiarratas ná an chaoi a dtuigeann Kubernetes an chaoi a bhfuil feidhmchláir ag na nóid i do bhraisle Kubernetes. Is é sin le rá, is cineál gealltanas de d’iarratas é iarratas. Deir sé cad ba mhaith liom a úsáid: “Ba mhaith liom go gcuirfeadh tú an oiread seo LAP agus an oiread sin cuimhne in áirithe domsa.” A leithéid de analaí simplí. Cad a tharlaíonn má tá nód againn a bhfuil, níl a fhios agam, 8 LAP san iomlán. Agus tagann pod ann, a deir a n-iarratas 1 CPU, rud a chiallaíonn go bhfuil 7 LAP fágtha ag an nód. Is é sin, dá réir sin, a luaithe a shroicheann pods 8 an nód seo, a bhfuil 1 CPU ag gach ceann acu ina n-iarratais, tá an nód, amhail is dá mba ó thaobh Kubernetes de, imithe as an LAP agus ní féidir níos mó pods le hiarratais a bheith ann. seolta ar an nód seo. Má ritheann na nóid go léir as LAP, ansin tosóidh Kubernetes ag rá nach bhfuil aon nóid oiriúnacha sa bhraisle chun do chuid pods a rith toisc go bhfuil an LAP imithe.

Cén fáth a bhfuil gá le hiarratais agus cén fáth gan iarratais, is dóigh liom nach gá aon rud a sheoladh i Kubernetes? Déanaimis staid hipitéiseach a shamhlú. Seolann tú d'iarratas gan iarratais, níl a fhios ag Kubernetes cé mhéad den mhéid atá agat, cad iad na nóid ar féidir leat é a bhrú. Bhuel, brúnn sé, sluasaíonn sé, cuireann sé isteach ar na nóid. Ag am éigin, tosóidh tú ag fáil tráchta ar d’iarratas. Agus go tobann tosaíonn ceann de na hiarratais ar acmhainní a úsáid suas go dtí na teorainneacha atá aige de réir na dteorainneacha. Tarlaíonn sé go bhfuil feidhmchlár eile in aice láimhe agus go dteastaíonn acmhainní uaidh freisin. Tosaíonn an nód ag rith go fisiciúil as acmhainní, mar shampla, OP. Tosaíonn an nód ag rith go fisiciúil as acmhainní, mar shampla, cuimhne rochtana randamach (RAM). Nuair a ritheann nód as cumhacht, ar an gcéad dul síos ní bheidh an docker ag freagairt, ansin an cubelet, ansin an OS. Beidh siad ag dul go simplí gan aithne agus beidh gach rud a stopadh cinnte ag obair ar do shon. Is é sin, beidh do nód greamaithe mar thoradh air seo agus beidh ort é a atosú. I mbeagán focal, níl an scéal an-mhaith.

Agus nuair a bhíonn iarratais agat, níl na teorainneacha an-difriúil, ar a laghad nach bhfuil mórán uaireanta níos mó ná na teorainneacha nó na hiarratais, ansin is féidir leat a leithéid de ghnáth-líonadh réasúnach iarratas a bheith agat thar nóid na gcnuasach Kubernetes. Ag an am céanna, tá Kubernetes thart ar an eolas faoi cé mhéad de na rudaí a chuireann sé cén áit, cé mhéad de cad a úsáidtear i gcás. Is é sin, níl ann ach tráth den sórt sin. Tá sé tábhachtach é a thuiscint. Agus tá sé tábhachtach a rialú go bhfuil sé seo in iúl.

Stóráil sonraí

Is é an chéad phointe eile atá againn ná stóráil sonraí. Cad atá le déanamh leo agus go ginearálta, cad atá le déanamh le marthanacht Kubernetes?

I mo thuairimse, arís, laistigh dár Scoil Tráthnóna, bhí ábhar faoin mbunachar sonraí i Kubernetes. Agus feictear dom go bhfuil a fhios agam go garbh cad a dúirt do chomhghleacaithe leat nuair a fiafraíodh díobh: “An féidir bunachar sonraí a reáchtáil in Kubernetes?” Ar chúis éigin, feictear dom gur chóir go mbeadh do chomhghleacaithe tar éis a rá leat má tá tú ag cur na ceiste an bhfuil sé indéanta bunachar sonraí a reáchtáil i Kubernetes, go bhfuil sé dodhéanta.

Tá an loighic anseo simplí. Ar eagla na heagla, míneoidh mé arís eile, más fear fíor-fhionnuar thú ar féidir leo córas stórála líonra dáilte atá sách fabhtach a thógáil, a thuiscint conas bunachar sonraí a chur isteach sa chás seo, conas ba cheart go n-oibreodh scamall dúchasach i gcoimeádáin. i mbunachar sonraí go ginearálta. Is dócha, níl aon cheist agat faoi conas é a rith. Má tá ceist den sórt sin agat, agus ba mhaith leat a chinntiú go leathnaíonn sé go léir agus go seasann sé ceart chun báis i dtáirgeadh agus nach dtiteann riamh, ansin ní tharlaíonn sé seo. Tá tú ag ráthaithe tú féin a shoot sa chos leis an gcur chuige seo. Mar sin tá sé níos fearr gan.

Cad ba cheart dúinn a dhéanamh leis na sonraí ar mhaith lenár n-iarratas a stóráil, roinnt pictiúr a uaslódálann úsáideoirí, roinnt rudaí a ghineann ár n-iarratas le linn a fheidhmiú, ag am tosaithe, mar shampla? Cad atá le déanamh leo i Kubernetes?

Go ginearálta, go hidéalach, tá, ar ndóigh, tá Kubernetes deartha go han-mhaith agus go ginearálta ceapadh é ar dtús d'iarratais gan stát. Is é sin, maidir leis na feidhmchláir sin nach stórálann faisnéis ar chor ar bith. Tá sé seo idéalach.

Ach, ar ndóigh, ní bhíonn an rogha idéalach ann i gcónaí. Nach cuma? Is é an chéad phointe agus an pointe is simplí ná S3 de chineál éigin a ghlacadh, ní hamháin go bhfuil sé de dhéantús baile, rud nach bhfuil soiléir freisin conas a oibríonn sé, ach ó sholáthraí éigin. Soláthraí maith, gnáth - agus múin d'iarratas chun S3 a úsáid. Is é sin, nuair is mian le d'úsáideoir comhad a uaslódáil, abair "anseo, le do thoil, é a uaslódáil chuig S3." Agus é ag iarraidh é a fháil, abair: “Seo nasc chuig S3 ar ais agus tóg as seo é.” Tá sé seo idéalach.

Más rud é go tobann ar chúis éigin nach bhfuil an rogha iontach seo oiriúnach, tá feidhmchlár agat nár scríobh tú, nach bhforbraíonn tú, nó gur oidhreacht uafásach de shaghas éigin é, ní féidir leis an prótacal S3 a úsáid, ach caithfidh sé oibriú le heolairí áitiúla i fillteáin áitiúla . Tóg rud éigin níos mó nó níos lú simplí, imscaradh Kubernetes. Is é sin, fál láithreach Ceph le haghaidh roinnt tascanna íosta, feictear domsa, gur droch-smaoineamh é. Toisc go bhfuil Ceph, ar ndóigh, go maith agus faiseanta. Ach mura dtuigeann tú i ndáiríre cad atá ar siúl agat, ansin nuair a chuireann tú rud éigin ar Ceph, is féidir leat a fháil go héasca agus go simplí as sin amach arís. Toisc, mar is eol duit, stórálann Ceph sonraí ina bhraisle i bhfoirm dhénártha, agus ní i bhfoirm comhaid shimplí. Dá bhrí sin, má bhriseann braisle Ceph síos go tobann, tá dóchúlacht iomlán agus ard ann nach bhfaighidh tú do shonraí as sin go deo arís.

Beidh cúrsa againn ar Ceph, is féidir leat eolas a chur ar an gclár agus iarratas a chur isteach.

Mar sin, is fearr rud éigin simplí a dhéanamh cosúil le freastalaí NFS. Is féidir le Kubernetes oibriú leo, is féidir leat eolaire a shuiteáil faoi fhreastalaí NFS - tá d'iarratas díreach cosúil le heolaire áitiúil. Ag an am céanna, go nádúrtha, ní mór duit a thuiscint, arís, go gcaithfidh tú rud éigin a dhéanamh le do NFS, ní mór duit a thuiscint go bhféadfadh sé a bheith inaccessible uaireanta agus smaoineamh ar an gceist cad a dhéanfaidh tú sa chás seo. B'fhéidir gur cheart tacaíocht a thabhairt dó áit éigin ar mheaisín ar leith.

Is é an chéad phointe eile ar labhair mé faoi ná cad atá le déanamh má ghineann d'iarratas roinnt comhad le linn oibriú. Mar shampla, nuair a thosaíonn sé, gineann sé roinnt comhad statach, atá bunaithe ar roinnt faisnéise nach bhfaigheann an t-iarratas ach amháin ag an am seolta. Cén nóiméad. Mura bhfuil mórán sonraí den sórt sin ann, ní gá duit bac a chur ar bith, níl ort ach an feidhmchlár seo a shuiteáil duit féin agus oibriú. Is é an t-aon cheist anseo ná cad é, cuma. Go minic, gach cineál córais oidhreachta, mar shampla WordPress agus mar sin de, go háirithe le modhnaithe de shaghas éigin breiseán cliste, forbróirí PHP cliste, is minic a fhios acu conas é a dhéanamh ionas go ngineann siad cineál éigin comhaid dóibh féin. Dá réir sin, gineann ceann amháin comhad amháin, gineann an dara ceann an dara comhad. Tá siad difriúil. Tarlaíonn cothromaíocht i mbraisle Kubernetes na gcliant go simplí trí sheans. Dá réir sin, tharla sé nach bhfuil a fhios acu conas a bheith ag obair le chéile i gcás. Tugann ceann acu faisnéis amháin, tugann an ceann eile faisnéis eile don úsáideoir. Is é seo an rud ba chóir duit a sheachaint. Is é sin, i Kubernetes, tá gach rud a sheolann tú ráthaithe a bheith in ann oibriú i gcásanna éagsúla. Toisc gur rud soghluaiste é Kubernetes. Dá réir sin, is féidir leis rud ar bith a bhogadh, aon uair is mian leis, gan iarraidh ar dhuine ar bith ar chor ar bith. Dá bhrí sin, ní mór duit brath ar seo. Teipfidh luath nó mall gach rud a sheoltar i gcás amháin. Dá mhéad áirithintí atá agat, is amhlaidh is fearr. Ach arís, deirim, má tá roinnt comhaid den sórt sin agat, ansin is féidir leat iad a chur ina gceart faoi tú, meáigh siad méid beag. Má tá beagán níos mó acu, is dócha nár cheart duit iad a bhrú taobh istigh den choimeádán.

Ba mhaith liom comhairle a thabhairt go bhfuil a leithéid de rud iontach i Kubernetes, is féidir leat toirte a úsáid. Go háirithe, tá toirt de chineál dir folamh. Is é sin, níl ann ach go gcruthóidh Kubernetes eolaire go huathoibríoch ina eolairí seirbhíse ar an bhfreastalaí inar thosaigh tú. Agus tabharfaidh sé duit é ionas gur féidir leat é a úsáid. Níl ach pointe tábhachtach amháin ann. Is é sin, ní stórálfar do shonraí taobh istigh den choimeádán, ach ar an ósta ar a bhfuil tú ag rith. Thairis sin, is féidir le Kubernetes dirs folamh den sórt sin a rialú faoi ghnáthchumraíocht agus tá sé in ann a n-uasmhéid a rialú agus gan ligean dó a bheith níos mó ná é. Is é an t-aon phointe amháin atá ann ná nach gcailltear an méid atá scríofa agat i dir fholamh le linn atosuithe pod. Is é sin, má thiteann do pod trí dhearmad agus go n-ardóidh sé arís, ní rachaidh an fhaisnéis sa dir folamh in áit ar bith. Is féidir leis é a úsáid arís ag tús nua - agus is maith sin. Má fhágann do pod áit éigin, ansin go nádúrtha fágfaidh sé gan sonraí. Is é sin, a luaithe a imíonn an pod ón nód inar seoladh é le dir folamh, scriostar dir folamh.

Cad eile atá go maith faoi dir folamh? Mar shampla, is féidir é a úsáid mar thaisce. Samhlóimid go ngineann ár bhfeidhmchlár rud éigin ar an eitilt, go dtugann sé d’úsáideoirí é, agus go ndéanann sé ar feadh i bhfad é. Dá bhrí sin, gineann an t-iarratas, mar shampla, agus tugann sé d'úsáideoirí é, agus ag an am céanna é a stóráil áit éigin, ionas go mbeidh an chéad uair eile a thagann an t-úsáideoir don rud céanna, beidh sé níos tapúla é a thabhairt láithreach ginte. Is féidir dir fholamh a iarraidh ar Kubernetes a chruthú i gcuimhne. Agus dá bhrí sin, is féidir le do caches oibriú go ginearálta ag luas tintreach - i dtéarmaí luas rochtana diosca. Is é sin, tá dir folamh agat i gcuimhne, san OS tá sé stóráilte i gcuimhne, ach duitse, don úsáideoir taobh istigh den pod, tá sé cosúil le eolaire áitiúil. Ní gá duit an app a mhúineadh go sonrach aon draíocht. Ní thógann tú ach do chomhad a ghlacadh agus a chur in eolaire, ach, i ndáiríre, i gcuimhne ar an OS. Is gné an-áisiúil é seo freisin i dtéarmaí Kubernetes.

Cad iad na fadhbanna atá ag Minio? Is í an fhadhb is mó le Minio ná ionas go n-oibreoidh an rud seo, ní mór é a bheith ag rith áit éigin, agus ní mór go mbeadh córas comhaid de chineál éigin ann, is é sin, stóráil. Agus anseo feicimid na fadhbanna céanna atá ag Ceph. Is é sin, ní mór do Minio a chuid comhad a stóráil áit éigin. Níl ann ach comhéadan HTTP le do chuid comhad. Ina theannta sin, is léir go bhfuil an fheidhmiúlacht níos boichte ná mar atá ag Amazon's S3. Roimhe seo, ní raibh sé in ann an t-úsáideoir a údarú i gceart. Anois, chomh fada agus is eol dom, is féidir leis buicéid a chruthú cheana féin le húdaruithe éagsúla, ach arís, feictear dom gurb í an phríomhfhadhb, mar a déarfá, an córas stórála bunúsacha ar a laghad.

Conas a théann salachar folamh sa chuimhne i bhfeidhm ar na teorainneacha? Ní chuireann sé isteach ar theorainneacha ar bhealach ar bith. Tá sé i gcuimhne an óstaigh, agus ní i gcuimhne do choimeádán. Is é sin, ní fheiceann do choimeádán an salachar folamh sa chuimhne mar chuid dá chuimhne áitithe. Feiceann an t-óstach é seo. Dá réir sin, tá, ó thaobh kubernetes de, nuair a thosaíonn tú ag baint úsáide as seo, bheadh ​​​​sé go maith a thuiscint go bhfuil tú ag caitheamh cuid de do chuimhne chun dir folamh. Agus dá réir sin, a thuiscint gur féidir le cuimhne rith amach ní hamháin mar gheall ar iarratais, ach freisin toisc go scríobhann duine éigin chuig na dirs folamh seo.

Scamalltacht

Agus is é an fothopaic deiridh cad é Cloudnative. Cén fáth a bhfuil gá leis? Scamalltacht agus mar sin de.

Is é sin, na hiarratais sin atá in ann agus atá scríofa chun oibriú i mbonneagar scamall nua-aimseartha. Ach, i ndáiríre, tá gné eile den sórt sin ag Cloudnative. Ní hamháin gur feidhmchlár é seo a chuireann san áireamh na ceanglais uile a bhaineann le bonneagar scamall nua-aimseartha, ach go bhfuil a fhios aige freisin conas oibriú leis an mbonneagar scamall nua-aimseartha seo, leas a bhaint as na buntáistí agus na míbhuntáistí a bhaineann leis an bhfíric go n-oibríonn sé sna scamaill seo. Ná téigh thar bord agus oibrigh sna scamaill, ach bain leas as na buntáistí a bhaineann le bheith ag obair sa scamall.

Riachtanais chun feidhmchlár a fhorbairt i Kubernetes

A ligean ar a ghlacadh ach Kubernetes mar shampla. Tá d'iarratas ar siúl in Kubernetes. Is féidir le d’iarratas, nó in áit na riarthóirí do d’iarratas, cuntas seirbhíse a chruthú i gcónaí. Is é sin, cuntas ar údarú i Kubernetes féin ina fhreastalaí. Cuir roinnt cearta a theastaíonn uainn ansin. Agus is féidir leat rochtain a fháil ar Kubernetes laistigh d'iarratas. Cad is féidir leat a dhéanamh ar an mbealach seo? Mar shampla, ón bhfeidhmchlár, faigh sonraí faoin áit a bhfuil d’fheidhmchláir eile, cásanna eile dá samhail suite, agus braisle le chéile ar bhealach éigin ar bharr Kubernetes, má tá a leithéid de riachtanas ann.

Arís, bhí cás againn le déanaí. Tá rialtóir amháin againn a dhéanann monatóireacht ar an scuaine. Agus nuair a bhíonn roinnt tascanna nua le feiceáil sa scuaine seo, téann sé go Kubernetes - agus taobh istigh de Kubernetes cruthaíonn sé pod nua. Tugann sé tasc nua éigin don pod seo agus faoi chuimsiú an phota seo, déanann an pod an tasc, cuireann sé freagra chuig an rialtóir féin, agus déanann an rialaitheoir rud éigin leis an bhfaisnéis seo ansin. Mar shampla, cuireann sé bunachar sonraí suas. Is é sin, arís, móide é seo go ritheann ár n-iarratas i Kubernetes. Is féidir linn feidhmiúlacht ionsuite Kubernetes féin a úsáid chun feidhmiúlacht ár bhfeidhmchláir a leathnú ar bhealach éigin agus a dhéanamh níos áisiúla. Is é sin, ná cuir draíocht de chineál éigin i bhfolach faoi conas iarratas a sheoladh, conas oibrí a sheoladh. In Kubernetes, ní dhéanann tú ach iarratas a sheoladh san aip má tá an feidhmchlár scríofa i Python.

Baineann an rud céanna má théann muid níos faide ná Kubernetes. Tá ár Kubernetes ag rith áit éigin - tá sé go maith má tá sé i scamall de chineál éigin. Arís, is féidir linn úsáid a bhaint as, agus fiú ba chóir, creidim, úsáid a bhaint as cumais an scamall féin ina bhfuil muid ag rith. Ó na rudaí bunúsacha a sholáthraíonn an scamall dúinn. Comhardaithe, is é sin, is féidir linn a chruthú balancers scamall agus iad a úsáid. Is buntáiste díreach é seo ar an méid is féidir linn a úsáid. Mar gheall ar néal-chothromú, ar an gcéad dul síos, baintear go díreach freagracht orainne as an gcaoi a n-oibríonn sé, conas a dhéantar é a chumrú. Chomh maith leis sin tá sé an-áisiúil, mar is féidir le Kubernetes rialta comhtháthú le scamaill.

Baineann an rud céanna le scálú. Is féidir le Kubernetes rialta comhtháthú le soláthraithe scamall. Tá a fhios aige conas a thuiscint má ritheann an bhraisle as nóid, is é sin, go bhfuil an spás nód imithe i léig, ansin ní mór duit a chur leis - cuirfidh Kubernetes féin nóid nua le do bhraisle agus tosóidh sé ag seoladh pods orthu. Is é sin, nuair a thagann do ualach, tosaíonn líon na dtinteán ag méadú. Nuair a ritheann na nóid sa bhraisle amach do na pods seo, seolann Kubernetes nóid nua agus, dá réir sin, is féidir go dtiocfaidh méadú fós ar líon na pods. Agus tá sé an-áisiúil. Is deis dhíreach é seo chun an braisle a scála ar an eitilt. Níl sé an-tapa, sa chiall nach soicind é, tá sé níos mó cosúil le nóiméad chun nóid nua a chur leis.

Ach ó mo thaithí féin, arís, is é an rud is fuaire dá bhfaca mé riamh. Nuair a scálaigh an braisle Cloudnative bunaithe ar am den lá. Seirbhís backend a bhí in úsáid ag daoine sa chúloifig. Is é sin, tagann siad chun oibre ag 9 am, tosaíonn siad ag logáil isteach sa chóras, agus dá réir sin, tosaíonn an braisle Cloudnative, áit a bhfuil sé ar siúl go léir, ag dul suas, ag seoladh pods nua ionas gur féidir le gach duine a thagann chun oibre oibriú leis an bhfeidhmchlár. Nuair a fhágann siad an obair ag 8 pm nó 6 pm, tugann cnuasaigh Kubernetes faoi deara nach bhfuil aon duine ag baint úsáide as an bhfeidhmchlár a thuilleadh agus tosaíonn siad ag crapadh. Tá coigilteas suas le 30 faoin gcéad ráthaithe. D’oibrigh sé in Amazon ag an am sin; ag an am sin ní raibh aon duine sa Rúis a d’fhéadfadh é a dhéanamh chomh maith.

Inseoidh mé duit go díreach, tá an coigilteas 30 faoin gcéad go simplí toisc go n-úsáidimid Kubernetes agus go mbainimid leas as cumais an scamall. Anois is féidir é seo a dhéanamh sa Rúis. Ní fhógróidh mé do dhuine ar bith, ar ndóigh, ach déarfainn go bhfuil soláthraithe ann ar féidir leo é seo a dhéanamh, cuir cnaipe ar fáil dó díreach as an mbosca.

Tá pointe deireanach amháin ar mhaith liom d’aird a dhíriú air freisin. Ionas go mbeidh d’iarratas, do bhonneagar Néaltach, is ciall duit tosú ar deireadh leis an gcur chuige ar a dtugtar Bonneagar mar Chód a oiriúnú.Is é sin le rá go bhfuil gá le d’iarratas, nó in áit do bhonneagar, ar an mbealach céanna leis an cód Déan cur síos ar d'iarratas, do loighic ghnó i bhfoirm cód. Agus oibrigh leis mar chód, is é sin, tástáil air, rolladh amach é, stóráil i git é, cuir CICD i bhfeidhm air.

Agus is é seo go díreach a ligeann duit, ar an gcéad dul síos, smacht a bheith agat i gcónaí ar do bhonneagar, tuiscint a fháil i gcónaí ar an stát ina bhfuil sé. Ar an dara dul síos, seachain oibríochtaí láimhe a fhágann earráidí. Ar an tríú dul síos, seachain rud ar a dtugtar láimhdeachas, nuair is gá duit i gcónaí na tascanna láimhe céanna a dhéanamh. Ar an gceathrú dul síos, ligeann sé duit a ghnóthú i bhfad níos tapúla i gcás teip. Sa Rúis, gach uair a labhraíonn mé faoi seo, tá líon mór daoine i gcónaí a deir: "Tá, tá sé soiléir, ach tá cur chuige agat, i mbeagán focal, ní gá aon rud a shocrú." Ach tá sé fíor. Má tá rud éigin briste i do bhonneagar, ansin ó thaobh an chur chuige Cloudnative agus ó thaobh an Bhonneagair mar Chód, seachas é a shocrú, dul chuig an bhfreastalaí, figuring amach cad atá briste agus é a shocrú, tá sé níos éasca chun an freastalaí a scriosadh agus é a chruthú arís. Agus beidh mé seo go léir a athchóiriú.

Pléitear na saincheisteanna seo go léir go mion ag Cúrsaí físe Kubernetes: Sóisearach, Bunúsach, Mega. Tríd an nasc a leanúint is féidir leat eolas a chur ar an gclár agus ar na coinníollacha. Is é an rud áisiúil gur féidir leat Kubernetes a mháistir trí staidéar a dhéanamh ón mbaile nó ag obair ar feadh 1-2 uair sa lá.

Foinse: will.com

Add a comment