Awọn ibeere fun idagbasoke ohun elo ni Kubernetes

Loni Mo gbero lati sọrọ nipa bi o ṣe le kọ awọn ohun elo ati kini awọn ibeere fun ohun elo rẹ lati ṣiṣẹ daradara ni Kubernetes. Ki awọn efori ko si pẹlu ohun elo naa, nitorinaa o ko ni lati ṣẹda ati kọ eyikeyi “cratches” ni ayika rẹ - ati pe ohun gbogbo n ṣiṣẹ ni ọna ti Kubernetes funrararẹ pinnu.

Ẹkọ yii jẹ apakan ti "Slurm Night School on Kubernetes" O le wo awọn ikowe imọ-jinlẹ ṣiṣi ti Ile-iwe Alẹ lori Youtube, akojọpọ si akojọ orin kan. Fun awọn ti o fẹran ọrọ dipo fidio, a ti pese nkan yii.

Orukọ mi ni Pavel Selivanov, lọwọlọwọ Emi ni oludari DevOps ẹlẹrọ ni Mail.ru Cloud Solutions, a ṣe awọn awọsanma, a ṣe awọn kubernetes iṣakoso ati bẹbẹ lọ. Awọn iṣẹ-ṣiṣe mi ni bayi pẹlu iranlọwọ ni idagbasoke, yiyi awọn awọsanma wọnyi jade, yiyi awọn ohun elo ti a kọ ati idagbasoke taara awọn irinṣẹ ti a pese fun awọn olumulo wa.

Awọn ibeere fun idagbasoke ohun elo ni Kubernetes

Mo ti n ṣe DevOps, Mo ro pe fun kẹhin, boya, ọdun mẹta. Ṣugbọn, ni ipilẹ, Mo ti n ṣe ohun ti DevOps ṣe fun boya ọdun marun ni bayi. Ṣaaju ki o to, Mo ti a okeene lowo ninu admin nkan na. Mo bẹrẹ ṣiṣẹ pẹlu Kubernetes ni igba pipẹ sẹhin - boya bii ọdun mẹrin ti kọja lati igba ti Mo bẹrẹ ṣiṣẹ pẹlu rẹ.

Ni gbogbogbo, Mo bẹrẹ nigbati Kubernetes jẹ ẹya 1.3, boya, ati boya 1.2 - nigbati o tun wa ni ikoko rẹ. Bayi ko si ni igba ikoko rẹ - ati pe o han gbangba pe ibeere nla wa ni ọja fun awọn onimọ-ẹrọ ti yoo fẹ lati ni anfani lati ṣe Kubernetes. Ati awọn ile-iṣẹ ni ibeere ti o ga pupọ fun iru eniyan bẹẹ. Nitorina, ni otitọ, iwe-ẹkọ yii han.

Ti a ba sọrọ ni ibamu si ero ti ohun ti Emi yoo sọ nipa rẹ, o dabi eyi, ni awọn biraketi ti a kọ (TL; DR) - “ gun ju; maṣe kà". Igbejade mi loni yoo ni awọn atokọ ailopin.

Awọn ibeere fun idagbasoke ohun elo ni Kubernetes

Ni otitọ, Emi funrarami ko fẹran iru awọn igbejade nigba ti wọn ṣe, ṣugbọn eyi jẹ iru koko kan pe nigbati Mo n mura igbejade yii, Emi ko rọrun ni oye bi o ṣe le ṣeto alaye yii ni oriṣiriṣi.

Nitoripe, lapapọ, alaye yii jẹ “ctrl + c, ctrl + v”, lati, ninu awọn ohun miiran, Wiki wa ni apakan DevOps, nibiti a ti kọ awọn ibeere fun awọn olupilẹṣẹ: “awọn eniyan, nitorinaa a ṣe ifilọlẹ ohun elo rẹ ni Kubernetes, o yẹ ki o dabi eyi. ”

Ti o ni idi ti igbejade ti jade lati jẹ iru akojọ nla kan. Ma binu. Emi yoo gbiyanju lati sọ bi o ti ṣee ṣe ki o ko jẹ alaidun ti o ba ṣeeṣe.

Ohun ti a yoo wo ni bayi:

  • awọn wọnyi ni, akọkọ, awọn akọọlẹ (awọn iwe ohun elo?), Kini lati ṣe pẹlu wọn ni Kubernetes, kini lati ṣe pẹlu wọn, kini wọn yẹ ki o jẹ;
  • Kini lati ṣe pẹlu awọn atunto ni Kubernetes, kini awọn ọna ti o dara julọ ati buru julọ lati tunto ohun elo kan fun Kubernetes;
  • Jẹ ki a sọrọ nipa kini awọn sọwedowo iraye si ni gbogbogbo, kini wọn yẹ ki o dabi;
  • jẹ ki ká soro nipa ohun ti a graceful tiipa ni;
  • jẹ ki ká soro nipa oro lẹẹkansi;
  • Jẹ ki a fi ọwọ kan koko ọrọ ipamọ data lekan si;
  • ati ni ipari Emi yoo sọ fun ọ kini ọrọ ti ohun elo abinibi-awọsanma aramada yii jẹ. Awọsanma, gẹgẹbi ajẹtífù ti ọrọ yii.

Awọn akọọlẹ

Mo daba lati bẹrẹ pẹlu awọn akọọlẹ - pẹlu ibiti awọn akọọlẹ wọnyi nilo lati wa ni Kubernetes. Bayi o ti ṣe ifilọlẹ ohun elo kan ni Kubernetes. Gẹgẹbi awọn kilasika, awọn ohun elo iṣaaju nigbagbogbo kọ awọn akọọlẹ ni ibikan ninu faili kan. Awọn ohun elo buburu ko awọn akọọlẹ si faili kan ninu ilana ile ti olupilẹṣẹ ti o ṣe ifilọlẹ ohun elo naa. Awọn ohun elo to dara kọ awọn akọọlẹ si faili ni ibikan ninu /var/log.

Awọn ibeere fun idagbasoke ohun elo ni Kubernetes

Ni ibamu si eyi, siwaju sii, awọn alakoso ti o dara ni diẹ ninu awọn ohun ti a tunto ni awọn amayederun wọn ti awọn igbasilẹ wọnyi le yiyi pada - rsyslog kanna, ti o wo awọn akọọlẹ wọnyi ati nigbati ohun kan ba ṣẹlẹ si wọn, ọpọlọpọ wọn wa, o ṣẹda awọn ẹda afẹyinti, fi awọn igbasilẹ sibẹ. , npa awọn faili atijọ rẹ, diẹ sii ju ọsẹ kan, oṣu mẹfa ati diẹ sii. Ni imọran, o yẹ ki a ni awọn ipese ti o rọrun nitori pe ohun elo naa kọ awọn akọọlẹ, aaye lori awọn olupin iṣelọpọ (awọn olupin ija?) Ko pari. Ati, ni ibamu, gbogbo iṣelọpọ ko da duro nitori awọn akọọlẹ.

Nigba ti a ba lọ si aye ti Kubernetes ati ṣiṣe ohun kanna nibẹ, ohun akọkọ ti o le san ifojusi si ni otitọ pe awọn eniyan, bi wọn ti kọ awọn iwe-ipamọ ni faili kan, tẹsiwaju lati kọ wọn.

O wa ni pe ti a ba sọrọ nipa Kubernetes, aaye ti o tọ lati kọ awọn akọọlẹ ni ibikan lati inu eiyan docker ni lati kọ wọn lati inu ohun elo naa si ohun ti a pe ni Stdout/Stderr, iyẹn ni, awọn ṣiṣan iṣelọpọ boṣewa ti ẹrọ ṣiṣe, awọn boṣewa aṣiṣe o wu. Eyi ni ọna ti o pe julọ, ti o rọrun julọ ati ọgbọn julọ lati fi awọn akọọlẹ sinu ipilẹ ni Docker ati ni pataki ni Kubernetis. Nitoripe ti ohun elo rẹ ba kọ awọn akọọlẹ si Stdout/Stderr, lẹhinna o to Docker ati awọn afikun Kubernetes lati pinnu kini lati ṣe pẹlu awọn akọọlẹ wọnyi. Docker yoo nipa aiyipada kọ awọn faili pataki rẹ ni ọna kika JSON.

Nibi ibeere naa waye, kini iwọ yoo ṣe pẹlu awọn akọọlẹ wọnyi? Ọna to rọọrun jẹ kedere, a ni agbara lati ṣe kubectl logs ki o si wo awọn akọọlẹ ti awọn “pods” wọnyi. Ṣugbọn, boya, eyi kii ṣe aṣayan ti o dara pupọ - nkan miiran nilo lati ṣe pẹlu awọn akọọlẹ.

Ni bayi, jẹ ki a sọrọ ni akoko kanna, niwọn igba ti a ti fi ọwọ kan koko-ọrọ awọn iwe-ipamọ, nipa iru nkan bi awọn akọọlẹ yẹ ki o dabi. Iyẹn ni, eyi ko kan taara si Kubernetes, ṣugbọn nigbati a ba bẹrẹ ironu nipa kini lati ṣe pẹlu awọn akọọlẹ, yoo dara lati ronu nipa eyi paapaa.

A nilo iru irinṣẹ kan, ni ọna itara, ti yoo gba awọn akọọlẹ wọnyi ti docker wa fi sinu awọn faili rẹ ki o firanṣẹ si ibikan. Nipa ati nla, a nigbagbogbo ṣe ifilọlẹ diẹ ninu iru aṣoju inu Kubernetes ni irisi DaemonSet kan - agbowọ log kan, eyiti o sọ ni irọrun nibiti awọn akọọlẹ ti Docker gba wa. Ati pe aṣoju ikojọpọ yii gba wọn nirọrun, boya paapaa bakan wọn ṣe itupalẹ wọn ni ọna, boya mu wọn pọ si pẹlu alaye diẹ ninu awọn alaye-meta ati, nikẹhin, firanṣẹ wọn fun ibi ipamọ si ibikan. Awọn iyatọ ti ṣee tẹlẹ nibẹ. O wọpọ julọ jẹ Elasticsearch, nibi ti o ti le fipamọ awọn akọọlẹ ati pe o le gba wọn ni irọrun lati ibẹ. Lẹhinna, lilo ibeere kan, lilo Kibana, fun apẹẹrẹ, kọ awọn aworan ti o da lori wọn, kọ awọn itaniji ti o da lori wọn, ati bẹbẹ lọ.

Ero ti o ṣe pataki julọ, Mo fẹ lati tun ṣe lẹẹkansi, ni pe inu Docker, ni pataki inu Kubernetes, titoju awọn akọọlẹ rẹ sinu faili jẹ imọran buburu pupọ.

