Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Talaabada ugu horeysa ee lagu geynayo Kubernetes waa ku ridista codsigaaga weel. Taxanahan, waxaan ku eegi doonaa sida aad u abuuri karto sawir yar oo ammaan ah.
Thanks to Docker, abuurista sawirada weelka weligood may fududayn. Sheeg sawirka salka, ku dar isbedeladaada, oo samee weel.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Inkasta oo farsamadani ay ku fiican tahay bilawga, isticmaalka sawirada asaasiga ah waxay u horseedi kartaa shaqo aan ammaan ahayn oo leh sawirro waaweyn oo ay ka buuxaan baylahda.

Intaa waxaa dheer, inta badan sawirada Docker waxay u isticmaalaan Debian ama Ubuntu sawirka saldhigga, iyo in kasta oo tani ay bixiso iswaafajin aad u fiican iyo habeyn sahlan (faylka Docker wuxuu qaataa laba xariiq oo kood ah), sawirada salka waxay ku dari karaan boqollaal megabyte oo dheeri ah weelkaaga. Tusaale ahaan, faylka node.js fudud ee codsiga Go "hello-world" waa ilaa 700 megabyte, halka codsigaaga dhabta ahi uu cabbirkiisu yahay dhawr megabyte.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Markaa dhammaan culayskan dheeraadka ah ee shaqada ayaa ah qashin-saarka booska dhijitaalka ah iyo meel weyn oo lagu qarin karo dayacanka amniga iyo dhiqlaha. Haddaba bal aynu eegno laba siyaabood oo loo dhimi karo cabbirka sawirka weelka.

Midka koowaad waa isticmaalka sawirada hoose ee yaryar, tan labaadna waa isticmaalka Habka Dhismaha. Isticmaalka sawirada hoose ee yaryar waxay u badan tahay inay tahay habka ugu fudud ee lagu dhimi karo cabbirka weelkaaga. Waxay u badan tahay, luqadda ama xirmada aad isticmaalayso waxay ku siinaysaa muuqaal codsi oo asal ah oo aad uga yar sawirka caadiga ah. Aan eegno weelka nooda.js.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Sida caadiga ah ee Docker, noodhka: 8 cabbirka sawirka salka waa 670 MB, iyo noodhka: cabbirka sawirka 8-alpine waa 65 MB oo keliya, taas oo ah, 10 jeer ka yar. Adigoo isticmaalaya sawirka hoose ee Alpine, waxaad si weyn u dhimi doontaa cabbirka weelkaaga. Alpine waa qaybinta Linux yar oo fudud taas oo aad caan uga ah isticmaalayaasha Docker sababtoo ah waxay la jaan qaadayaan codsiyo badan iyadoo la ilaalinayo weelasha yaryar. Si ka duwan sawirka caadiga ah ee Docker "node", "node: alpine" wuxuu meesha ka saaraa faylal iyo barnaamijyo badan oo adeegyo ah, oo ka tagaya kaliya kuwa ku filan socodsiinta codsigaaga.

