{"id":82244,"date":"2020-05-20T13:42:45","date_gmt":"2020-05-20T11:42:45","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov"},"modified":"2020-05-20T13:42:45","modified_gmt":"2020-05-20T11:42:45","slug":"luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov","title":{"rendered":"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/21d8807ed791f0b9ff81494cf1a373c9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHapi i par\u00eb i vendosjes n\u00eb Kubernetes \u00ebsht\u00eb vendosja e aplikacionit tuaj n\u00eb nj\u00eb kontejner. N\u00eb k\u00ebt\u00eb seri, do t\u00eb shqyrtojm\u00eb se si mund t\u00eb krijoni nj\u00eb imazh t\u00eb nj\u00eb kontejneri t\u00eb vog\u00ebl dhe t\u00eb sigurt.<br \/>\nFal\u00eb Docker-it, krijimi i imazheve t\u00eb kontejner\u00ebve nuk ka qen\u00eb kurr\u00eb kaq i leht\u00eb. Specifikoni imazhin baz\u00eb, shtoni ndryshimet tuaja dhe krijoni kontejnerin.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/f144351cc82d46cf3f4a518c6e11faa3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMegjith\u00ebse ky qasje \u00ebsht\u00eb shum\u00eb e p\u00ebrshtatshme p\u00ebr t\u00eb filluar, p\u00ebrdorimi i imazheve baz\u00eb t\u00eb paracaktuar mund t\u00eb \u00e7oj\u00eb n\u00eb funksionim t\u00eb pasigurt me imazhe t\u00eb m\u00ebdha, plot me vulnerabilitete.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>P\u00ebr m\u00eb shum\u00eb, shumica e imazheve n\u00eb Docker p\u00ebrdorin Debian ose Ubuntu si imazhin baz\u00eb dhe, ndon\u00ebse kjo siguron nj\u00eb p\u00ebrputhshm\u00ebri t\u00eb shk\u00eblqyer dhe nj\u00eb adaptim t\u00eb leht\u00eb (skedari Docker z\u00eb vet\u00ebm dy rreshta kod), imazhet baz\u00eb mund t\u00eb shtojn\u00eb qindra megabajt ngarkes\u00eb shtes\u00eb n\u00eb kontejnerin tuaj. P\u00ebr shembull, nj\u00eb skedar i thjesht\u00eb node.js i aplikacionit Go \"hello-world\" z\u00eb rreth 700 megabajt, meq\u00eb madh\u00ebsia e vet\u00eb aplikacionit tuaj \u00ebsht\u00eb vet\u00ebm disa megabajt.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/8093421f0f0f61b9daedf8e9530bbd3e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrandaj, e gjith\u00eb kjo ngarkes\u00eb shtes\u00eb \u00ebsht\u00eb nj\u00eb shpenzim i panevojsh\u00ebm i hap\u00ebsir\u00ebs digjitale dhe nj\u00eb vend i shk\u00eblqyer p\u00ebr vulnerabilitete dhe gabime n\u00eb sistemin e siguris\u00eb. Prandaj, le t\u00eb shqyrtojm\u00eb dy m\u00ebnyra p\u00ebr t\u00eb reduktuar madh\u00ebsin\u00eb e imazhit t\u00eb kontejnerit. <\/p>\n<p>E para \u00ebsht\u00eb p\u00ebrdorimi i imazheve baz\u00eb me madh\u00ebsi t\u00eb vog\u00ebl, e dyta \u00ebsht\u00eb p\u00ebrdorimi i modelit t\u00eb dizajnit Builder Pattern. P\u00ebrdorimi i imazheve baz\u00eb m\u00eb t\u00eb vogla \u00ebsht\u00eb ndoshta m\u00ebnyra m\u00eb e thjesht\u00eb p\u00ebr t\u00eb reduktuar madh\u00ebsin\u00eb e kontejnerit tuaj. Me siguri, gjuha ose steka q\u00eb po p\u00ebrdorni siguron nj\u00eb imazh t\u00eb aplikacionit origjinal shum\u00eb m\u00eb t\u00eb vog\u00ebl se imazhi i paracaktuar. Le t\u00eb shohim kontejnerin ton\u00eb node.js. <\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/df3f744a565465b56adcec6a1c32e501.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMe zakon, madh\u00ebsia e imazhit baz\u00eb node:8 n\u00eb Docker \u00ebsht\u00eb 670 MB, nd\u00ebrsa madh\u00ebsia e node:8-alpine \u00ebsht\u00eb vet\u00ebm 65 MB, dometh\u00ebn\u00eb 10 her\u00eb m\u00eb e vog\u00ebl. Duke p\u00ebrdorur nj\u00eb imazh m\u00eb t\u00eb vog\u00ebl baz\u00eb Alpine, do t\u00eb reduktoni n\u00eb m\u00ebnyr\u00eb t\u00eb ndjeshme madh\u00ebsin\u00eb e kontejnerit tuaj. Alpine \u00ebsht\u00eb nj\u00eb shp\u00ebrndarje e vog\u00ebl dhe e leht\u00eb e Linux-it q\u00eb \u00ebsht\u00eb shum\u00eb e njohur midis p\u00ebrdoruesve t\u00eb Docker-it, sepse \u00ebsht\u00eb e p\u00ebrputhshme me shum\u00eb aplikacione, duke ruajtur gjithashtu madh\u00ebsin\u00eb e vog\u00ebl t\u00eb kontejner\u00ebve. Ndryshe nga imazhi standard Docker 'node', 'node:alpine' fshin shum\u00eb skedar\u00eb dhe programe ndihm\u00ebse, duke l\u00ebn\u00eb vet\u00ebm ata q\u00eb jan\u00eb t\u00eb nevojsh\u00ebm p\u00ebr t\u00eb ekzekutuar aplikacionin tuaj.<\/p>\n<p>P\u00ebr t\u00eb kaluar n\u00eb nj\u00eb imazh baz\u00eb m\u00eb t\u00eb vog\u00ebl, thjesht azhurnoni skedarin Docker p\u00ebr t\u00eb filluar p\u00ebrdorimin e imazhit t\u00eb ri baz\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/55a3b8e403bd34896018f92a81a3f251.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTani, ndryshe nga imazhi i vjet\u00ebr onbuild, duhet t\u00eb kopjoni kodin tuaj n\u00eb kontejner dhe t\u00eb instaloni \u00e7do var\u00ebsi. N\u00eb skedarin e ri Docker, kontejneri fillon me imazhin node:alpine, pastaj krijon nj\u00eb katalog p\u00ebr kodin, instalon var\u00ebsit\u00eb me menaxherin e paketave NPM dhe, p\u00ebrfundimisht, fillon server.js.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/b41c36994fc18dc34fb970a38bc50c9a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMe k\u00ebt\u00eb p\u00ebrdit\u00ebsim, rezulton nj\u00eb kontejner q\u00eb \u00ebsht\u00eb 10 her\u00eb m\u00eb i vog\u00ebl. N\u00ebse gjuha juaj e programimit ose steka nuk ka nj\u00eb funksion p\u00ebr t\u00eb zvog\u00ebluar imazhin baz\u00eb, p\u00ebrdorni Alpine Linux. Ai gjithashtu do t\u00eb ofroj\u00eb mund\u00ebsin\u00eb p\u00ebr t\u00eb menaxhuar plot\u00ebsisht p\u00ebrmbajtjen e kontejnerit. P\u00ebrdorimi i imazheve baz\u00eb me madh\u00ebsi t\u00eb vog\u00ebl \u00ebsht\u00eb nj\u00eb m\u00ebnyr\u00eb e shk\u00eblqyer p\u00ebr t\u00eb nd\u00ebrtuar shpejt kontejner\u00eb t\u00eb vegj\u00ebl. Por mund t\u00eb arrihet edhe m\u00eb shum\u00eb zvog\u00eblim duke p\u00ebrdorur Builder Pattern.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/c9549f5879058d9734c174e8571b9069.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb gjuh\u00ebt interpretuese, kodi burimor fillimisht kalon n\u00ebp\u00ebr interpretor dhe pastaj ekzekutohet direkt. N\u00eb gjuh\u00ebt e kompiluara, kodi burimor fillimisht kthehet n\u00eb kod t\u00eb kompiluara. Gjat\u00eb k\u00ebsaj kohe, kompilimi shpesh p\u00ebrdor mjete q\u00eb n\u00eb t\u00eb v\u00ebrtet\u00eb nuk jan\u00eb t\u00eb nevojshme p\u00ebr t\u00eb ekzekutuar kodin. Kjo do t\u00eb thot\u00eb q\u00eb mund t\u00eb hiqni plot\u00ebsisht k\u00ebto mjete nga kontejneri p\u00ebrfundimtar. P\u00ebr k\u00ebt\u00eb, mund t\u00eb p\u00ebrdorni Builder Pattern.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/9af4d11134c54cbdbd2b020cdf270429.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKodi krijohet n\u00eb kontejnerin e par\u00eb dhe kompilohet. Pastaj kodi i kompiluara paketizohet n\u00eb kontejnerin p\u00ebrfundimtar pa kompilator\u00ebt dhe mjetet e nevojshme p\u00ebr t\u00eb kompaktuar k\u00ebt\u00eb kod. Le t\u00eb kalojm\u00eb p\u00ebrmes k\u00ebtij procesi me aplikacionin Go. S\u00eb pari, do t\u00eb kalojm\u00eb nga imazhi onbuild n\u00eb Alpine Linux.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/822b67eb28f94c50e7a40af1fe1bfea2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb skedarin e ri Docker, kontejneri fillon me imazhin golang:alpine. M\u00eb pas krijon nj\u00eb katalog p\u00ebr kodin, ekopjon at\u00eb n\u00eb kodin burimor, e nd\u00ebrtson k\u00ebt\u00eb kod burimor dhe ekzekuton aplikacionin. Ky kontejner \u00ebsht\u00eb shum\u00eb m\u00eb i vog\u00ebl se kontejneri onbuild, por ende p\u00ebrmban kompilatorin dhe mjetet e tjera Go, t\u00eb cilat n\u00eb t\u00eb v\u00ebrtet\u00eb nuk na nevojiten. Prandaj, le t\u00eb nxjerrim thjesht programin e kompiluar dhe ta vendosim at\u00eb n\u00eb kontejnerin ton\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/094ac74a24cd723f83ddc34bee64e884.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMund t\u00eb vini re di\u00e7ka t\u00eb \u00e7uditshme n\u00eb k\u00ebt\u00eb skedar Docker: ai p\u00ebrmban dy rreshta FROM. Seksioni i par\u00eb prej 4 rreshtash duket sakt\u00ebsisht si skedari i m\u00ebparsh\u00ebm Docker, p\u00ebrve\u00e7 faktit q\u00eb p\u00ebrdor fjal\u00ebn \u00e7el\u00ebs AS p\u00ebr t'i dh\u00ebn\u00eb em\u00ebr k\u00ebtij faze. N\u00eb seksionin pasues ka nj\u00eb rresht t\u00eb ri FROM, duke filluar nj\u00eb imazh t\u00eb ri, duke p\u00ebrdorur Raw alpine si imazhin baz\u00eb n\u00eb vend t\u00eb golang:alpine.<\/p>\n<p>Raw Alpine Linux nuk ka asnj\u00eb certifikat\u00eb SSL t\u00eb instaluar, q\u00eb do t\u00eb \u00e7oj\u00eb n\u00eb d\u00ebshtimin e shumic\u00ebs s\u00eb thirrjeve t\u00eb API p\u00ebrmes protokollit HTTPS, prandaj le t\u00eb instalojm\u00eb disa certifikata t\u00eb korit CA.<\/p>\n<p>E tani vjen pjesa m\u00eb interesante: p\u00ebr t\u00eb kopjuar kodin e kompiluar nga kontejneri i par\u00eb n\u00eb t\u00eb dytin, thjesht mund t\u00eb p\u00ebrdorim komand\u00ebn COPY, e cila gjendet n\u00eb rreshtin e 5-t\u00eb t\u00eb seksionit t\u00eb dyt\u00eb. Ajo do t\u00eb kopjoj\u00eb vet\u00ebm nj\u00eb skedar aplikacioni dhe nuk do t\u00eb prek\u00eb mjetet ndihm\u00ebse Go. Skedari i ri Docker me shum\u00eb hapa do t\u00eb p\u00ebrmbaj\u00eb imazhin e kontejnerit me vet\u00ebm 12 megabajt, nd\u00ebrsa imazhi burimor ishte 700 megabajt, q\u00eb \u00ebsht\u00eb nj\u00eb diferenc\u00eb e madhe!<br \/>\nPra, p\u00ebrdorimi i imazheve t\u00eb vogla baz\u00eb dhe Modeli i Nd\u00ebrtuesit jan\u00eb m\u00ebnyra t\u00eb shk\u00eblqyera p\u00ebr t\u00eb krijuar kontejner\u00eb shum\u00eb m\u00eb t\u00eb vegj\u00ebl pa shum\u00eb pun\u00eb.<br \/>\nMund t\u00eb jet\u00eb q\u00eb, n\u00eb var\u00ebsi t\u00eb stack-ut t\u00eb aplikacionit, ka edhe m\u00ebnyra t\u00eb tjera p\u00ebr t\u00eb zvog\u00ebluar madh\u00ebsin\u00eb e imazhit dhe kontejnerit, por a ka v\u00ebrtet p\u00ebrfitime t\u00eb dukshme kontejner\u00ebve t\u00eb vegj\u00ebl? Le t\u00eb shqyrtojm\u00eb dy aspekte ku kontejner\u00ebt e vegj\u00ebl jan\u00eb jasht\u00ebzakonisht efikas \u2013 \u00ebsht\u00eb performanca dhe siguria.<\/p>\n<p>P\u00ebr t\u00eb vler\u00ebsuar rritjen e performanc\u00ebs, le t\u00eb shqyrtojm\u00eb koh\u00ebn e procesit t\u00eb krijimit t\u00eb nj\u00eb kontejneri, futjes s\u00eb tij n\u00eb regjistrin (push) dhe t\u00eb nxjerrjes s\u00eb tij nga atje (pull). Mund ta shihni se nj\u00eb kontejner me p\u00ebrmas\u00eb m\u00eb t\u00eb vog\u00ebl ka nj\u00eb avantazh t\u00eb jasht\u00ebzakonsh\u00ebm n\u00eb krahasim me nj\u00eb kontejner m\u00eb t\u00eb madh.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/f48096cf875dbb34cb473f6296a2b601.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDocker do t\u00eb ruaj\u00eb nivelet, k\u00ebshtu q\u00eb nd\u00ebrtimet e m\u00ebpasshme do t\u00eb realizohen shum\u00eb shpejt. Megjithat\u00eb, n\u00eb shum\u00eb sisteme CI, t\u00eb cilat p\u00ebrdoren p\u00ebr t\u00eb nd\u00ebrtuar dhe testuar kontejner\u00ebt, nivelet nuk ruhen, k\u00ebshtu q\u00eb k\u00ebtu ka nj\u00eb kursim t\u00eb konsideruesh\u00ebm t\u00eb koh\u00ebs. Si\u00e7 duket, koha e nd\u00ebrtimit t\u00eb kontejnerit t\u00eb madh, var\u00ebsisht nga fuqia e makin\u00ebs tuaj, \u00ebsht\u00eb nga 34 n\u00eb 54 sekonda, nd\u00ebrsa p\u00ebr t\u00eb p\u00ebrdorur nj\u00eb kontejner t\u00eb zvog\u00ebluar me an\u00eb t\u00eb Pattern Builder, \u00ebsht\u00eb nga 23 n\u00eb 28 sekonda. P\u00ebr operacione t\u00eb tilla, rritja e performanc\u00ebs arrin 40-50%. Pra, thjesht mendoni sa her\u00eb e krijoni dhe testoni kodin tuaj.<\/p>\n<p>Pasi t\u00eb jet\u00eb nd\u00ebrtuar kontejneri, ju nevojitet t\u00eb futni imazhin e tij (push container image) n\u00eb regjistrin e kontejner\u00ebve, p\u00ebr ta p\u00ebrdorur m\u00eb von\u00eb n\u00eb klasterin tuaj Kubernetes. Un\u00eb rekomandoj t\u00eb p\u00ebrdorni regjistrin e kontejner\u00ebve t\u00eb Google.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/4c5426248c1e1ec6b0a36579db56c725.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDuke p\u00ebrdorur Google Container Registry (GCR), ju paguani vet\u00ebm p\u00ebr ruajtjen dhe rrjetin \"bllok\" dhe nuk ka pagesa shtes\u00eb p\u00ebr menaxhimin e kontejner\u00ebve. Kjo \u00ebsht\u00eb e besueshme, e sigurt dhe shum\u00eb e shpejt\u00eb. GCR p\u00ebrdor shum\u00eb truke p\u00ebr t\u00eb p\u00ebrshpejtuar operacionin pull. Si\u00e7 e shihni, futja e imazhit t\u00eb kontejnerit Docker Container Image me p\u00ebrdorimin e go:onbuild var\u00ebsisht nga performanca e kompjuterit do t\u00eb zgjas\u00eb nga 15 n\u00eb 48 sekonda, nd\u00ebrsa e nj\u00ebjta operacion me nj\u00eb kontejner m\u00eb t\u00eb vog\u00ebl nga 14 n\u00eb 16 sekonda, ku p\u00ebr makin\u00ebn me performanc\u00eb m\u00eb t\u00eb ul\u00ebt, p\u00ebrpar\u00ebsia n\u00eb shpejt\u00ebsin\u00eb e operacionit rritet deri n\u00eb 3 her\u00eb. P\u00ebr makinat e m\u00ebdha, koha \u00ebsht\u00eb af\u00ebrsisht e nj\u00ebjt\u00eb, pasi GCR p\u00ebrdor nj\u00eb cache global p\u00ebr baz\u00ebn e p\u00ebrbashk\u00ebt t\u00eb imazheve, q\u00eb do t\u00eb thot\u00eb se nuk keni nevoj\u00eb t'i ngarkoni fare. N\u00eb kompjuter\u00ebt me performanc\u00eb t\u00eb ul\u00ebt, CPU \u00ebsht\u00eb pika e ngusht\u00eb, prandaj p\u00ebrpar\u00ebsia e p\u00ebrdorimit t\u00eb kontejner\u00ebve t\u00eb vegj\u00ebl k\u00ebtu \u00ebsht\u00eb shum\u00eb m\u00eb e dukshme.<\/p>\n<p>N\u00ebse po p\u00ebrdorni GCR, un\u00eb theksoj q\u00ebju t\u00eb p\u00ebrdorni Google Container Builder (GCB) si pjes\u00eb t\u00eb sistemit tuaj t\u00eb nd\u00ebrtimit.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/cf97f8636dff16d5663225547bfb0701.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi e shihni, p\u00ebrdorimi i saj lejon arritjen e rezultateve shum\u00eb m\u00eb t\u00eb mira n\u00eb reduktimin e koh\u00ebs s\u00eb operacionit Build+Push, madje edhe m\u00eb shum\u00eb se nj\u00eb makin\u00eb me performanc\u00eb t\u00eb lart\u00eb \u2013 n\u00eb k\u00ebt\u00eb rast, procesi i nd\u00ebrtimit dhe d\u00ebrgimit t\u00eb kontejner\u00ebve n\u00eb host shpejtohet gati dyfish. P\u00ebr m\u00eb tep\u00ebr, \u00e7do dit\u00eb ju merrni 120 minuta nd\u00ebrtimi falas, q\u00eb n\u00eb shumic\u00ebn e rasteve plot\u00ebson nevojat p\u00ebr krijimin e kontejner\u00ebve. <\/p>\n<p>M\u00eb pas vjen metrika m\u00eb e r\u00ebnd\u00ebsishme e performanc\u00ebs \u2013 shpejt\u00ebsia e t\u00ebrheqjes, ose shkarkimit t\u00eb kontejner\u00ebve Pull. Dhe n\u00ebse nuk ju intereson shum\u00eb koh\u00ebzgjatja e operacionit push, koha e procesit pull ndikon seriozisht n\u00eb performanc\u00ebn e p\u00ebrgjithshme t\u00eb sistemit. Supozoni se keni nj\u00eb klaster prej tre nyjash dhe nj\u00ebra prej tyre d\u00ebshton. N\u00ebse p\u00ebrdorni nj\u00eb sistem menaxhimi, si Google Kubernetes Engine, ai automatikisht do t\u00eb z\u00ebvend\u00ebsoj\u00eb nyjen q\u00eb nuk punon me nj\u00eb t\u00eb re. Megjithat\u00eb, kjo nyje e re do t\u00eb jet\u00eb krejt\u00ebsisht e zbraz\u00ebt, dhe ju do t\u00eb duhet ta t\u00ebrheqni t\u00eb gjitha kontejner\u00ebt tuaj n\u00eb t\u00eb p\u00ebr t'u aktivizuar. N\u00ebse operacioni pull zgjat shum\u00eb, at\u00ebher\u00eb gjith\u00eb at\u00eb koh\u00eb klasteri juaj do t\u00eb punoj\u00eb me nj\u00eb performanc\u00eb m\u00eb t\u00eb ul\u00ebt.<\/p>\n<p>Ekzistojn\u00eb shum\u00eb raste kur mund t\u00eb ndodh\u00eb kjo: shtimi i nj\u00eb nyje t\u00eb re n\u00eb klaster, p\u00ebrdit\u00ebsimi i nyjave ose madje kalimi n\u00eb nj\u00eb kontejner t\u00eb ri p\u00ebr deploy. K\u00ebshtu, minimizimi i koh\u00ebs s\u00eb t\u00ebrheqjes pull b\u00ebhet nj\u00eb faktor ky\u00e7. \u00cbsht\u00eb e pamohueshme se nj\u00eb kontejner i vog\u00ebl shkarkohet shum\u00eb m\u00eb shpejt se nj\u00eb i madh. N\u00ebse p\u00ebrdorni disa kontejner\u00eb n\u00eb klasterin Kubernetes, kursimi i koh\u00ebs mund t\u00eb jet\u00eb shum\u00eb i r\u00ebnd\u00ebsish\u00ebm.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/fb0dacb37e9732fe2954323ee171a723.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nShikoni krahasimin e dh\u00ebn\u00eb: operacioni pull kur punoni me kontejner\u00eb t\u00eb vegj\u00ebl z\u00eb nj\u00eb koh\u00eb 4-9 her\u00eb m\u00eb t\u00eb vog\u00ebl var\u00ebsisht nga fuqi e makin\u00ebs se sa nj\u00eb operacion i till\u00eb duke p\u00ebrdorur go:onbuild. P\u00ebrdorimi i imazheve baze t\u00eb p\u00ebrbashk\u00ebta t\u00eb kontejner\u00ebve t\u00eb vogla nxjerr shum\u00eb p\u00ebrpara koh\u00ebn dhe shpejt\u00ebsin\u00eb, me t\u00eb cilat nyjat e reja Kubernetes mund t\u00eb aktivizohen dhe t\u00eb dalin n\u00eb internet.<\/p>\n<p>Le t\u00eb shqyrtojm\u00eb \u00e7\u00ebshtjen e siguris\u00eb. Konstruktet m\u00eb t\u00eb vogla konsiderohen shum\u00eb m\u00eb t\u00eb sigurta se ato m\u00eb t\u00eb m\u00ebdhat\u00eb, sepse kan\u00eb nj\u00eb sip\u00ebrfaqe sulmi m\u00eb t\u00eb vog\u00ebl. A \u00ebsht\u00eb kjo e v\u00ebrtet\u00eb n\u00eb t\u00eb v\u00ebrtet\u00eb? Nj\u00eb nga funksionet m\u00eb t\u00eb dobishme t\u00eb Google Container Registry \u00ebsht\u00eb mund\u00ebsia p\u00ebr t\u00eb skanuar automatikisht konstruktet tuaja p\u00ebr t\u00eb gjetur dob\u00ebsi. disa muaj m\u00eb par\u00eb krijova si onbuild ashtu edhe konstrukte t\u00eb shum\u00ebfishta, prandaj le t\u00eb shohim n\u00ebse ka ndonj\u00eb dob\u00ebsi atje. <\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/0ed3cd7bb8c8f5164e1115e9f1be39d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRezultati \u00ebsht\u00eb mahnit\u00ebs: n\u00eb nj\u00eb konteiner t\u00eb vog\u00ebl u gjet\u00ebn vet\u00ebm 3 dob\u00ebsi t\u00eb mesme, nd\u00ebrsa n\u00eb nj\u00eb t\u00eb madh \u2014 16 kritike dhe 376 dob\u00ebsi t\u00eb tjera. Duke shqyrtuar p\u00ebrmbajtjen e konteinerit t\u00eb madh, duket se shumica e problemeve t\u00eb siguris\u00eb nuk kan\u00eb asnj\u00eb lidhje me aplikacionin ton\u00eb, por jan\u00eb t\u00eb lidhura me programe q\u00eb ne madje nuk i p\u00ebrdorim. Prandaj, kur njer\u00ebzit flasin p\u00ebr nj\u00eb sip\u00ebrfaqe t\u00eb madhe p\u00ebr sulme, ata kan\u00eb pik\u00ebrisht k\u00ebt\u00eb parasysh. <\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/4a782f4a50153adc44042e9234357c02.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebrfundimi \u00ebsht\u00eb i qart\u00eb: krijoni konteiner\u00eb t\u00eb vegj\u00ebl, sepse ata ofrojn\u00eb p\u00ebrfitime reale n\u00eb performanc\u00ebn dhe sigurin\u00eb e sistemit tuaj. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502320\/\">Praktikat m\u00eb t\u00eb mira Kubernetes. Organizimi i Kubernetes me hap\u00ebsira emri<\/a><\/noindex><\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"wGz_cbtCiEA\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/wGz_cbtCiEA\/hqdefault.jpg\" alt=\"Luaj videon\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h3>Pak reklam\u00eb \ud83d\ude42<\/h3>\n<p>\nFaleminderit q\u00eb po q\u00ebndroni me ne. Ju p\u00eblqen artikujt tan\u00eb? Doni t\u00eb shihni m\u00eb shum\u00eb materiale interesante? Na mb\u00ebshtesni duke b\u00ebr\u00eb nj\u00eb porosi ose duke rekomanduar tek miqt\u00eb tuaj, <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">VPS cloud p\u00ebr zhvillues nga $4.99<\/a><\/noindex>, <b>nj\u00eb analog unik i server\u00ebve entry-level q\u00eb e kemi shpikur p\u00ebr Ju:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">E gjith\u00eb e v\u00ebrteta n\u00eb lidhje me VPS (KVM) E5-2697 v3 (6 B\u00ebrthama) 10GB DDR4 480GB SSD 1Gbps nga $19 ose si ta ndajm\u00eb sakt\u00ebsisht serverin?<\/a><\/noindex> (opcionet me RAID1 dhe RAID10, deri n\u00eb 24 b\u00ebrthama dhe deri n\u00eb 40GB DDR4 jan\u00eb t\u00eb disponueshme).<\/p>\n<p><b>Dell R730xd dyfish m\u00eb i lir\u00eb n\u00eb qend\u00ebr t\u00eb t\u00eb dh\u00ebnave Equinix Tier IV n\u00eb Amsterdam?<\/b> Vet\u00ebm te ne <b><noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/serversnl\">2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB nga $199<\/a><\/noindex> n\u00eb Holand\u00eb! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 nga $99!<\/b><\/b> Lexoni rreth <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Si t\u00eb nd\u00ebrtoni nj\u00eb infrastruktur\u00eb t\u00eb klas\u00ebs korporative me p\u00ebrdorimin e server\u00ebve Dell R730xd E5-2650 v4 me \u00e7mim 9000 euro p\u00ebr pak para?<\/a><\/noindex><br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/502052\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432 Kubernetes \u2013 \u044d\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u0440\u0430\u0437 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f Docker, \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u0435\u0449\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u043d\u0430\u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0441\u0442\u044b\u043c. \u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u043e\u0431\u0440\u0430\u0437, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0441\u0432\u043e\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0440\u0438\u0435\u043c \u043e\u0442\u043b\u0438\u0447\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":82245,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-82244","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-20T11:42:45+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-20T11:42:45+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Praktikat m\u00eb t\u00eb mira Kubernetes. Krijimi i konteiner\u00ebve t\u00eb vegj\u00ebl | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 Kubernetes. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 | ProHoster","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/luchshie-praktiki-kubernetes-sozdanie-nebolshih-kontejnerov","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-20T11:42:45+00:00","article:modified_time":"2020-05-20T11:42:45+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"82244","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 15:41:28","updated":"2022-09-28 11:52:01","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/82244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=82244"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/82244\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/82245"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=82244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=82244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=82244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}