Nitori ni akọkọ, o ṣoro lati gba awọn akọọlẹ inu apoti inu faili kan. O gbọdọ akọkọ lọ sinu eiyan, exec nibẹ, ati ki o si wo ni awọn àkọọlẹ. Ojuami ti o tẹle ni pe ti o ba ni awọn akọọlẹ ninu faili kan, lẹhinna awọn apoti nigbagbogbo ni agbegbe ti o kere ju ati pe ko si awọn ohun elo ti o nilo nigbagbogbo fun iṣẹ deede pẹlu awọn akọọlẹ. Sin wọn, wo wọn, ṣii wọn ni olootu ọrọ. Akoko ti o tẹle ni nigba ti a ni awọn iwe-ipamọ ninu faili kan ninu apo eiyan kan, ti o ba jẹ pe eiyan yii ti paarẹ, o loye, awọn akọọlẹ yoo ku pẹlu rẹ. Nitorinaa, eyikeyi atunbere ti eiyan tumọ si pe ko si awọn akọọlẹ mọ. Lẹẹkansi, aṣayan buburu.

Ati pe aaye ti o kẹhin ni pe inu awọn apoti o nigbagbogbo ni ohun elo rẹ ati pe iyẹn ni - igbagbogbo ilana nikan ni ṣiṣe. Ko si ọrọ rara nipa eyikeyi ilana ti yoo yi awọn faili pada pẹlu awọn akọọlẹ rẹ. Ni kete ti awọn akọọlẹ bẹrẹ kikọ si faili kan, eyi tumọ si pe, jọwọ mi, a yoo bẹrẹ lati padanu olupin iṣelọpọ. Nitori, ni akọkọ, wọn nira lati wa, ko si ẹnikan ti o tọpa wọn, ati pe ko si ẹnikan ti o ṣakoso wọn - ni ibamu, faili naa dagba lainidi titi aaye lori olupin naa yoo pari. Nitorinaa, Mo tun sọ pe wíwọlé ni Docker, ni pataki ni Kubernetes, si faili kan jẹ imọran buburu.

Ojuami ti o tẹle, nibi Mo fẹ lati sọrọ nipa eyi lẹẹkansi - niwọn bi a ti n fọwọkan lori koko ọrọ awọn iwe-ipamọ, yoo dara lati sọrọ nipa bii awọn akọọlẹ yẹ ki o wo lati jẹ ki o rọrun lati ṣiṣẹ pẹlu wọn. Gẹgẹbi Mo ti sọ, koko-ọrọ naa ko ni ibatan taara si Kubernetes, ṣugbọn o ni ibatan daradara si koko-ọrọ ti DevOps. Lori koko ti aṣa idagbasoke ati ọrẹ laarin awọn ẹka oriṣiriṣi meji wọnyi - Dev ati Ops, ki gbogbo eniyan ni itunu.

Eyi tumọ si pe apere, loni, awọn akọọlẹ yẹ ki o kọ ni ọna kika JSON. Ti o ba ni diẹ ninu awọn ohun elo ti ko ni oye ti ara rẹ, eyi ti o kọ awọn iwe-ipamọ ni awọn ọna kika ti ko ni oye nitori pe o fi diẹ ninu awọn titẹ sii tabi iru nkan bẹẹ, lẹhinna o to akoko lati google diẹ ninu awọn ilana, diẹ ninu awọn ohun elo ti o gba ọ laaye lati ṣe igbasilẹ deede; mu awọn paramita gedu ṣiṣẹ ni JSON nibẹ, nitori JSON jẹ ọna kika ti o rọrun, sisọ o rọrun.

Ti JSON rẹ ko ba ṣiṣẹ ni ibamu si diẹ ninu awọn ibeere, ko si ẹnikan ti o mọ kini, lẹhinna o kere kọ awọn akọọlẹ ni ọna kika ti o le ṣe itupalẹ. Nibi, dipo, o tọ lati ronu nipa otitọ pe, fun apẹẹrẹ, ti o ba nṣiṣẹ ọpọlọpọ awọn apoti tabi o kan awọn ilana pẹlu nginx, ati pe ọkọọkan ni awọn eto gedu tirẹ, lẹhinna o ṣee ṣe pe yoo jẹ aibalẹ pupọ fun ọ lati tú wọn. Nitori fun apẹẹrẹ nginx tuntun kọọkan o nilo lati kọ parser tirẹ, nitori wọn kọ awọn akọọlẹ ni oriṣiriṣi. Lẹẹkansi, o ṣee ṣe lati ronu nipa rii daju pe gbogbo awọn iṣẹlẹ nginx wọnyi ni iṣeto gedu kanna ati kọ gbogbo awọn akọọlẹ wọn ni iṣọkan ni iṣọkan. Kanna kan si Egba gbogbo awọn ohun elo.

Ni ipari, Mo tun fẹ lati fi epo kun si ina pe, ni pipe, awọn ọna kika ila-pupọ yẹ ki o yago fun. Eyi ni ohun naa, ti o ba ti ṣiṣẹ pẹlu awọn agbowọ log, lẹhinna o ṣee ṣe pe o ti rii ohun ti wọn ṣe ileri fun ọ, pe wọn le ṣiṣẹ pẹlu awọn akọọlẹ laini pupọ, mọ bi a ṣe le gba wọn, ati bẹbẹ lọ. Ni otitọ, ninu ero mi, kii ṣe oluṣowo kan loni le gba awọn akọọlẹ laini pupọ ni deede, ni kikun ati laisi awọn aṣiṣe. Ni ọna eniyan, ki o rọrun ati laisi aṣiṣe.

Awọn ibeere fun idagbasoke ohun elo ni Kubernetes

Ṣugbọn itọpa akopọ jẹ awọn akọọlẹ laini pupọ nigbagbogbo ati bii o ṣe le yago fun wọn. Ibeere ti o wa nibi ni pe akọọlẹ jẹ igbasilẹ iṣẹlẹ kan, ati pe stactrace kii ṣe log gangan kan. Ti a ba gba awọn akọọlẹ ki o fi wọn si ibikan ni Elasticsearch ati lẹhinna fa awọn aworan lati ọdọ wọn, kọ diẹ ninu awọn ijabọ ti iṣẹ ṣiṣe olumulo lori aaye rẹ, lẹhinna nigbati o ba gba itọpa akopọ, o tumọ si pe nkan airotẹlẹ n ṣẹlẹ. Ati pe o jẹ oye lati gbejade itọpa akopọ laifọwọyi ni ibikan sinu eto ti o le tọpa wọn.

Eyi jẹ sọfitiwia (Sentry kanna) ti a ṣe ni pataki lati ṣiṣẹ pẹlu itọpa akopọ. O le ṣẹda awọn iṣẹ ṣiṣe adaṣe lẹsẹkẹsẹ, fi wọn si ẹnikan, gbigbọn nigbati awọn iṣiro ba waye, ṣe akojọpọ awọn stattrace wọnyi nipasẹ iru kan, ati bẹbẹ lọ. Ni opo, ko ni oye pupọ lati sọrọ nipa awọn stactraces nigba ti a ba sọrọ nipa awọn akọọlẹ, nitori awọn wọnyi ni, lẹhinna, awọn ohun ti o yatọ pẹlu awọn idi oriṣiriṣi.

Iṣeto ni

Nigbamii a sọrọ nipa iṣeto ni Kubernetes: kini lati ṣe pẹlu rẹ ati bii awọn ohun elo inu Kubernetes ṣe yẹ ki o tunto. Ni gbogbogbo, Mo nigbagbogbo sọ pe Docker kii ṣe nipa awọn apoti. Gbogbo eniyan mọ pe Docker jẹ nipa awọn apoti, paapaa awọn ti ko ṣiṣẹ pẹlu Docker pupọ. Mo tun ṣe, Docker kii ṣe nipa awọn apoti.

Docker, ninu ero mi, jẹ nipa awọn iṣedede. Ati pe awọn iṣedede wa fun ohun gbogbo: awọn iṣedede fun kikọ ohun elo rẹ, awọn iṣedede fun fifi ohun elo rẹ sori ẹrọ.

Awọn ibeere fun idagbasoke ohun elo ni Kubernetes

Ati nkan yii - a lo tẹlẹ, o kan di olokiki paapaa pẹlu dide ti awọn apoti - nkan yii ni a pe ni awọn oniyipada ENV (ayika), iyẹn ni, awọn oniyipada ayika ti o wa ninu ẹrọ iṣẹ rẹ. Eyi jẹ ọna ti o dara julọ lati tunto ohun elo rẹ, nitori ti o ba ni awọn ohun elo ni JAVA, Python, Go, Perl, Ọlọrun lodi, ati pe gbogbo wọn le ka ibi ipamọ data, olumulo data data, awọn oniyipada ọrọ igbaniwọle data, lẹhinna o dara julọ. O ni awọn ohun elo ni awọn ede oriṣiriṣi mẹrin ti a tunto ni ero data data ni ọna kanna. Ko si awọn atunto oriṣiriṣi diẹ sii.

Ohun gbogbo le ṣee tunto nipa lilo awọn oniyipada ENV. Nigba ti a ba sọrọ nipa Kubernetes, ọna nla wa lati sọ awọn oniyipada ENV ọtun inu Imuṣiṣẹ. Nitorinaa, ti a ba n sọrọ nipa data aṣiri, lẹhinna a le titari data aṣiri lẹsẹkẹsẹ lati awọn oniyipada ENV (awọn ọrọ igbaniwọle si awọn apoti isura data, ati bẹbẹ lọ) sinu aṣiri kan, ṣẹda iṣupọ aṣiri ati tọka si apejuwe ENV ni Imuṣiṣẹ ti a ko sọ taara taara. iye ti oniyipada yii, ati iye ti oniyipada ọrọ igbaniwọle database yii yoo ka lati inu aṣiri. Eyi jẹ ihuwasi Kubernetes boṣewa. Ati pe eyi ni aṣayan pipe julọ lati tunto awọn ohun elo rẹ. O kan ni ipele koodu, lẹẹkansi eyi kan si awọn olupilẹṣẹ. Ti o ba jẹ DevOps, o le beere: “Awọn ọmọkunrin, jọwọ kọ ohun elo rẹ lati ka awọn oniyipada ayika. Ati pe gbogbo wa yoo ni idunnu. ”

Ti gbogbo eniyan ninu ile-iṣẹ ba ka awọn oniyipada agbegbe ti a darukọ kanna, lẹhinna iyẹn dara julọ. Ki o ko ba ṣẹlẹ pe diẹ ninu awọn nduro fun aaye data postgres, awọn miiran n duro de orukọ data, awọn miiran n duro de nkan miiran, awọn miiran n duro de dbn ti iru kan, ki, gẹgẹbi, iṣọkan wa.