Si aad ugu guurto sawir sal yar, si fudud u cusboonaysii Dockerfile si aad u bilowdo la shaqaynta sawirka saldhiga cusub:

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Hadda, si ka duwan sawirkii hore ee dhisme, waxaad u baahan tahay inaad koobiyayso koodkaaga weelka oo aad ku xidho wixii ku tiirsanaan ah. Dockerfile cusub, weelku wuxuu ku bilaabmaa node: image alpine, ka dibna wuxuu abuuraa tusaha koodka, wuxuu rakibaa ku-tiirsanaanta isagoo isticmaalaya maareeyaha xirmada NPM, oo ugu dambeyntii maamula server.js.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Casriyeyntani waxay keenaysaa weel 10 jeer ka yar cabbir ahaan. Haddii luqaddaada barnaamij-samaynta ama xidhmadaagu aanay lahayn wax-u-dhimista sawirka aasaasiga ah, isticmaal Alpine Linux. Waxa kale oo ay siin doontaa awoodda si buuxda loogu maareeyo waxa ku jira weelka. Isticmaalka sawirada hoose ee yaryar waa hab fiican oo aad si dhakhso ah u abuurto weel yaryar. Laakin xitaa dhimis weyn ayaa lagu gaari karaa iyadoo la isticmaalayo Habka Dhismaha.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Luuqadaha la tarjumo, koodhka isha ayaa marka hore loo gudbiyaa turjumaanka ka dibna si toos ah ayaa loo fuliyay. Luuqadaha la soo ururiyey, koodhka isha ayaa marka hore loo beddelaa kood la soo ururiyey. Si kastaba ha ahaatee, ururinta inta badan waxay isticmaashaa qalab aan dhab ahaantii loo baahnayn si loo socodsiiyo koodka. Tani waxay ka dhigan tahay inaad gabi ahaanba ka saari karto qalabkan weelka ugu dambeeya. Waxaad u isticmaali kartaa Habka Dhismaha.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Koodhka waxa lagu abuuray weelka ugu horreeya oo la ururiyey. Koodhka la soo ururiyey ayaa markaa lagu shubaa weelka kama dambaysta ah iyada oo aanay jirin isku-dubaridyada iyo qalabka loo baahan yahay si loo ururiyo koodkaas. Aynu wadno codsiga Go iyada oo loo marayo habkan. Marka hore, waxaan ka guuri doonaa sawirka kor ku xusan una guuri doona Alpine Linux.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Dockerfile-ka cusub, weelku wuxuu ku bilaabmaa golang: sawirka alpine. Kadib waxay u abuurtaa tusaha koodka, ku koobiyeeyaa koodka isha, waxay dhistaa koodka isha, oo ay socodsiiso codsiga. Weelkan aad ayuu uga yar yahay weelka la dhisayo, laakiin waxa uu weli ka kooban yahay qalab-sameeyaha iyo agabka kale ee Go ee aynaan runtii u baahnayn. Haddaba aan soo saarno barnaamijka la soo ururiyey oo aan ku ridno weel u gaar ah.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Waxaa laga yaabaa inaad ku aragto shay la yaab leh faylkan Docker: wuxuu ka kooban yahay laba xariiq oo FROM ah. Qaybta xariiqda 4 ee ugu horreysa waxay u egtahay mid la mid ah Dockerfile hore marka laga reebo inay isticmaasho ereyga muhiimka ah ee AS si loogu magacaabo marxaladan. Qaybta xigta waxay leedahay khad cusub oo FROM ah si loo bilaabo sawir cusub, halkaas oo halkii golang: sawirka alpine aan u isticmaali doono alpine-ka ceeriin sida sawirka saldhigga.

Raw Alpine Linux ma laha wax shahaadooyin SSL ah oo la rakibay, taas oo keeni doonta inta badan wicitaanada API ee HTTPS inay ku guuldareystaan, markaa aynu rakibno qaar ka mid ah shahaadooyinka xididka CA.

Hadda waxaa timi qaybta madadaalada: si aad u nuqul ka sameysid koodhka la soo ururiyey ee weelka koowaad ilaa kan labaad, waxaad si fudud u isticmaali kartaa amarka COPY ee ku yaal safka 5 ee qaybta labaad. Waxay koobiyayn doontaa hal fayl oo codsi ah mana saameyn doonto agabka utility Go. Faylka cusub ee Docker-ka ee marxaladaha badan wuxuu ka koobnaan doonaa sawirka weelka oo cabirkiisu yahay 12 megabytes oo kaliya, marka la barbar dhigo sawirka asalka ah ee weelka oo ahaa 700 megabytes, taas oo ah farqi weyn!
Sidaa daraadeed isticmaalka sawirada hoose ee yaryar iyo qaabka wax-dhisuhu waa habab aad u fiican oo lagu abuuro weel aad u yaryar oo aan shaqo badan lahayn.
Waa suurtagal in iyadoo ku xiran xirmada codsiga, ay jiraan siyaabo dheeraad ah oo lagu dhimo sawirka iyo cabbirka weelka, laakiin weelasha yaryar ma leeyihiin faa'iido la qiyaasi karo? Aynu eegno laba meelood oo weelasha yaryar ay aad waxtar u leeyihiin - waxqabadka iyo amniga.

