{"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 t\u00eb Kubernetes. Krijimi i kontejner\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 t\u00eb Kubernetes. Krijimi i kontejner\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 p\u00ebr vendosjen n\u00eb Kubernetes \u00ebsht\u00eb vendosja e aplikacionit tuaj n\u00eb nj\u00eb en\u00eb. N\u00eb k\u00ebt\u00eb seri, do t\u00eb shqyrtojm\u00eb se si mund t\u00eb krijoni nj\u00eb imazh t\u00eb nj\u00eb en\u00eb t\u00eb vog\u00ebl dhe t\u00eb sigurt.<br \/>\nMe Docker, krijimi i imazheve t\u00eb en\u00ebve kurr\u00eb nuk ka qen\u00eb kaq i thjesht\u00eb. Specifikoni imazhin baz\u00eb, shtoni ndryshimet tuaja dhe krijoni en\u00ebn.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira t\u00eb Kubernetes. Krijimi i kontejner\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 e shk\u00eblqyer p\u00ebr t\u00eb filluar, p\u00ebrdorimi i imazheve baz\u00eb si t\u00eb zakonshme mund t\u00eb \u00e7oj\u00eb n\u00eb funksionim t\u00eb pasigurt me imazhe t\u00eb m\u00ebdha, plot me dob\u00ebsi.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, shumica e imazheve n\u00eb Docker p\u00ebrdorin Debian ose Ubuntu si imazhin baz\u00eb, dhe ndon\u00ebse kjo ofron p\u00ebrputhshm\u00ebri t\u00eb shk\u00eblqyer dhe leht\u00ebsi adaptimi (fajlli Docker p\u00ebrmban vet\u00ebm dy rreshta kodi), imazhet baz\u00eb jan\u00eb t\u00eb prirura t\u00eb shtojn\u00eb qindra megabajt\u00eb ngarkes\u00eb shtes\u00eb n\u00eb en\u00ebn tuaj. P\u00ebr shembull, nj\u00eb fajll i thjesht\u00eb i aplikacionit node.js Go \"hello-world\" z\u00eb rreth 700 megabajt, nd\u00ebrsa madh\u00ebsia reale e aplikacionit tuaj \u00ebsht\u00eb vet\u00ebm disa megabajt.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira t\u00eb Kubernetes. Krijimi i kontejner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/8093421f0f0f61b9daedf8e9530bbd3e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPra, t\u00eb gjitha k\u00ebto ngarkesa shtes\u00eb jan\u00eb nj\u00eb humbje e padobishme e hap\u00ebsir\u00ebs dixhitale dhe nj\u00eb streh\u00eb e shk\u00eblqyer p\u00ebr dob\u00ebsi 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 en\u00ebs. <\/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 projektimit Builder Pattern. P\u00ebrdorimi i imazheve baz\u00eb m\u00eb t\u00eb vogla ndoshta \u00ebsht\u00eb m\u00ebnyra m\u00eb e thjesht\u00eb p\u00ebr t\u00eb reduktuar madh\u00ebsin\u00eb e en\u00ebs tuaj. Shum\u00eb m\u00eb tep\u00ebr, gjuha ose steka q\u00eb po p\u00ebrdorni, shpesh ofron nj\u00eb imazh origjinal t\u00eb aplikacionit q\u00eb \u00ebsht\u00eb shum\u00eb m\u00eb i vog\u00ebl se imazhi i zakonsh\u00ebm. Le t\u00eb shikojm\u00eb en\u00ebn ton\u00eb node.js. <\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira t\u00eb Kubernetes. Krijimi i kontejner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/df3f744a565465b56adcec6a1c32e501.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebr default n\u00eb Docker, madh\u00ebsia e imazhit baz\u00eb node:8 \u00ebsht\u00eb 670 MB, nd\u00ebrsa madh\u00ebsia node:8-alpine \u00ebsht\u00eb vet\u00ebm 65 MB, q\u00eb do t\u00eb thot\u00eb dhjet\u00eb her\u00eb m\u00eb e vog\u00ebl. Duke p\u00ebrdorur nj\u00eb imazh baz\u00eb m\u00eb t\u00eb vog\u00ebl Alpine, ju do ta zvog\u00ebloni ndjesh\u00ebm madh\u00ebsin\u00eb e en\u00ebs tuaj. Alpine \u00ebsht\u00eb nj\u00eb shp\u00ebrndarje e vog\u00ebl dhe e leht\u00eb Linux-i, e cila \u00ebsht\u00eb shum\u00eb e njohur mes p\u00ebrdoruesve t\u00eb Docker, sepse \u00ebsht\u00eb e p\u00ebrshtatshme me shum\u00eb aplikacione, duke ruajtur nj\u00eb madh\u00ebsi t\u00eb vog\u00ebl t\u00eb en\u00ebve. N\u00eb krahasim me imazhin standard Docker \"node\", \"node:alpine\" heq shum\u00eb skedar\u00eb dhe programe ndihm\u00ebse, duke l\u00ebn\u00eb vet\u00ebm ato q\u00eb jan\u00eb t\u00eb nevojshme p\u00ebr t\u00eb ekzekutuar aplikacionin tuaj.<\/p>\n<p>P\u00ebr t\u00eb kaluar n\u00eb nj\u00eb imazh m\u00eb t\u00eb vog\u00ebl baz\u00eb, thjesht p\u00ebrdit\u00ebsoni skedarin Docker p\u00ebr t\u00eb filluar me imazhin e ri baz\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira t\u00eb Kubernetes. Krijimi i kontejner\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, ju duhet t\u00eb kopjoni kodin tuaj n\u00eb en\u00eb dhe t\u00eb instaloni \u00e7do var\u00ebsi. N\u00eb skedarin e ri Docker, en\u00ebs 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, ekzekuton server.js.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira t\u00eb Kubernetes. Krijimi i kontejner\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 en\u00eb q\u00eb \u00ebsht\u00eb dhjet\u00eb her\u00eb m\u00eb e vog\u00ebl. N\u00ebse gjuha ose steka juaj ndonj\u00ebher\u00eb nuk ka nj\u00eb funksion p\u00ebr zvog\u00eblimin e imazhit baz\u00eb, p\u00ebrdorni Alpine Linux. Ai gjithashtu do t'ju mund\u00ebsoj\u00eb t\u00eb menaxhoni plot\u00ebsisht p\u00ebrmbajtjen e en\u00ebs. P\u00ebrdorimi i imazheve baz\u00eb m\u00eb t\u00eb vogla \u00ebsht\u00eb nj\u00eb m\u00ebnyr\u00eb e shk\u00eblqyer p\u00ebr t\u00eb nd\u00ebrtuar menj\u00ebher\u00eb en\u00eb t\u00eb vogla. Por mund t\u00eb arrijm\u00eb edhe m\u00eb shum\u00eb reduktim duke p\u00ebrdorur Builder Pattern.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira t\u00eb Kubernetes. Krijimi i kontejner\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 e interpretuara, kodi burimor s\u00eb pari i d\u00ebrgohet interpretorit dhe m\u00eb pas ekzekutohet drejtp\u00ebrdrejt. N\u00eb gjuh\u00ebt e kompilueshme, kodi burimor fillimisht transformohet n\u00eb kod t\u00eb kompiluar. N\u00eb k\u00ebt\u00eb proces, kompileret shpesh p\u00ebrdorin mjete q\u00eb n\u00eb t\u00eb v\u00ebrtet\u00eb nuk jan\u00eb t\u00eb nevojshme p\u00ebr ekzekutimin e kodit. Kjo do t\u00eb thot\u00eb se ju mund t\u00eb hiqni plot\u00ebsisht k\u00ebto mjete nga en\u00eb finale. 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 t\u00eb Kubernetes. Krijimi i kontejner\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 en\u00ebn e par\u00eb dhe komilohet. Pastaj, kodi i komiluar paketohet n\u00eb en\u00ebn p\u00ebrfundimtare pa kompiler\u00ebt dhe mjetet e nevojshme p\u00ebr kompilimin e k\u00ebtij kodi. 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 t\u00eb Kubernetes. Krijimi i kontejner\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, en\u00ebs fillon me imazhin golang:alpine. Pastaj, krijon nj\u00eb katalog p\u00ebr kodin, kopjon kodin burimor, kompakton kodin dhe ekzekuton aplikacionin. Ky en\u00eb \u00ebsht\u00eb shum\u00eb m\u00eb i vog\u00ebl se en\u00eb onbuild, por ende p\u00ebrmban kompilerin dhe mjetet e tjera Go q\u00eb n\u00eb t\u00eb v\u00ebrtet\u00eb nuk na nevojiten. Prandaj, le t\u00eb nxjerrim thjesht programin e kompiluar dhe ta vendosim n\u00eb en\u00ebn ton\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira t\u00eb Kubernetes. Krijimi i kontejner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/094ac74a24cd723f83ddc34bee64e884.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMund t'i t\u00eb duket di\u00e7ka e \u00e7uditshme n\u00eb k\u00ebt\u00eb skedar Docker: ai p\u00ebrmban dy rreshta FROM. Seksioni i par\u00eb nga 4 rreshta duket pik\u00ebrisht ashtu si skedari i m\u00ebparsh\u00ebm Docker p\u00ebrve\u00e7 faktit q\u00eb p\u00ebrdor fjal\u00ebn ky\u00e7e AS p\u00ebr t\u00eb dh\u00ebn\u00eb emrin k\u00ebtij faze. N\u00eb seksionin e ardhsh\u00ebm ka nj\u00eb rresht t\u00eb ri FROM, q\u00eb lejon t\u00eb filloni nj\u00eb imazh t\u00eb ri, duke p\u00ebrdorur si baz\u00eb imazhin Raw alpine n\u00eb vend t\u00eb golang:alpine.<\/p>\n<p>Raw Alpine Linux nuk ka asnj\u00eb certifikat\u00eb SSL t\u00eb instaluar, \u00e7ka do t\u00eb \u00e7oj\u00eb n\u00eb d\u00ebshtimin e shumic\u00ebs s\u00eb thirrjeve API p\u00ebrmes protokollit HTTPS, prandaj le t\u00eb instalojm\u00eb disa certifikata rr\u00ebnjor\u00eb CA.<\/p>\n<p>Tani vjen e funit interesante: p\u00ebr t\u00eb kopjuar kodin e kompiliuar nga kontejneri i par\u00eb n\u00eb t\u00eb dytin mund t\u00eb p\u00ebrdorni thjesht komand\u00ebn COPY, e vendosur 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 e sh\u00ebrbimit Go. Skedari i ri i shum\u00ebfisht\u00eb Docker do t\u00eb p\u00ebrmbaj\u00eb imazhin e kontejnerit me nj\u00eb madh\u00ebsi prej vet\u00ebm 12 megabajt, nd\u00ebrkoh\u00eb q\u00eb imazhi origjinal i kontejnerit ishte 700 megabajt, nj\u00eb diferenc\u00eb e madhe!<br \/>\nPrandaj, p\u00ebrdorimi i imazheve t\u00eb vogla baz\u00eb dhe modelit Builder - jan\u00eb m\u00ebnyra t\u00eb shk\u00eblqyera p\u00ebr t\u00eb krijuar kontejner\u00eb shum\u00eb m\u00eb t\u00eb vegj\u00ebl pa b\u00ebr\u00eb pun\u00eb t\u00eb madhe.<br \/>\nMund t\u00eb ndodh\u00eb q\u00eb n\u00eb var\u00ebsi t\u00eb stack-ut t\u00eb aplikacionit, ka m\u00ebnyra t\u00eb tjera p\u00ebr t\u00eb reduktuar madh\u00ebsin\u00eb e imazhit dhe kontejnerit, por a kan\u00eb v\u00ebrtet kontejner\u00ebt e vegj\u00ebl nj\u00eb avantazh t\u00eb matsh\u00ebm? Le t\u00eb shqyrtojm\u00eb dy aspekte ku kontejner\u00ebt e vegj\u00ebl jan\u00eb jasht\u00ebzakonisht efektiv\u00eb - kjo \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 nd\u00ebrtimit t\u00eb kontejnerit, ngarkimin e tij n\u00eb regjistrin (push) dhe m\u00eb pas t\u00ebrheqjen nga aty (pull). Mund t\u00eb shikoni se kontejneri m\u00eb i vog\u00ebl ka nj\u00eb p\u00ebrpar\u00ebsi t\u00eb pakund\u00ebrshtueshme krahasuar me kontejnerin m\u00eb t\u00eb madh.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira t\u00eb Kubernetes. Krijimi i kontejner\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 keq\u00ebsoj\u00eb p\u00ebrb\u00ebrjet, k\u00ebshtu q\u00eb nd\u00ebrtimet e m\u00ebvonshme do t\u00eb kryhen shum\u00eb shpejt. Megjithat\u00eb, n\u00eb shum\u00eb sisteme CI, t\u00eb cilat p\u00ebrdoren p\u00ebr nd\u00ebrtimin dhe testimin e kontejner\u00ebve, p\u00ebrb\u00ebrjet nuk keq\u00ebsohen, k\u00ebshtu q\u00eb ka nj\u00eb kursim t\u00eb konsideruesh\u00ebm kohe k\u00ebtu. Si\u00e7 duket, koha e nd\u00ebrtimit t\u00eb kontejnerit t\u00eb madh n\u00eb var\u00ebsi t\u00eb fuqis\u00eb s\u00eb makin\u00ebs tuaj \u00ebsht\u00eb nga 34 deri n\u00eb 54 sekonda, nd\u00ebrsa me p\u00ebrdorimin e kontejnerit t\u00eb vog\u00ebl t\u00eb reduktuar n\u00ebp\u00ebrmjet modelit Builder - nga 23 deri n\u00eb 28 sekonda. P\u00ebr operacione t\u00eb k\u00ebtij lloji rritja e performanc\u00ebs do t\u00eb jet\u00eb 40-50%. Prandaj, thjesht mendo se sa her\u00eb krijoni dhe testoni kodin tuaj.<\/p>\n<p>Pas nd\u00ebrtimit t\u00eb kontejnerit, duhet t\u00eb ngarkoni imazhin e tij n\u00eb regjistrin e kontejner\u00ebve, p\u00ebr ta p\u00ebrdorur m\u00eb pas 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 t\u00eb Kubernetes. Krijimi i kontejner\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), paguani vet\u00ebm p\u00ebr ruajtjen 'raw' dhe rrjetin, dhe nuk ka tarif\u00eb shtes\u00eb p\u00ebr menaxhimin e kontejner\u00ebve. Kjo \u00ebsht\u00eb konfidenciale, 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, ngarkimi i imazhit t\u00eb kontejnerit Docker Container Image duke p\u00ebrdorur go:onbuild n\u00eb var\u00ebsi t\u00eb performanc\u00ebs s\u00eb kompjuterit do t\u00eb zgjas\u00eb nga 15 deri n\u00eb 48s, dhe e nj\u00ebjta operacion me nj\u00eb kontejner t\u00eb vog\u00ebl \u2013 nga 14 deri n\u00eb 16s, nd\u00ebrkoh\u00eb q\u00eb p\u00ebr kompjuter\u00ebt me performanc\u00eb m\u00eb t\u00eb ul\u00ebt p\u00ebrpar\u00ebsia n\u00eb shpejt\u00ebsin\u00eb e operacionit rritet n\u00eb 3 her\u00eb. P\u00ebr makin\u00ebn e madhe, 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, pra nuk \u00ebsht\u00eb e nevojshme t\u00eb ngarkoni fare. N\u00eb kompjuter\u00eb me fuqizim t\u00eb ul\u00ebt CPU \u00ebsht\u00eb pika kritike, prandaj p\u00ebrpar\u00ebsia e p\u00ebrdorimit t\u00eb kontejner\u00ebve t\u00eb vegj\u00ebl \u00ebsht\u00eb k\u00ebtu m\u00eb e dukshme.<\/p>\n<p>N\u00ebse p\u00ebrdorni GCR, ju rekomandoj me ngulm q\u00eb t\u00eb aplikoni 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 t\u00eb Kubernetes. Krijimi i kontejner\u00ebve t\u00eb vegj\u00ebl\" src=\"\/wp-content\/uploads\/2020\/05\/cf97f8636dff16d5663225547bfb0701.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSi\u00e7 e shihni, p\u00ebrdorimi i tij sjell rezultate shum\u00eb m\u00eb t\u00eb mira n\u00eb reduktimin e koh\u00ebs s\u00eb operacionit Build+Push sesa madje edhe makina me performanc\u00eb t\u00eb lart\u00eb - n\u00eb k\u00ebt\u00eb rast procesi i nd\u00ebrtimit dhe d\u00ebrgimit t\u00eb kontejner\u00ebve n\u00eb host p\u00ebrshpejtohet gati dyfish. P\u00ebr m\u00eb tep\u00ebr, \u00e7do dit\u00eb merrni 120 minuta nd\u00ebrtimi falas, e cila n\u00eb shumic\u00ebn e rasteve plot\u00ebson nevojat p\u00ebr nd\u00ebrtim t\u00eb kontejner\u00ebve. <\/p>\n<p>M\u00eb pas vjen metrik\u00eb m\u00eb e r\u00ebnd\u00ebsishme e performanc\u00ebs \u2013 shpejt\u00ebsia e nxjerrjes, ose shkarkimit t\u00eb kontejner\u00ebve Pull. Dhe n\u00ebse nuk ju shqet\u00ebson shum\u00eb koha e shpenzuar p\u00ebr operacionin push, at\u00ebher\u00eb koh\u00ebzgjatja e procesit pull ka nj\u00eb ndikim t\u00eb r\u00ebnd\u00ebsish\u00ebm n\u00eb performanc\u00ebn e p\u00ebrgjithshme t\u00eb sistemit. Le t\u00eb supozojm\u00eb se keni nj\u00eb kluster me tre nyje dhe nj\u00eb nga ato d\u00ebshton. N\u00ebse p\u00ebrdorni nj\u00eb sistem menaxhimi, si Google Kubernetes Engine, at\u00ebher\u00eb ai automatikisht do t\u00eb z\u00ebvend\u00ebsoj\u00eb nyjen q\u00eb nuk funksionon me nj\u00eb t\u00eb re. Sidoqoft\u00eb, kjo nyje e re do t\u00eb jet\u00eb krejt\u00ebsisht bosh, dhe ju do t'ju duhet t\u00eb t\u00ebrhiqni t\u00eb gjith\u00eb kontejner\u00ebt tuaj n\u00eb t\u00eb q\u00eb t\u00eb filloj\u00eb t\u00eb punoj\u00eb. N\u00ebse operacioni pull zgjat shum\u00eb, at\u00ebher\u00eb gjat\u00eb gjith\u00eb k\u00ebsaj kohe klusteri juaj do t\u00eb funksionoj\u00eb me performanc\u00eb m\u00eb t\u00eb ul\u00ebt.<\/p>\n<p>Ekzistojn\u00eb shum\u00eb raste kur di\u00e7ka e till\u00eb mund t\u00eb ndodh\u00eb: kjo \u00ebsht\u00eb shtimi i nj\u00eb nyje t\u00eb re n\u00eb kluster, p\u00ebrdit\u00ebsimi i nyjeve ose madje kalimi n\u00eb nj\u00eb kontejner t\u00eb ri p\u00ebr shp\u00ebrndarje. K\u00ebshtu, minimizimi i koh\u00ebs s\u00eb nxjerrjes 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 klusterin Kubernetes, kursimi i koh\u00ebs mund t\u00eb jet\u00eb shum\u00eb i konsideruesh\u00ebm.<\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira t\u00eb Kubernetes. Krijimi i kontejner\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 m\u00ebposht\u00ebm: operacioni pull me kontejner\u00eb t\u00eb vegj\u00ebl zgjat nga 4 n\u00eb 9 her\u00eb m\u00eb pak koh\u00eb n\u00eb var\u00ebsi t\u00eb fuqis\u00eb s\u00eb makin\u00ebs, sesa nj\u00eb operacion i till\u00eb p\u00ebrdorimi go:onbuild. P\u00ebrdorimi i imazheve themelore t\u00eb p\u00ebrbashk\u00ebta t\u00eb kontejner\u00ebve me madh\u00ebsi t\u00eb vog\u00ebl p\u00ebrshpejton ndjesh\u00ebm koh\u00ebn dhe shpejt\u00ebsin\u00eb me t\u00eb cilat nyjet e reja Kubernetes mund t\u00eb shp\u00ebrndahen dhe t\u00eb dalin n\u00eb internet.<\/p>\n<p>Le t\u00eb shqyrtojm\u00eb \u00e7\u00ebshtjen e siguris\u00eb. Kjo \u00ebsht\u00eb e menduar se kontejner\u00ebt e vegj\u00ebl jan\u00eb shum\u00eb m\u00eb t\u00eb sigurt se ata t\u00eb m\u00ebdhenj, sepse kan\u00eb nj\u00eb sip\u00ebrfaqe sulmi m\u00eb t\u00eb vog\u00ebl. A \u00ebsht\u00eb k\u00ebshtu realisht? Nj\u00eb nga funksionet m\u00eb t\u00eb dobishme t\u00eb Google Container Registry \u00ebsht\u00eb mund\u00ebsia p\u00ebr t\u00eb skanuar automatikisht kontejner\u00ebt tuaj p\u00ebr vulnerabilitete. Disa muaj m\u00eb par\u00eb krijova si kontejner\u00eb onbuild, ashtu edhe t\u00eb shum\u00ebfisht\u00eb, prandaj le t\u00eb shohim n\u00ebse ka ndonj\u00eb vend ku jan\u00eb t\u00eb pa sigurta. <\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira t\u00eb Kubernetes. Krijimi i kontejner\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 kontejner t\u00eb vog\u00ebl jan\u00eb gjetur vet\u00ebm 3 vulnerabilitete t\u00eb mesme, nd\u00ebrsa n\u00eb nj\u00ebrin t\u00eb madh \u2013 16 kritike dhe 376 t\u00eb tjera. N\u00ebse shqyrtojm\u00eb p\u00ebrmbajtjen e kontejnerit t\u00eb madh, duket se shumica e problemeve t\u00eb siguris\u00eb nuk kan\u00eb asnj\u00eb lidhje me aplikacionin ton\u00eb, por lidhen me programet q\u00eb ne as nuk i p\u00ebrdorim. Prandaj, kur njer\u00ebzit flasin p\u00ebr nj\u00eb sip\u00ebrfaqe t\u00eb madhe p\u00ebr sulme, ata e kan\u00eb fjal\u00ebn p\u00ebr k\u00ebt\u00eb. <\/p>\n<p><img decoding=\"async\" alt=\"Praktikat m\u00eb t\u00eb mira t\u00eb Kubernetes. Krijimi i kontejner\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 kontejner\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 t\u00eb Kubernetes. Organizimi i Kubernetes me hap\u00ebsira em\u00ebrtimi<\/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 q\u00ebndroni me ne. Ju p\u00eblqejn\u00eb artikujt tan\u00eb? D\u00ebshironi t\u00eb shihni m\u00eb shum\u00eb materiale interesante? Na mb\u00ebshtetni duke b\u00ebr\u00eb nj\u00eb porosi ose duke na rekomanduar njohurive 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, i nd\u00ebrtuar p\u00ebr ju:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">E gjith\u00eb e v\u00ebrteta rreth VPS (KVM) E5-2697 v3 (6 Nuclea) 10GB DDR4 480GB SSD 1Gbps nga $19 ose si ta ndajm\u00eb sakt\u00ebsisht serverin?<\/a><\/noindex> (disponohen variante me RAID1 dhe RAID10, deri n\u00eb 24 b\u00ebrthama dhe deri n\u00eb 40GB DDR4).<\/p>\n<p><b>Dell R730xd dyfish m\u00eb i lir\u00eb n\u00eb qendr\u00ebn e t\u00eb dh\u00ebnave Equinix Tier IV n\u00eb Amsterdam?<\/b> Vet\u00ebm k\u00ebtu <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\u00ebrtosh nj\u00eb infrastruktur\u00eb t\u00eb klas\u00ebs korporative me p\u00ebrdorimin e server\u00ebve Dell R730xd E5-2650 v4 me \u00e7mim prej 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.0.1 - 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.0.1\" \/>\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 kontejner\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}]}}