Iṣoro naa wa nigbati o ni ọpọlọpọ awọn oniyipada ayika ti o kan ṣii Imuṣiṣẹ - ati pe awọn laini ẹdẹgbẹta ti awọn oniyipada ayika wa. Ni ọran yii, o ti dagba nirọrun awọn oniyipada ayika - ati pe iwọ ko nilo lati jiya funrararẹ. Ni ọran yii, yoo jẹ oye lati bẹrẹ lilo awọn atunto. Iyẹn ni, kọ ohun elo rẹ lati lo awọn atunto.

Ibeere nikan ni pe awọn atunto kii ṣe ohun ti o ro. Config.pi kii ṣe atunto ti o rọrun lati lo. Tabi diẹ ninu awọn atunto ni ọna kika tirẹ, yiyan ẹbun - eyi kii ṣe atunto Mo tumọ si.

Ohun ti Mo n sọrọ nipa ni iṣeto ni awọn ọna kika itẹwọgba, iyẹn ni, nipasẹ ọna ti o gbajumọ julọ ni boṣewa .yaml. O han bi o ṣe le ka rẹ, o jẹ kika eniyan, o han gbangba bi o ṣe le ka lati inu ohun elo naa.

Nitorinaa, ni afikun si YAML, o tun le, fun apẹẹrẹ, lo JSON, sisọtọ jẹ irọrun bi YAML ni awọn ofin kika iṣeto ohun elo lati ibẹ. O jẹ akiyesi diẹ sii inira fun eniyan lati ka. O le gbiyanju ọna kika, a la ini. O rọrun pupọ lati ka, lati oju wiwo eniyan, ṣugbọn o le jẹ aibalẹ lati ṣe ilana rẹ laifọwọyi, ni ori pe ti o ba fẹ lati ṣe agbekalẹ awọn atunto tirẹ, ọna kika ini le ti jẹ airọrun lati ṣe ipilẹṣẹ.

Ṣugbọn ni eyikeyi idiyele, eyikeyi ọna kika ti o yan, aaye naa ni pe lati oju wiwo Kubernetes o rọrun pupọ. O le fi gbogbo atunto rẹ sinu Kubernetes, ni ConfigMap. Ati lẹhinna mu atunto atunto yii ki o beere pe ki o gbe inu adarọ-ese rẹ sinu itọsọna kan pato, nibiti ohun elo rẹ yoo ka atunto lati atunto atunto yii bi ẹnipe o kan faili kan. Eyi, ni otitọ, jẹ ohun ti o dara lati ṣe nigbati o ni ọpọlọpọ awọn aṣayan iṣeto ni ohun elo rẹ. Tabi o kan jẹ iru eto eka kan, itẹ-ẹiyẹ wa.

Ti o ba ni maapu atunto kan, lẹhinna o le kọ ohun elo rẹ daradara, fun apẹẹrẹ, lati ṣe atẹle awọn ayipada laifọwọyi ninu faili nibiti o ti gbe atunto atunto, ati tun gbe ohun elo rẹ laifọwọyi nigbati awọn atunto ba yipada. Eyi yoo jẹ aṣayan pipe ni gbogbogbo.

Lẹẹkansi, Mo ti sọrọ tẹlẹ nipa eyi - alaye aṣiri ko si ni atunto, alaye aṣiri ko si ni awọn oniyipada, alaye aṣiri ko si ni awọn aṣiri. Lati ibẹ, so alaye asiri yii pọ si diplomacy. Nigbagbogbo a tọju gbogbo awọn apejuwe ti awọn nkan Kubernetes, awọn imuṣiṣẹ, awọn atunto, awọn iṣẹ ni git. Nitorinaa, fifi ọrọ igbaniwọle si ibi ipamọ data ni git, paapaa ti o jẹ git rẹ, eyiti o ni inu inu ile-iṣẹ, jẹ imọran buburu. Nitoripe, ni o kere ju, git ranti ohun gbogbo ati yiyọ awọn ọrọ igbaniwọle nirọrun lati ibẹ ko rọrun.

Ayewo ilera

Ojuami ti o tẹle ni nkan yii ti a pe ni Ṣayẹwo Ilera. Ni gbogbogbo, ayẹwo Ilera kan n ṣayẹwo nirọrun pe ohun elo rẹ n ṣiṣẹ. Ni akoko kanna, a n sọrọ nigbagbogbo nipa awọn ohun elo wẹẹbu kan, fun eyiti, ni ibamu, lati oju wiwo ti ayẹwo ilera (o dara ki a ma ṣe tumọ nibi ati siwaju) eyi yoo jẹ diẹ ninu URL pataki, eyiti wọn ṣe ilana bi a boṣewa, ti won maa n ṣe /health.

Nigbati o ba n wọle si URL yii, ni ibamu, ohun elo wa sọ boya "bẹẹni, o dara, ohun gbogbo dara pẹlu mi, 200" tabi "rara, ohun gbogbo ko dara pẹlu mi, diẹ ninu awọn 500." Nitorinaa, ti ohun elo wa ko ba jẹ http, kii ṣe ohun elo wẹẹbu kan, a n sọrọ bayi nipa iru daemon kan, a le rii bi a ṣe le ṣe awọn sọwedowo ilera. Iyẹn ni, ko ṣe pataki, ti ohun elo ko ba jẹ http, lẹhinna ohun gbogbo ṣiṣẹ laisi ayẹwo ilera ati eyi ko le ṣee ṣe ni eyikeyi ọna. O le ṣe imudojuiwọn alaye diẹ ninu faili lorekore, o le wa pẹlu aṣẹ pataki kan fun daemon rẹ, bii, daemon status, eyi ti yoo sọ "bẹẹni, ohun gbogbo dara, daemon n ṣiṣẹ, o wa laaye."

Kini o jẹ fun? Ohun akọkọ ati ti o han gedegbe ni boya idi ti o nilo ayẹwo ilera kan - lati loye pe ohun elo naa n ṣiṣẹ. Mo tumọ si, o kan jẹ aṣiwere, nigbati o ba wa ni bayi, o dabi pe o ṣiṣẹ, nitorina o le rii daju pe o n ṣiṣẹ. Ati pe o wa ni pe ohun elo naa nṣiṣẹ, eiyan naa nṣiṣẹ, apẹẹrẹ n ṣiṣẹ, ohun gbogbo dara - ati lẹhinna awọn olumulo ti ge gbogbo awọn nọmba foonu kuro lati atilẹyin imọ-ẹrọ ati sọ “kini iwọ…, iwọ sun oorun, ko si nkan ti o ṣiṣẹ.”

Ayẹwo ilera jẹ iru ọna kan lati rii lati oju wiwo olumulo pe o ṣiṣẹ. Ọkan ninu awọn ọna. Jẹ ki a fi sii ni ọna yii. Lati oju ti Kubernetes, eyi tun jẹ ọna lati loye nigbati ohun elo ba bẹrẹ, nitori a loye pe iyatọ wa laarin igba ti a ti gbe eiyan naa, ṣẹda ati bẹrẹ, ati nigbati ohun elo ti ṣe ifilọlẹ taara ninu apo eiyan yii. Nitoripe ti a ba mu diẹ ninu awọn ohun elo java apapọ ati gbiyanju lati ṣe ifilọlẹ ni ibi iduro, lẹhinna fun ogoji iṣẹju-aaya, tabi paapaa iṣẹju kan, tabi paapaa mẹwa, o le bẹrẹ ni itanran. Ni ọran yii, o le ni o kere ju kọlu awọn ebute oko oju omi rẹ, kii yoo dahun nibẹ, iyẹn ni, ko ti ṣetan lati gba ijabọ.

Lẹẹkansi, pẹlu iranlọwọ ti ayẹwo ilera ati pẹlu iranlọwọ ti otitọ pe a wa ni titan nibi, a le ni oye ni Kubernetes pe kii ṣe apoti nikan ti dide ninu ohun elo, ṣugbọn ohun elo funrararẹ ti bẹrẹ, o ti dahun tẹlẹ si ayẹwo ilera, eyi ti o tumọ si pe a le fi ijabọ ranṣẹ sibẹ.

Awọn ibeere fun idagbasoke ohun elo ni Kubernetes

Ohun ti Mo n sọrọ nipa ni bayi ni a pe ni Awọn idanwo imurasilẹ / Igbesi aye laarin Kubernetes; nitorinaa, awọn idanwo imurasilẹ wa ni iduro fun wiwa ohun elo ni iwọntunwọnsi. Iyẹn ni, ti awọn idanwo imurasilẹ ba ṣe ninu ohun elo naa, lẹhinna ohun gbogbo dara, ijabọ alabara n lọ si ohun elo naa. Ti awọn idanwo imurasilẹ ko ba ṣe, lẹhinna ohun elo naa ko kopa, apẹẹrẹ pataki yii ko kopa ninu iwọntunwọnsi, o yọkuro lati iwọntunwọnsi, ijabọ alabara ko ṣan. Nitorinaa, awọn idanwo Liveness laarin Kubernetes nilo ki ohun elo naa ba di, o le tun bẹrẹ. Ti idanwo igbesi aye ko ba ṣiṣẹ fun ohun elo kan ti o kede ni Kubernetes, lẹhinna ohun elo ko kan yọkuro lati iwọntunwọnsi, o ti tun bẹrẹ.

Ati pe eyi jẹ aaye pataki kan ti Emi yoo fẹ lati darukọ: lati oju wiwo ti o wulo, idanwo imurasilẹ ni a maa n lo nigbagbogbo ati pe o nilo nigbagbogbo ju idanwo igbesi aye lọ. Iyẹn ni, nirọrun lairotẹlẹ sisọ mejeeji imurasilẹ ati awọn idanwo igbesi aye, nitori Kubernetes le ṣe iyẹn, ati pe jẹ ki a lo ohun gbogbo ti o le ṣe, kii ṣe imọran ti o dara pupọ. Emi yoo ṣe alaye idi. Nitori nọmba nọmba meji ni idanwo ni pe yoo jẹ imọran ti o dara lati ṣayẹwo iṣẹ abẹlẹ ninu awọn sọwedowo ilera rẹ. Eyi tumọ si pe ti o ba ni ohun elo wẹẹbu kan ti o funni ni alaye diẹ, eyiti o, nipa ti ara, gbọdọ gba lati ibikan. Ninu aaye data, fun apẹẹrẹ. O dara, o fipamọ alaye ti o wa sinu API REST yii sinu ibi ipamọ data kanna. Lẹhinna, ni ibamu, ti ayẹwo ilera rẹ ba dahun ni irọrun bii ti o kan si slashhealth, ohun elo naa sọ “200, o dara, ohun gbogbo dara,” ati ni akoko kanna data data ohun elo rẹ ko le wọle, ati pe ohun elo ayẹwo ilera sọ pe “200, dara, ohun gbogbo dara. ”- Eyi jẹ ayẹwo ilera ti ko dara. Eyi kii ṣe bi o ṣe yẹ ki o ṣiṣẹ.