Si loo qiimeeyo korodhka waxqabadka, tixgeli muddada habka abuurista weel, gelista diiwaanka (riix), ka dibna ka soo saar halkaas (jiid). Waxaad arki kartaa in weel yar uu faa'iido gaar ah ka leeyahay weelka weyn.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Docker ayaa kaydin doona lakabyada si dhismooyinka xiga ay aad u degdegi doonaan. Si kastaba ha ahaatee, nidaamyo badan oo CI ah oo loo isticmaalo in lagu dhiso laguna tijaabiyo weelasha ma kaydiyaan lakabyada, sidaas darteed waxaa jira waqti kaydin oo muhiim ah. Sida aad arki karto, wakhtiga lagu dhisayo weel weyn, iyadoo ku xiran awoodda mashiinkaaga, waa 34 ilaa 54 ilbiriqsi, iyo marka la isticmaalayo weel la dhimay iyadoo la isticmaalayo Habka Dhismaha - laga bilaabo 23 ilaa 28 ilbiriqsi. Hawlgallada noocaan ah, kororka wax soo saarku wuxuu noqon doonaa 40-50%. Markaa ka fikir inta jeer ee aad dhisto oo tijaabi koodkaaga.

Ka dib marka weelka la dhiso, waxaad u baahan tahay inaad ku riixdo sawirkiisa (sawirka weelka riix) gudaha diiwaanka weelka si aad markaas ugu isticmaali karto kutladaada Kubernetes. Waxaan ku talinayaa in la isticmaalo Diiwaanka Kontaynarrada Google.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Diiwaanka Kontaynarrada Google (GCR), waxaad kaliya ku bixinaysaa kaydinta cayriin iyo isku xidhka, mana jiraan kharashyo dheeraad ah oo maaraynta weelka. Waa mid gaar ah, ammaan ah oo aad u degdeg ah. GCR waxay isticmaashaa farsamooyin badan si ay u dedejiso hawsha jiidista. Sida aad arki karto, gelista weelka sawirka Docker ee isticmaalaya go:onbuild waxay qaadan doontaa 15 ilaa 48 ilbiriqsi, iyadoo ku xidhan waxqabadka kombayuutarka Faa'iidada xawaaraha hawlgalku wuxuu kordhiyaa 14 jeer. Mashiinnada waaweyn, wakhtigu waa isku mid, maadaama GCR ay isticmaasho kayd caalami ah xogta xogta sawirada ee la wadaago, taasoo la macno ah inaadan u baahnayn inaad gabi ahaanba ku shubto. Kumbuyuutar awood yar leh, CPU-gu waa cidhiidhiga, markaa faa'iidada isticmaalka weelasha yaryar ayaa aad uga weyn halkan.

Haddii aad isticmaalayso GCR, waxaan aad ugu talinayaa inaad isticmaasho Google Container Builder (GCB) oo qayb ka ah nidaamkaaga dhismaha.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Sida aad arki karto, adeegsigeedu wuxuu kuu ogolaanayaa inaad gaarto natiijooyin aad u wanaagsan oo yareynaya muddada hawlgalka Dhis + Riix ka badan xitaa mashiinka wax soo saarka - kiiskan, habka dhismaha iyo u dirida weelasha martida loo yahay ayaa la dedejiyey ku dhawaad ​​2 jeer. . Intaa waxaa dheer, waxaad heleysaa 120 daqiiqo dhismo bilaash ah maalin kasta, taas oo daboosha baahiyahaaga dhismaha weelka xaaladaha badankood.

Marka xigta waxa yimaada mitirka waxqabadka ugu muhiimsan - xawaaraha soo saarista, ama soo dejinta, Jiid weelasha. Oo haddii aadan wax badan ka welwelin wakhtiga lagu qaato hawlgalka riixitaanka, markaa dhererka habka jiidista ayaa saameyn weyn ku leh waxqabadka nidaamka guud. Aynu nidhaahno waxaad haysataa koox ka kooban saddex nood oo mid ka mid ah uu fashilmay. Haddii aad isticmaalayso nidaamka maamulka sida Google Kubernetes Engine, waxay si toos ah u bedeli doontaa noodhka dhintay mid cusub. Si kastaba ha ahaatee, qanjidhkan cusub gabi ahaanba wuu madhnaan doonaa oo waa inaad ku jiiddaa dhammaan weelashaada si uu u bilaabo shaqada. Haddii hawlgalka jiidku uu qaato waqti ku filan, kooxdaadu waxay socon doontaa waxqabad hoose wakhtiga oo dhan.