Iyẹn ni, ohun elo rẹ, nigbati ibeere kan ba de ọdọ rẹ /health, kii ṣe idahun nikan, “200, ok”, o kọkọ lọ, fun apẹẹrẹ, si ibi ipamọ data, gbiyanju lati sopọ si rẹ, ṣe nkan ipilẹ pupọ nibẹ, bii yan ọkan, kan ṣayẹwo pe asopọ kan wa ninu database ati pe o le beere aaye data naa. Ti gbogbo eyi ba ṣaṣeyọri, lẹhinna idahun jẹ “200, ok.” Ti ko ba ṣe aṣeyọri, o sọ pe aṣiṣe kan wa, aaye data ko si.

Nitorinaa, ni iyi yii, Mo tun pada si awọn idanwo imurasilẹ / igbesi aye - kilode ti o ṣeese julọ nilo idanwo imurasilẹ, ṣugbọn idanwo igbesi aye wa ni ibeere. Nitoripe ti o ba ṣe apejuwe awọn sọwedowo ilera ni deede bi Mo ti sọ tẹlẹ, lẹhinna o yoo tan pe ko si ni apakan apẹẹrẹв или со всех instanceni a database, fun apẹẹrẹ. Nigbati o ba ṣalaye idanwo imurasilẹ kan, awọn sọwedowo ilera wa bẹrẹ si kuna, ati ni ibamu si gbogbo awọn ohun elo lati eyiti data data ko wa, wọn ti wa ni pipa lati iwọntunwọnsi ati ni otitọ “idorikodo” o kan ni ipo aibikita ati duro fun awọn apoti isura infomesonu wọn si ṣiṣẹ.

Ti a ba ti ṣalaye idanwo igbesi aye, lẹhinna fojuinu, data data wa ti bajẹ, ati ninu Kubernetes rẹ idaji ohun gbogbo bẹrẹ lati tun bẹrẹ nitori idanwo igbesi aye kuna. Eyi tumọ si pe o nilo lati tun bẹrẹ. Eyi kii ṣe ohun ti o fẹ rara, Mo paapaa ni iriri ti ara ẹni ni iṣe. A ni ohun elo iwiregbe ti a ti kọ ni JS ati ki o je sinu Mongo database. Ati pe iṣoro naa ni pe o wa ni ibẹrẹ iṣẹ mi pẹlu Kubernetes, a ṣe apejuwe imurasilẹ, igbesi aye awọn idanwo lori ilana ti Kubernetes le ṣe, nitorinaa a yoo lo. Gegebi bi, ni diẹ ninu awọn ojuami Mongo di kekere kan "ṣigọgọ" ati awọn ayẹwo bẹrẹ si kuna. Gegebi, ni ibamu si idanwo ojo, awọn pods bẹrẹ si "pa".

Bi o ṣe yeye, nigba ti wọn ba "pa", eyi jẹ iwiregbe, iyẹn ni, ọpọlọpọ awọn asopọ wa lati ọdọ awọn alabara ti o wa ni adiye lori rẹ. Wọn tun “pa” - rara, kii ṣe awọn alabara, awọn asopọ nikan - kii ṣe gbogbo wọn ni akoko kanna, ati nitori otitọ pe wọn ko pa wọn ni akoko kanna, diẹ ninu awọn iṣaaju, diẹ ninu nigbamii, wọn ko bẹrẹ ni akoko kanna. aago. Pẹlupẹlu ID boṣewa, a ko le ṣe asọtẹlẹ pẹlu deede millisecond akoko ibẹrẹ ohun elo ni igba kọọkan, nitorinaa wọn ṣe apẹẹrẹ kan ni akoko kan. Infospot kan dide, ti a fi kun si iwọntunwọnsi, gbogbo awọn alabara wa sibẹ, ko le koju iru ẹru bẹ, nitori pe o wa nikan, ati pe, ni aijọju, awọn mejila ti wọn ṣiṣẹ nibẹ, o ṣubu. Eni keji dide, gbogbo eru wa lori re, on na subu. O dara, awọn isubu wọnyi kan tẹsiwaju lati kasikedi. Ni ipari, bawo ni a ṣe yanju eyi - a kan ni lati da ijabọ olumulo duro ni deede si ohun elo yii, jẹ ki gbogbo awọn iṣẹlẹ dide ati lẹhinna bẹrẹ gbogbo ijabọ olumulo ni ẹẹkan ki o ti pin tẹlẹ laarin gbogbo awọn iṣẹlẹ mẹwa.

Ti kii ba ṣe fun ikede idanwo igbesi aye yii, eyiti yoo fi ipa mu gbogbo rẹ lati tun bẹrẹ, ohun elo naa yoo ti ṣakoso rẹ daradara. Ṣugbọn ohun gbogbo lati iwọntunwọnsi jẹ alaabo fun wa, nitori awọn apoti isura infomesonu ko ṣee ṣe ati pe gbogbo awọn olumulo ti “ṣubu”. Lẹhinna, nigbati data data yii ba wa, ohun gbogbo wa ninu iwọntunwọnsi, ṣugbọn awọn ohun elo ko nilo lati bẹrẹ lẹẹkansi, ati pe ko si ye lati padanu akoko ati awọn orisun lori eyi. Gbogbo wọn ti wa nibi tẹlẹ, wọn ti ṣetan fun ijabọ, nitorinaa ijabọ kan ṣii, ohun gbogbo dara - ohun elo wa ni aaye, ohun gbogbo tẹsiwaju lati ṣiṣẹ.

Nitorinaa, imurasilẹ ati awọn idanwo igbesi aye yatọ, paapaa paapaa, o le ni imọ-jinlẹ ṣe awọn sọwedowo ilera ti o yatọ, oriṣi radii kan, iru liv kan, fun apẹẹrẹ, ati ṣayẹwo awọn nkan oriṣiriṣi. Lakoko awọn idanwo imurasilẹ, ṣayẹwo awọn ẹhin rẹ. Ati lori idanwo igbesi aye, fun apẹẹrẹ, o ko ṣayẹwo lati oju wiwo pe idanwo igbesi aye jẹ gbogbo ohun elo ti n dahun, ti o ba ni anfani lati dahun rara.

Nitoripe idanwo igbesi aye, lapapọ, jẹ nigba ti a "di" Loop ailopin ti bẹrẹ tabi nkan miiran - ko si si awọn ibeere diẹ sii ti a ṣe ilana. Nitorinaa, o jẹ oye lati paapaa ya wọn kuro - ati ṣe imuse awọn ọgbọn oriṣiriṣi ninu wọn.

Nipa ohun ti o nilo lati dahun nigba ti o ni idanwo, nigba ti o ba ṣe awọn ayẹwo ilera. O kan ni irora gaan. Awọn ti o faramọ eyi yoo rẹrin - ṣugbọn ni pataki, Mo ti rii awọn iṣẹ ni igbesi aye mi ti o dahun “200” ni XNUMX% awọn ọran. Iyẹn ni, tani o ṣaṣeyọri. Ṣugbọn ni akoko kanna ni ara ti idahun wọn kọ “iru ati iru aṣiṣe.”

Iyẹn ni, ipo idahun wa si ọ - ohun gbogbo ni aṣeyọri. Ṣugbọn ni akoko kanna, o gbọdọ sọ ara rẹ di mimọ, nitori pe ara sọ “binu, ibeere naa pari pẹlu aṣiṣe” ati pe eyi jẹ otitọ. Mo ti ri eyi ni aye gidi.

Ati pe ki diẹ ninu awọn eniyan ko rii pe o dun, ati awọn miiran ri i ni irora pupọ, o tun tọ lati tẹle ofin ti o rọrun. Ni awọn sọwedowo ilera, ati ni ipilẹ nigba ṣiṣẹ pẹlu awọn ohun elo wẹẹbu.

Ti ohun gbogbo ba lọ daradara, lẹhinna dahun pẹlu idahun ọgọrun meji. Ni opo, eyikeyi idahun ọgọrun meji yoo baamu fun ọ. Ti o ba ka ragsy daradara ati ki o mọ pe diẹ ninu awọn ipo idahun yatọ si awọn miiran, dahun pẹlu awọn ti o yẹ: 204, 5, 10, 15, ohunkohun ti. Ti ko ba dara pupọ, lẹhinna o kan “odo odo meji.” Ti ohun gbogbo ba buru ati pe ayẹwo ilera ko dahun, lẹhinna dahun pẹlu ọgọrun marun. Lẹẹkansi, ti o ba loye bi o ṣe le dahun, bawo ni awọn ipo idahun ti o yatọ ṣe yatọ si ara wọn. Ti o ko ba loye, lẹhinna 502 jẹ aṣayan rẹ lati dahun si awọn sọwedowo ilera ti nkan kan ba jẹ aṣiṣe.

Eyi jẹ aaye miiran, Mo fẹ pada diẹ nipa ṣayẹwo awọn iṣẹ abẹlẹ. Ti o ba bẹrẹ, fun apẹẹrẹ, ṣayẹwo gbogbo awọn iṣẹ abẹlẹ ti o duro lẹhin ohun elo rẹ - ohun gbogbo ni gbogbogbo. Ohun ti a gba lati oju wiwo ti faaji microservice, a ni iru imọran bii “isopọpọ kekere” - iyẹn ni, nigbati awọn iṣẹ rẹ ba ni igbẹkẹle diẹ si ara wọn. Ti ọkan ninu wọn ba kuna, gbogbo awọn miiran laisi iṣẹ ṣiṣe yii yoo tẹsiwaju lati ṣiṣẹ nikan. Diẹ ninu awọn iṣẹ ṣiṣe kan ko ṣiṣẹ. Nitorinaa, ti o ba di gbogbo awọn sọwedowo ilera si ara wọn, lẹhinna o yoo pari pẹlu ohun kan ti o ṣubu ni awọn amayederun, ati nitori pe o ṣubu, gbogbo awọn sọwedowo ilera ti gbogbo awọn iṣẹ tun bẹrẹ lati kuna - ati pe awọn amayederun diẹ sii ni gbogbogbo fun gbogbo microservice faaji No. Ohun gbogbo ti lọ dudu nibẹ.

Nitorinaa, Mo fẹ lati tun ṣe eyi lẹẹkansi pe o nilo lati ṣayẹwo awọn iṣẹ abẹlẹ, laisi eyiti ohun elo rẹ ni ọgọrun ogorun awọn ọran ko le ṣe iṣẹ rẹ. Iyẹn ni, o jẹ ọgbọn pe ti o ba ni API REST nipasẹ eyiti olumulo n fipamọ si ibi ipamọ data tabi gba lati ibi ipamọ data, lẹhinna ni aini data data, o ko le ṣe iṣeduro iṣẹ pẹlu awọn olumulo rẹ.

Ṣugbọn ti awọn olumulo rẹ, nigbati o ba mu wọn jade kuro ni ibi ipamọ data, ni afikun afikun pẹlu diẹ ninu awọn metadata miiran, lati ẹhin ẹhin miiran, eyiti o tẹ ṣaaju fifiranṣẹ esi si iwaju iwaju - ati pe ẹhin yii ko si, eyi tumọ si pe o fun ni tirẹ. dahun laisi eyikeyi apakan ti metadata.

Nigbamii ti, a tun ni ọkan ninu awọn oran irora nigbati o ba bẹrẹ awọn ohun elo.

Ni otitọ, eyi ko kan Kubernetes nipasẹ ati nla; o kan ṣẹlẹ pe aṣa ti iru idagbasoke ibi-pupọ ati DevOps ni pataki bẹrẹ lati tan kaakiri ni akoko kanna bi Kubernetes. Nitorinaa, nipasẹ ati nla, o han pe o nilo lati fi ore-ọfẹ pa ohun elo rẹ laisi Kubernetes. Paapaa ṣaaju Kubernetes, awọn eniyan ṣe eyi, ṣugbọn pẹlu dide ti Kubernetes, a bẹrẹ sọrọ nipa rẹ lapapọ.

Tiipa oore-ọfẹ

Ni gbogbogbo, kini Tiipa Graceful ati kilode ti o nilo? Eyi jẹ nipa nigbati ohun elo rẹ ba kọlu fun idi kan, o nilo lati ṣe app stop - tabi o gba, fun apẹẹrẹ, ifihan agbara kan lati ẹrọ ṣiṣe, ohun elo rẹ gbọdọ loye rẹ ki o ṣe nkan nipa rẹ. Oju iṣẹlẹ ti o buru julọ, nitorinaa, ni nigbati ohun elo rẹ gba SIGTERM kan ati pe o dabi “SIGTERM, jẹ ki a duro lori, ṣiṣẹ, ko ṣe nkankan.” Eyi jẹ aṣayan buburu patapata.

Awọn ibeere fun idagbasoke ohun elo ni Kubernetes

Aṣayan buburu dọgbadọgba ni nigbati ohun elo rẹ ba gba SIGTERM kan ati pe o dabi “wọn sọ apakan, iyẹn tumọ si pe a n pari, Emi ko rii, Emi ko mọ awọn ibeere olumulo eyikeyi, Emi ko mọ iru iru Awọn ibeere ti Mo ti ṣiṣẹ ni bayi, wọn sọ SIGTERM, iyẹn tumọ si pe a n pari” Eyi tun jẹ aṣayan buburu.

Aṣayan wo ni o dara? Ojuami akọkọ ni lati ṣe akiyesi ipari awọn iṣẹ ṣiṣe. Aṣayan ti o dara ni fun olupin rẹ lati tun ṣe akiyesi ohun ti o ṣe ti o ba gba SIGTERM kan.

SIGTERM jẹ tiipa rirọ, ti a ṣe apẹrẹ pataki, o le ṣe idilọwọ ni ipele koodu, o le ṣe ilana, sọ pe ni bayi, duro, a yoo kọkọ pari iṣẹ ti a ni, lẹhinna a yoo jade.

Lati irisi Kubernetes, eyi ni ohun ti o dabi. Nigba ti a ba sọ fun adarọ-ese kan ti o nṣiṣẹ ni iṣupọ Kubernetes, "jọwọ duro, lọ kuro," tabi a tun bẹrẹ, tabi imudojuiwọn kan waye nigbati Kubernetes tun ṣe awọn adarọ-ese, Kubernetes fi ifiranṣẹ SIGTERM kanna ranṣẹ si adarọ-ese, duro fun diẹ ninu awọn akoko, ati, yi ni akoko ti o duro, o ti wa ni tun tunto, nibẹ ni iru kan pataki paramita ni diplomas ati awọn ti o ni a npe ni Graceful ShutdownTimeout. Bi o ṣe yeye, ko pe ni ohunkohun, ati pe kii ṣe fun ohunkohun ti a n sọrọ nipa rẹ ni bayi.

Nibẹ ni a le sọ ni pato bi o ṣe pẹ to ti a nilo lati duro laarin akoko ti a firanṣẹ SIGTERM si ohun elo naa ati nigba ti a ba loye pe ohun elo naa dabi ẹni pe o ti ya aṣiwere fun nkan kan tabi ti “di” ati pe kii yoo pari - ati pe a nilo lati fi SIGKILL ranṣẹ, iyẹn ni, pari iṣẹ rẹ. Iyẹn ni, ni ibamu, a ni iru kan ti nṣiṣẹ daemon, o ṣe ilana awọn iṣẹ. A loye pe ni apapọ awọn iṣẹ wa ti daemon ṣiṣẹ lori ko ṣiṣe diẹ sii ju 30 iṣẹju-aaya ni akoko kan. Nitorinaa, nigbati SIGTERM ba de, a loye pe daemon wa le, ni pupọ julọ, pari awọn aaya 30 lẹhin SIGTERM. A kọ ọ, fun apẹẹrẹ, awọn aaya 45 kan ni ọran ati sọ pe SIGTERM. Lẹhin ti a duro 45 aaya. Ni imọran, lakoko yii o yẹ ki ẹmi èṣu ti pari iṣẹ rẹ ki o pari ara rẹ. Ṣugbọn ti o ba jẹ lojiji ko le, o tumọ si pe o ṣee ṣe pupọ julọ di — ko ṣe ṣiṣiṣẹ awọn ibeere wa deede. Ati ni awọn aaya 45 o le ni aabo lailewu, ni otitọ, àlàfo rẹ mọlẹ.

Ati nibi, ni otitọ, paapaa awọn aaye 2 le ṣe akiyesi. Ni akọkọ, loye pe ti o ba gba ibeere kan, o bẹrẹ lati ṣiṣẹ pẹlu rẹ bakan ati pe ko fun olumulo ni esi, ṣugbọn o gba SIGTERM, fun apẹẹrẹ. O jẹ oye lati sọ di mimọ ki o fun olumulo ni idahun. Eleyi jẹ ojuami nọmba ọkan ni yi iyi. Nọmba nọmba meji nibi ni pe ti o ba kọ ohun elo tirẹ, ni gbogbogbo kọ faaji ni ọna ti o gba ibeere kan fun ohun elo rẹ, lẹhinna o bẹrẹ iṣẹ kan, bẹrẹ gbigba awọn faili lati ibikan, gbigba data data kan, ati kini kii ṣe. Iyẹn. Ni gbogbogbo, olumulo rẹ, ibeere rẹ duro fun idaji wakati kan ati pe o duro de ọ lati dahun - lẹhinna, o ṣeese, o nilo lati ṣiṣẹ lori faaji. Iyẹn ni, kan ṣe akiyesi paapaa oye ti o wọpọ pe ti awọn iṣẹ rẹ ba kuru, lẹhinna o jẹ oye lati foju SIGTERM ki o yipada. Ti awọn iṣẹ ṣiṣe rẹ ba gun, lẹhinna ko ṣe oye lati foju SIGTERM ninu ọran yii. O jẹ oye lati tun ṣe atunto faaji lati yago fun iru awọn iṣẹ ṣiṣe gigun. Ki awọn olumulo ma ṣe gbele ni ayika ati duro. Emi ko mọ, ṣe diẹ ninu iru websocket nibẹ, ṣe awọn kio yiyipada ti olupin rẹ yoo firanṣẹ tẹlẹ si alabara, ohunkohun miiran, ṣugbọn maṣe fi agbara mu olumulo lati gbele fun idaji wakati kan ati pe o kan duro fun igba kan titi iwọ o fi ṣe. dá a lóhùn. Nitoripe ko ṣe asọtẹlẹ ibiti o ti le fọ.

Nigbati ohun elo rẹ ba pari, o yẹ ki o pese diẹ ninu koodu ijade ti o yẹ. Iyẹn ni, ti ohun elo rẹ ba beere lati pa, da duro, ati pe o ni anfani lati da ararẹ duro deede, lẹhinna o ko nilo lati da iru koodu ijade kan pada 1,5,255 ati bẹbẹ lọ. Ohunkohun ti kii ṣe koodu odo, o kere ju ni awọn eto Linux, Mo ni idaniloju eyi, ni a gba pe ko ni aṣeyọri. Iyẹn ni, a gba pe ohun elo rẹ ninu ọran yii pari pẹlu aṣiṣe kan. Nitorinaa, ni ọna alaafia, ti ohun elo rẹ ba pari laisi aṣiṣe, o sọ 0 lori iṣelọpọ. Ti ohun elo rẹ ba kuna fun idi kan, o sọ pe kii ṣe 0 ninu iṣelọpọ. Ati pe o le ṣiṣẹ pẹlu alaye yii.

Ati aṣayan ti o kẹhin. O buru nigbati olumulo rẹ ba fi ibeere ranṣẹ ati gbele fun idaji wakati kan lakoko ti o ṣe ilana rẹ. Ṣugbọn ni gbogbogbo, Emi yoo tun fẹ lati sọ nipa ohun ti o tọ ni gbogbogbo lati ẹgbẹ alabara. Ko ṣe pataki ti o ba ni ohun elo alagbeka kan, iwaju-opin, ati bẹbẹ lọ. O jẹ dandan lati ṣe akiyesi pe ni gbogbogbo igba akoko olumulo le ti pari, ohunkohun le ṣẹlẹ. A le fi ibeere ranṣẹ, fun apẹẹrẹ, ti ko ṣiṣẹ ko si si idahun. Iwaju iwaju rẹ tabi ohun elo alagbeka rẹ - eyikeyi iwaju iwaju ni gbogbogbo, jẹ ki a fi sii ni ọna yẹn - yẹ ki o gba eyi sinu akọọlẹ. Ti o ba ṣiṣẹ pẹlu awọn oju opo wẹẹbu, eyi ni gbogbogbo irora ti o buru julọ ti Mo ti ni tẹlẹ.