Waxaa jira kiisas badan oo ay tani ku dhici karto: ku darida noode cusub koox, hagaajinta noodhka, ama xitaa u beddelashada weel cusub oo la geeyo. Markaa, yaraynta wakhtiga jiidista ayaa noqonaysa arrin muhiim ah. Waa wax aan la dafiri karin in weel yar uu soo dejiyo si ka dhaqso badan kan weyn. Haddii aad ku dhex wado weelal badan oo ku jira kutlada Kubernetes, kaydinta wakhtiga waxay noqon kartaa mid muhiim ah.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Bal u fiirso isbarbardhiggan: qalliinka jiidista weelasha yaryar waxay qaadataa 4-9 jeer ka yar, iyadoo ku xidhan awoodda mishiinka, marka loo eego isla hawlgalka la isticmaalayo go:onbuild. Isticmaalka la wadaago, sawirada yar yar ee salka weelka ayaa si weyn u dedejiya wakhtiga iyo xawaaraha kaas oo noodhka cusub ee Kubernetes la geyn karo oo ay ku iman karaan online.

Bal aan eegno arrinta amniga. Weelasha yaryar waxaa loo arkaa inay aad uga ammaan badan yihiin kuwa waaweyn sababtoo ah waxay leeyihiin meel weerar oo yar. Ma dhab baa? Mid ka mid ah sifooyinka ugu faa'iidada badan ee Diiwaanka Koontaynarrada Google waa awoodda aad si toos ah u baadhayso weelashaada si ay u dayacmaan. Dhawr bilood ka hor waxaan sameeyay weelal dhisme iyo kuwo badan labadaba, markaa aan aragno haddii ay jiraan wax dayacan oo halkaas ka jira.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Natiijadu waa cajiib: kaliya 3 dayacan oo dhexdhexaad ah ayaa lagu arkay weel yar, 16 halis ah iyo 376 kale oo dayacan ayaa laga helay weel weyn. Haddii aan eegno waxa ku jira weel weyn, waxaan arki karnaa in inta badan dhibaatooyinka amniga aysan wax xiriir ah ku laheyn codsigayaga, laakiin ay la xiriiraan barnaamijyada aan xitaa isticmaalin. Markaa marka dadku ka hadlaan dusha sare ee weerarka, taasi waa waxa ay ula jeedaan.

Kubernetes dhaqamada ugu fiican. Abuuritaanka weel yaryar

Qaadashadu waa caddahay: dhis weelal yaryar sababtoo ah waxay ku siinayaan waxqabadka dhabta ah iyo faa'iidooyinka amniga nidaamkaaga.

Kubernetes hababka ugu fiican. Ururka Kubernetes oo leh meel magaceed

Xayeysiisyada qaar πŸ™‚

Waad ku mahadsan tahay inaad nala joogto. Ma jeceshahay maqaalladayada? Ma doonaysaa inaad aragto wax badan oo xiiso leh? Nagu taageer adigoo dalbanaya amar ama kula talinaya asxaabta, Cloud VPS ee horumariyeyaasha laga bilaabo $ 4.99, analoog gaar ah oo ah server-yada heerka gelitaanka, kaas oo anaga aanu adiga kuu hindisay: Xaqiiqada oo dhan ee ku saabsan VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps laga bilaabo $19 ama sida loo wadaago server? (waxaa laga heli karaa RAID1 iyo RAID10, ilaa 24 cores iyo ilaa 40GB DDR4).

Dell R730xd 2x ka jaban xarunta xogta Equinix Tier IV ee Amsterdam? Kaliya halkan 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV laga bilaabo $199 Nederlaan! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - laga bilaabo $99! Wax ka akhri Sida loo dhiso infrastructure Corp. fasalka iyadoo la adeegsanayo Dell R730xd E5-2650 v4 servers oo qiimahoodu yahay 9000 euro dinaar?

Source: www.habr.com

Add a comment