Nigbati awọn olupilẹṣẹ ti diẹ ninu awọn ibaraẹnisọrọ deede ko mọ pe, o wa ni jade, websocket le fọ. Fun wọn, nigbati nkan ba ṣẹlẹ ni aṣoju, a kan yi atunto naa pada, ati pe o tun gbee. Nipa ti, gbogbo awọn igba pipẹ ni a ya ninu ọran yii. Àwọn olùgbéjáde wá ń sáré wá sọ́dọ̀ wa, wọ́n sì sọ pé: “Àwọn ará, kí lo ń ṣe, ìfọ̀rọ̀wérọ̀ náà ti já fún gbogbo àwọn oníbàárà wa!” A sọ fún wọn pé: “Kí lo ń ṣe? Ṣe awọn alabara rẹ ko le tun sopọ bi? Wọ́n máa ń sọ pé: “Rárá o, a ò gbọ́dọ̀ ya àwọn ìpàdé náà.” Ni kukuru, ọrọ isọkusọ ni eyi. Ẹgbẹ onibara nilo lati ṣe akiyesi. Paapaa, bi MO ṣe sọ, pẹlu awọn akoko gigun bi awọn oju opo wẹẹbu, o le fọ ati, ti olumulo ko ṣe akiyesi, o nilo lati ni anfani lati tun fi iru awọn igba sori ẹrọ. Ati lẹhinna ohun gbogbo jẹ pipe.

Oro

Lootọ, nibi Emi yoo kan sọ itan taara fun ọ. Lẹẹkansi lati igbesi aye gidi. Awọn sickest ohun ti mo ti sọ lailai gbọ nipa oro.

Awọn orisun ninu ọran yii, Mo tumọ si, diẹ ninu awọn ibeere, awọn opin ti o le fi sori awọn adarọ-ese ninu awọn iṣupọ Kubernetes rẹ. Ohun ti o dun julọ ti Mo gbọ lati ọdọ olupilẹṣẹ kan… Ọkan ninu awọn olupilẹṣẹ ẹlẹgbẹ mi ni ibi iṣẹ iṣaaju kan sọ lẹẹkan: “Ohun elo mi kii yoo bẹrẹ ninu iṣupọ.” Mo wo lati rii pe ko bẹrẹ, ṣugbọn boya ko baamu si awọn orisun, tabi wọn ti ṣeto awọn opin kekere pupọ. Ni kukuru, ohun elo ko le bẹrẹ nitori awọn orisun. Mo sọ pe: “Kii yoo bẹrẹ nitori awọn orisun, o pinnu iye ti o nilo ati ṣeto iye to pe.” O sọ pe: “Iru awọn orisun wo?” Mo bẹrẹ si ṣalaye fun u pe Kubernetes, awọn opin lori awọn ibeere ati blah, blah, blah nilo lati ṣeto. Ọkunrin naa tẹtisi fun iṣẹju marun, o tẹriba o si sọ pe: “Mo wa nibi lati ṣiṣẹ bi oluṣe idagbasoke, Emi ko fẹ lati mọ ohunkohun nipa eyikeyi awọn orisun. Mo wa nibi lati kọ koodu ati pe iyẹn ni. ” O jẹ ibanujẹ. Eyi jẹ imọran ti o ni ibanujẹ pupọ lati oju wiwo ti olupilẹṣẹ. Paapa ni agbaye ode oni, bẹ si sọrọ, ti awọn devops ti ilọsiwaju.

Kini idi ti awọn orisun nilo ni gbogbo? Awọn oriṣi awọn orisun meji lo wa ni Kubernetes. Diẹ ninu awọn ni a npe ni ibeere, awọn miran ni a npe ni opin. Nipa awọn orisun a yoo loye pe awọn ihamọ ipilẹ meji nigbagbogbo wa nigbagbogbo. Iyẹn ni, awọn opin akoko Sipiyu ati awọn opin Ramu fun eiyan ti n ṣiṣẹ ni Kubernetes.

Idiwọn kan gbe opin oke si bi a ṣe le lo orisun kan ninu ohun elo rẹ. Iyẹn ni, ni ibamu, ti o ba sọ 1GB ti Ramu ni awọn opin, lẹhinna ohun elo rẹ kii yoo ni anfani lati lo diẹ sii ju 1GB ti Ramu. Ati pe ti o ba fẹ lojiji ti o si gbiyanju lati ṣe eyi, lẹhinna ilana kan ti a npe ni oom killer, kuro ni iranti, iyẹn, yoo wa pa ohun elo rẹ - iyẹn ni, yoo kan tun bẹrẹ. Awọn ohun elo kii yoo tun bẹrẹ da lori Sipiyu. Ni awọn ofin ti Sipiyu, ti ohun elo ba gbiyanju lati lo pupọ, diẹ sii ju pato ninu awọn opin, Sipiyu yoo rọrun ni yiyan. Eyi ko ja si tun bẹrẹ. Eyi ni opin - eyi ni opin oke.

Ati pe ibeere kan wa. Ibeere kan ni bawo ni Kubernetes ṣe loye bii awọn apa inu iṣupọ Kubernetes rẹ ti kun pẹlu awọn ohun elo. Iyẹn ni, ibeere kan jẹ iru ifaramo ti ohun elo rẹ. O sọ ohun ti Mo fẹ lati lo: “Emi yoo fẹ ki o ni ipamọ Sipiyu pupọ ati iranti pupọ fun mi.” Iru apere ti o rọrun. Kini ti a ba ni ipade ti o ni, Emi ko mọ, 8 CPUs lapapọ. Ati pe adarọ-ese kan de sibẹ, ti awọn ibeere rẹ sọ 1 Sipiyu, eyiti o tumọ si ipade ni awọn CPU 7 ti o ku. Iyẹn ni, ni ibamu, ni kete ti awọn adarọ-ese 8 ti de oju ipade yii, ọkọọkan wọn ni 1 Sipiyu ninu awọn ibeere wọn, ipade naa, bi ẹnipe lati oju-ọna ti Kubernetes, ti pari ni Sipiyu ati awọn podu diẹ sii pẹlu awọn ibeere ko le jẹ. se igbekale lori yi ipade. Ti gbogbo awọn apa ba pari ni Sipiyu, lẹhinna Kubernetes yoo bẹrẹ sisọ pe ko si awọn apa ti o dara ninu iṣupọ lati ṣiṣẹ awọn adarọ-ese rẹ nitori Sipiyu ti pari.

Kini idi ti awọn ibeere nilo ati idi laisi awọn ibeere, Mo ro pe ko si iwulo lati ṣe ifilọlẹ ohunkohun ni Kubernetes? Jẹ ká fojuinu a hypothetical ipo. O ṣe ifilọlẹ ohun elo rẹ laisi awọn ibeere, Kubernetes ko mọ iye ohun ti o ni, awọn apa wo ni o le Titari si. Ó ɖi, ɔ̀nyà-kã̀ kpókpó kàkó nyáa lɔ káà si ńǹtá-òŋu. Ni aaye kan, iwọ yoo bẹrẹ gbigba ijabọ si ohun elo rẹ. Ati ọkan ninu awọn ohun elo lojiji bẹrẹ lati lo awọn orisun to awọn opin ti o ni ni ibamu si awọn opin. O wa ni pe ohun elo miiran wa nitosi ati pe o tun nilo awọn orisun. Awọn ipade kosi bẹrẹ lati ara ṣiṣe awọn ohun elo, fun apẹẹrẹ, OP. Awọn ipade kosi bẹrẹ lati ara ṣiṣe awọn jade ti oro, Fun apẹẹrẹ, ID wiwọle iranti (Ramu). Nigbati ipade kan ba jade ni agbara, akọkọ gbogbo docker yoo da idahun duro, lẹhinna cubelet, lẹhinna OS. Wọn yoo kan daku ati pe GBOGBO yoo da iṣẹ duro fun ọ dajudaju. Iyẹn ni, eyi yoo ja si ipade rẹ di di ati pe iwọ yoo nilo lati tun bẹrẹ. Ni kukuru, ipo naa ko dara pupọ.

Ati pe nigba ti o ba ni awọn ibeere, awọn opin ko yatọ pupọ, o kere ju kii ṣe ọpọlọpọ igba diẹ sii ju awọn opin tabi awọn ibeere lọ, lẹhinna o le ni iru deede, kikun awọn ohun elo ti o ni imọran kọja awọn apa ti awọn iṣupọ Kubernetes. Ni akoko kanna, Kubernetes jẹ isunmọ mọ iye ti ohun ti o fi si ibi, melo ni ohun ti a lo nibiti. Iyẹn ni, o kan iru akoko kan. O ṣe pataki lati ni oye rẹ. Ati pe o ṣe pataki lati ṣakoso pe eyi ni itọkasi.

Ibi ipamọ data

Aaye atẹle wa jẹ nipa ibi ipamọ data. Kini lati ṣe pẹlu wọn ati ni gbogbogbo, kini lati ṣe pẹlu itẹramọṣẹ ni Kubernetes?

Mo ro pe, lẹẹkansi, laarin wa Ile-iwe aṣalẹ, koko kan wa nipa ibi ipamọ data ni Kubernetes. Ati pe o dabi si mi pe Mo paapaa mọ ohun ti awọn ẹlẹgbẹ rẹ sọ fun ọ nigbati wọn beere: “Ṣe o ṣee ṣe lati ṣiṣẹ data data ni Kubernetes?” Fun idi kan, o dabi si mi pe awọn ẹlẹgbẹ rẹ yẹ ki o ti sọ fun ọ pe ti o ba n beere ibeere naa boya o ṣee ṣe lati ṣiṣẹ ibi ipamọ data ni Kubernetes, lẹhinna ko ṣee ṣe.

Awọn kannaa nibi ni o rọrun. Ni ọran, Emi yoo ṣe alaye lekan si, ti o ba jẹ eniyan ti o dara gaan ti o le kọ eto ifarada-aiṣedeede ti ibi ipamọ nẹtiwọọki pinpin, loye bi o ṣe le baamu data data sinu ọran yii, bii abinibi awọsanma ninu awọn apoti yẹ ki o ṣiṣẹ ni a database ni apapọ. O ṣeese, o ko ni ibeere nipa bi o ṣe le ṣiṣẹ. Ti o ba ni iru ibeere kan, ati pe o fẹ lati rii daju pe gbogbo rẹ ṣii ati pe o duro si ọtun si iku ni iṣelọpọ ati pe ko ṣubu, lẹhinna eyi ko ṣẹlẹ. O ti wa ni ẹri lati iyaworan ara rẹ ni ẹsẹ pẹlu yi ona. Nitorina o dara lati ma ṣe.

Kini o yẹ ki a ṣe pẹlu data ti ohun elo wa yoo fẹ lati fipamọ, diẹ ninu awọn aworan ti awọn olumulo gbejade, diẹ ninu awọn nkan ti ohun elo wa n gbejade lakoko iṣẹ rẹ, ni ibẹrẹ, fun apẹẹrẹ? Kini lati ṣe pẹlu wọn ni Kubernetes?

Ni gbogbogbo, ni pipe, bẹẹni, nitorinaa, Kubernetes jẹ apẹrẹ daradara pupọ ati pe o loyun ni gbogbogbo fun awọn ohun elo ti ko ni ipinlẹ. Iyẹn ni, fun awọn ohun elo wọnyẹn ti ko tọju alaye rara. Eleyi jẹ bojumu.

Ṣugbọn, dajudaju, aṣayan pipe ko nigbagbogbo wa. Ngba yen nko? Ojuami akọkọ ati ti o rọrun julọ ni lati mu iru S3 kan, kii ṣe ọkan ti a ṣe ni ile, eyiti o tun jẹ koyewa bi o ṣe n ṣiṣẹ, ṣugbọn lati ọdọ olupese kan. Olupese ti o dara, deede - ati kọ ohun elo rẹ lati lo S3. Iyẹn ni, nigbati olumulo rẹ ba fẹ gbe faili kan, sọ “Nibi, jọwọ, gbe si S3.” Nigbati o ba fẹ gba, sọ: “Nibi ni ọna asopọ kan si S3 pada ki o mu lati ibi.” Eleyi jẹ bojumu.

Ti o ba jẹ pe lojiji fun idi kan aṣayan ti o dara julọ ko dara, o ni ohun elo kan ti o ko kọ, o ko ni idagbasoke, tabi o jẹ iru ohun-ini ẹru, ko le lo ilana S3, ṣugbọn o gbọdọ ṣiṣẹ pẹlu awọn ilana agbegbe ni awọn folda agbegbe. Mu nkan diẹ sii tabi kere si rọrun, gbe Kubernetes ṣiṣẹ. Iyẹn ni, lẹsẹkẹsẹ adaṣe Ceph fun diẹ ninu awọn iṣẹ ṣiṣe to kere, o dabi si mi, jẹ imọran buburu. Nitori Ceph, dajudaju, dara ati asiko. Ṣugbọn ti o ko ba loye gaan ohun ti o n ṣe, lẹhinna ni kete ti o ba fi nkan kan sori Ceph, o le ni irọrun pupọ ati nirọrun ko gba jade kuro nibẹ lẹẹkansi. Nitori, bi o ṣe mọ, Ceph tọju data ni iṣupọ rẹ ni fọọmu alakomeji, kii ṣe ni irisi awọn faili ti o rọrun. Nitorinaa, ti iṣupọ Ceph lojiji ba ya lulẹ, lẹhinna iṣeeṣe pipe ati giga wa pe iwọ kii yoo gba data rẹ lati ibẹ lẹẹkansi.

A yoo ni papa lori Ceph, o le mọ ararẹ pẹlu eto naa ki o fi ohun elo kan silẹ.

Nitorinaa, o dara lati ṣe nkan ti o rọrun bi olupin NFS kan. Kubernetes le ṣiṣẹ pẹlu wọn, o le gbe liana kan labẹ olupin NFS - ohun elo rẹ jẹ bii itọsọna agbegbe kan. Ni akoko kanna, nipa ti ara, o nilo lati ni oye pe, lẹẹkansi, o nilo lati ṣe nkan pẹlu NFS rẹ, o nilo lati ni oye pe nigbami o le di aiṣedeede ati ki o ronu ibeere ti ohun ti iwọ yoo ṣe ninu ọran yii. Boya o yẹ ki o ṣe afẹyinti ni ibikan lori ẹrọ ọtọtọ.

Ojuami ti o tẹle ti Mo ti sọrọ nipa ni kini lati ṣe ti ohun elo rẹ ba ṣẹda awọn faili diẹ lakoko iṣẹ. Fun apẹẹrẹ, nigbati o ba bẹrẹ, o ṣe agbekalẹ diẹ ninu awọn faili aimi, eyiti o da lori alaye diẹ ti ohun elo gba nikan ni akoko ifilọlẹ. Kini akoko kan. Ti ko ba si iru data pupọ, lẹhinna o ko ni lati ṣe wahala rara, kan fi ohun elo yii sori ẹrọ funrararẹ ati ṣiṣẹ. Ibeere nikan nibi ni kini, wo. Nigbagbogbo, gbogbo iru awọn ọna ṣiṣe pataki, gẹgẹbi Wodupiresi ati bẹbẹ lọ, ni pataki pẹlu iyipada diẹ ninu iru awọn afikun onilàkaye, awọn olupilẹṣẹ PHP ọlọgbọn, wọn nigbagbogbo mọ bi wọn ṣe le ṣe ki wọn ṣe agbekalẹ iru faili kan fun ara wọn. Nitorinaa, ọkan n ṣe agbekalẹ faili kan, ekeji ṣe ipilẹṣẹ faili keji. Wọn yatọ. Iwontunwonsi ṣẹlẹ ninu iṣupọ Kubernetes awọn alabara lasan nipasẹ aye. Gẹgẹ bẹ, o wa ni pe wọn ko mọ bi a ṣe le ṣiṣẹ pọ ni apẹẹrẹ. Ọkan fun alaye kan, ekeji fun olumulo ni alaye miiran. Eyi ni ohun ti o yẹ ki o yago fun. Iyẹn ni, ni Kubernetes, ohun gbogbo ti o ṣe ifilọlẹ jẹ iṣeduro lati ni anfani lati ṣiṣẹ ni awọn igba pupọ. Nitori Kubernetes jẹ ohun gbigbe. Nitorinaa, o le gbe ohunkohun, nigbakugba ti o ba fẹ, laisi beere lọwọ ẹnikẹni rara. Nitorina, o nilo lati gbẹkẹle eyi. Ohun gbogbo ti a ṣe ifilọlẹ ni apẹẹrẹ kan yoo kuna laipẹ tabi ya. Awọn ifiṣura diẹ sii ti o ni, dara julọ. Ṣugbọn lẹẹkansi, Mo sọ pe, ti o ba ni iru awọn faili diẹ, lẹhinna o le fi wọn si labẹ rẹ, wọn ṣe iwọn kekere kan. Ti wọn ba wa diẹ sii diẹ sii, o ṣee ṣe ko yẹ ki o Titari wọn sinu apo eiyan naa.

Emi yoo ni imọran pe iru ohun iyanu kan wa ni Kubernetes, o le lo iwọn didun. Ni pato, iwọn didun ti iru dir sofo wa. Iyẹn ni, o kan pe Kubernetes yoo ṣẹda itọsọna laifọwọyi ninu awọn ilana iṣẹ rẹ lori olupin nibiti o ti bẹrẹ. On o si fi fun ọ ki o le lo. Ojuami pataki kan wa. Iyẹn ni, data rẹ kii yoo wa ni ipamọ sinu apo eiyan, ṣugbọn kuku lori agbalejo eyiti o nṣiṣẹ. Pẹlupẹlu, Kubernetes le ṣakoso iru awọn dirs ofo labẹ iṣeto deede ati pe o ni anfani lati ṣakoso iwọn wọn ti o pọju ati pe ko gba laaye lati kọja. Ojuami nikan ni pe ohun ti o ti kọ sinu dir sofo ko padanu lakoko awọn atunbere adarọ-ese. Iyẹn ni, ti adarọ-ese rẹ ba ṣubu nipasẹ aṣiṣe ti o tun dide, alaye ti o wa ninu dir ofo kii yoo lọ nibikibi. O le tun lo ni ibẹrẹ tuntun - ati pe o dara. Ti adarọ ese rẹ ba lọ si ibikan, lẹhinna nipa ti ara yoo lọ laisi data. Iyẹn ni, ni kete ti podu lati ipade nibiti o ti ṣe ifilọlẹ pẹlu dir ofo ti sọnu, dir ofo ti paarẹ.

Kini ohun miiran ti o dara nipa ṣofo dir? Fun apẹẹrẹ, o le ṣee lo bi kaṣe kan. Jẹ ki a fojuinu pe ohun elo wa n ṣe agbejade ohunkan lori fo, fun awọn olumulo, ati ṣe fun igba pipẹ. Nitorinaa, ohun elo naa, fun apẹẹrẹ, ṣe ipilẹṣẹ ati fun awọn olumulo, ati ni akoko kanna tọju rẹ ni ibikan, nitorinaa nigbamii ti olumulo ba wa fun ohun kanna, yoo yarayara lati fun ni ipilẹṣẹ lẹsẹkẹsẹ. Dir sofo le beere fun Kubernetes lati ṣẹda ni iranti. Ati bayi, awọn caches rẹ le ṣiṣẹ ni gbogbogbo ni iyara monomono - ni awọn ofin ti iyara wiwọle disk. Iyẹn ni, o ni dir sofo ninu iranti, ninu OS o ti wa ni ipamọ ni iranti, ṣugbọn fun ọ, fun olumulo inu apo, o dabi pe o kan ilana agbegbe kan. O ko nilo ohun elo naa lati kọ ẹkọ idan ni pataki. O kan ya taara ki o fi faili rẹ sinu itọsọna kan, ṣugbọn, ni otitọ, ni iranti lori OS. Eyi tun jẹ ẹya irọrun pupọ ni awọn ofin ti Kubernetes.

Awọn iṣoro wo ni Minio ni? Iṣoro akọkọ pẹlu Minio ni pe ki nkan yii le ṣiṣẹ, o nilo lati nṣiṣẹ ni ibikan, ati pe iru eto faili gbọdọ wa, iyẹn ni, ibi ipamọ. Ati pe nibi a pade awọn iṣoro kanna ti Ceph ni. Iyẹn ni, Minio gbọdọ tọju awọn faili rẹ si ibikan. O rọrun ni wiwo HTTP si awọn faili rẹ. Pẹlupẹlu, iṣẹ ṣiṣe jẹ kedere talaka ju ti Amazon's S3. Ni iṣaaju, ko ni anfani lati fun olumulo laṣẹ daradara. Bayi, niwọn bi mo ti mọ, o le ṣẹda awọn buckets tẹlẹ pẹlu awọn iwe-aṣẹ oriṣiriṣi, ṣugbọn lẹẹkansi, o dabi si mi pe iṣoro akọkọ ni, bẹ si sọrọ, eto ipamọ ipilẹ ni o kere ju.

Bawo ni ṣofo dir ni iranti ni ipa awọn ifilelẹ? Ko ni ipa awọn ifilelẹ lọ ni eyikeyi ọna. O wa ni iranti ti agbalejo, kii ṣe ni iranti ti eiyan rẹ. Iyẹn ni, eiyan rẹ ko rii dir sofo ni iranti gẹgẹbi apakan ti iranti ti tẹdo. Olugbalejo wo eyi. Ni ibamu, bẹẹni, lati oju wiwo ti kubernetes, nigbati o ba bẹrẹ lilo eyi, yoo dara lati ni oye pe o n ṣe apakan ti iranti rẹ si dir ofo. Ati ni ibamu, loye pe iranti le ṣiṣe jade kii ṣe nitori awọn ohun elo nikan, ṣugbọn nitori pe ẹnikan kọwe si awọn dirs ofo wọnyi.

Awọsanma

Ati koko-ọrọ ikẹhin ni kini Cloudnative jẹ. Kini idi ti o nilo? Awọsanma ati bẹbẹ lọ.

Iyẹn ni, awọn ohun elo wọnyẹn ti o lagbara ati kikọ lati le ṣiṣẹ ni awọn amayederun awọsanma igbalode. Ṣugbọn, ni otitọ, Cloudnative ni iru abala miiran. Wipe eyi kii ṣe ohun elo nikan ti o ṣe akiyesi gbogbo awọn ibeere ti awọn amayederun awọsanma igbalode, ṣugbọn tun mọ bi o ṣe le ṣiṣẹ pẹlu awọn amayederun awọsanma igbalode, lo anfani ati awọn alailanfani ti otitọ pe o ṣiṣẹ ninu awọn awọsanma wọnyi. Ma ṣe lọ si inu omi nikan ki o ṣiṣẹ ninu awọn awọsanma, ṣugbọn lo anfani ti awọn anfani ti ṣiṣẹ ninu awọsanma.

Awọn ibeere fun idagbasoke ohun elo ni Kubernetes

Jẹ ki a kan mu Kubernetes gẹgẹbi apẹẹrẹ. Ohun elo rẹ nṣiṣẹ ni Kubernetes. Ohun elo rẹ le nigbagbogbo, tabi dipo awọn admins fun ohun elo rẹ, le ṣẹda akọọlẹ iṣẹ nigbagbogbo. Iyẹn ni, akọọlẹ kan fun aṣẹ ni Kubernetes funrararẹ ninu olupin rẹ. Ṣafikun awọn ẹtọ ti a nilo nibẹ. Ati pe o le wọle si Kubernetes lati inu ohun elo rẹ. Kini o le ṣe ni ọna yii? Fun apẹẹrẹ, lati inu ohun elo naa, gba data nipa ibiti awọn ohun elo miiran wa, awọn apẹẹrẹ miiran ti o jọra, ati papọ bakan iṣupọ lori oke Kubernetes, ti o ba nilo iru bẹ.

Lẹẹkansi, a gangan ni ọran kan laipẹ. A ni ọkan oludari ti o bojuto awọn ti isinyi. Ati nigbati diẹ ninu awọn iṣẹ-ṣiṣe titun han ni isinyi yii, o lọ si Kubernetes - ati inu Kubernetes o ṣẹda podu tuntun kan. Yoo fun podu yii diẹ ninu awọn iṣẹ-ṣiṣe tuntun ati laarin ilana ti adarọ ese yii, adarọ ese naa ṣe iṣẹ naa, firanṣẹ esi si oludari funrararẹ, ati oludari lẹhinna ṣe nkan pẹlu alaye yii. Fun apẹẹrẹ, o ṣe afikun data data kan. Iyẹn ni, lẹẹkansi, eyi jẹ afikun ti otitọ pe ohun elo wa nṣiṣẹ ni Kubernetes. A le lo iṣẹ ṣiṣe Kubernetes ti a ṣe sinu funrararẹ lati le faagun bakan ati jẹ ki iṣẹ ṣiṣe ohun elo wa rọrun diẹ sii. Iyẹn ni, maṣe tọju iru idan kan nipa bi o ṣe le ṣe ifilọlẹ ohun elo kan, bii o ṣe le ṣe ifilọlẹ oṣiṣẹ kan. Ni Kubernetes, o kan firanṣẹ ibeere kan ninu app ti ohun elo naa ba kọ si Python.

Kanna kan ti a ba lọ kọja Kubernetes. A ni awọn Kubernetes wa nṣiṣẹ ni ibikan - o dara ti o ba wa ni iru awọsanma kan. Lẹẹkansi, a le lo, ati paapaa yẹ, Mo gbagbọ, lo awọn agbara ti awọsanma funrararẹ nibiti a nṣiṣẹ. Lati awọn nkan alakọbẹrẹ ti awọsanma n pese wa. Iwontunwonsi, iyẹn ni, a le ṣẹda awọn iwọntunwọnsi awọsanma ati lo wọn. Eyi jẹ anfani taara ti ohun ti a le lo. Nitori iwọntunwọnsi awọsanma, ni akọkọ, lasan ni aṣiwere yọ ojuse lati ọdọ wa fun bii o ṣe n ṣiṣẹ, bawo ni a ṣe tunto. Pẹlupẹlu o rọrun pupọ, nitori Kubernetes deede le ṣepọ pẹlu awọn awọsanma.

Kanna n lọ fun igbelosoke. Kubernetes deede le ṣepọ pẹlu awọn olupese awọsanma. Mọ bi o ṣe le loye pe ti iṣupọ ba jade kuro ninu awọn apa, iyẹn ni, aaye ipade ti pari, lẹhinna o nilo lati ṣafikun - Kubernetes funrararẹ yoo ṣafikun awọn apa tuntun si iṣupọ rẹ ki o bẹrẹ ifilọlẹ awọn pods lori wọn. Iyẹn ni, nigbati ẹru rẹ ba de, nọmba ti hearths bẹrẹ lati pọ si. Nigbati awọn apa inu iṣupọ ba jade fun awọn adarọ-ese wọnyi, Kubernetes ṣe ifilọlẹ awọn apa tuntun ati, ni ibamu, nọmba awọn adarọ-ese le tun pọ si. Ati pe o rọrun pupọ. Eyi jẹ aye taara lati ṣe iwọn iṣupọ lori fo. Ko yara pupọ, ni ori pe kii ṣe iṣẹju-aaya, o jẹ diẹ sii bi iṣẹju kan lati le ṣafikun awọn apa tuntun.

Ṣugbọn lati iriri mi, lẹẹkansi, o jẹ ohun tutu julọ ti Mo ti rii tẹlẹ. Nigbati iṣupọ Cloudnative ṣe iwọn da lori akoko ti ọjọ. O je kan backend iṣẹ ti a ti lo nipa awon eniyan ni pada ọfiisi. Iyẹn ni, wọn wa lati ṣiṣẹ ni 9 owurọ, bẹrẹ wọle sinu eto naa, ati ni ibamu, iṣupọ Cloudnative, nibiti gbogbo rẹ ti n ṣiṣẹ, bẹrẹ lati wú, ti n gbe awọn podu tuntun silẹ ki gbogbo eniyan ti o wa si iṣẹ le ṣiṣẹ pẹlu ohun elo naa. Nigbati wọn ba lọ kuro ni iṣẹ ni 8 irọlẹ tabi 6 irọlẹ, awọn iṣupọ Kubernetes ṣe akiyesi pe ko si ẹnikan ti o nlo ohun elo naa mọ ati bẹrẹ lati dinku. Awọn ifowopamọ ti o to 30 ogorun jẹ iṣeduro. O ṣiṣẹ ni Amazon ni akoko yẹn; ni akoko yẹn ko si ẹnikan ni Russia ti o le ṣe daradara bẹ.

Emi yoo sọ fun ọ ni taara, awọn ifowopamọ jẹ 30 ogorun nìkan nitori a lo Kubernetes ati lo anfani ti awọn agbara ti awọsanma. Bayi eyi le ṣee ṣe ni Russia. Emi kii yoo ṣe ipolowo si ẹnikẹni, dajudaju, ṣugbọn jẹ ki a sọ pe awọn olupese wa ti o le ṣe eyi, pese taara lati inu apoti pẹlu bọtini kan.

Ojuami ikẹhin kan wa ti Emi yoo tun fẹ lati fa akiyesi rẹ si. Ni ibere fun ohun elo rẹ, awọn amayederun rẹ lati jẹ Cloudnative, o jẹ oye lati nikẹhin bẹrẹ imudọgba ọna ti a npe ni Amayederun bi koodu. ohun elo, ọgbọn iṣowo rẹ ni irisi koodu. Ki o si ṣiṣẹ pẹlu rẹ bi koodu, iyẹn ni, idanwo rẹ, yi jade, tọju rẹ ni git, lo CICD si.

Ati pe eyi ni deede ohun ti o fun ọ laaye, ni akọkọ, lati ni iṣakoso nigbagbogbo lori awọn amayederun rẹ, lati loye nigbagbogbo kini ipo ti o wa. Ni ẹẹkeji, yago fun awọn iṣẹ afọwọṣe ti o fa awọn aṣiṣe. Kẹta, yago fun ohun ti a pe ni iyipada, nigbati o nilo nigbagbogbo lati ṣe awọn iṣẹ afọwọṣe kanna. Ni ẹẹrin, o fun ọ laaye lati bọsipọ ni iyara pupọ ni iṣẹlẹ ti ikuna. Ni Russia, ni gbogbo igba ti Mo sọrọ nipa eyi, nigbagbogbo nọmba nla ti eniyan wa ti o sọ pe: “Bẹẹni, o han gbangba, ṣugbọn o ni awọn isunmọ, ni kukuru, ko si iwulo lati ṣatunṣe ohunkohun.” Sugbon otito ni. Ti nkan kan ba bajẹ ninu awọn amayederun rẹ, lẹhinna lati oju wiwo ti ọna Cloudnative ati lati oju-ọna ti Awọn amayederun bi koodu kan, dipo ki o ṣe atunṣe rẹ, lilọ si olupin naa, ṣawari ohun ti o fọ ati atunṣe, o rọrun. lati pa olupin naa rẹ ki o tun ṣẹda rẹ lẹẹkansi. Emi o si mu gbogbo eyi pada.

Gbogbo awọn wọnyi oran ti wa ni sísọ ni diẹ apejuwe awọn ni Kubernetes fidio courses: Junior, Ipilẹ, Mega. Nipa titẹle ọna asopọ o le mọ ararẹ pẹlu eto ati awọn ipo. Ohun ti o rọrun ni pe o le ṣakoso Kubernetes nipa kikọ ẹkọ lati ile tabi ṣiṣẹ fun awọn wakati 1-2 ni ọjọ kan.

orisun: www.habr.com

Fi ọrọìwòye kun