{"id":94262,"date":"2020-09-14T19:42:34","date_gmt":"2020-09-14T17:42:34","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kak-poluchit-dostup-k-resursam-kubernetes-pod"},"modified":"2020-09-14T19:42:34","modified_gmt":"2020-09-14T17:42:34","slug":"kak-poluchit-dostup-k-resursam-kubernetes-pod","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-poluchit-dostup-k-resursam-kubernetes-pod","title":{"rendered":"Si t\u00eb qaseni n\u00eb burimet e Kubernetes Pod","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Si t\u00eb qaseni n\u00eb burimet e Kubernetes Pod\" src=\"\/wp-content\/uploads\/2020\/09\/3d6760d512ef456daad121f7d1ddbcf8.jpg\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" href=\"https:\/\/www.deviantart.com\/tohad\/art\/The-Reward-549720998\"><i>Shp\u00ebrblimi nga Tohad<\/i><\/a><\/noindex><\/p>\n<p>N\u00eb fillim t\u00eb pun\u00ebs me Kubernetes, zakonisht harrohet konfigurimi i burimeve t\u00eb konteiner\u00ebve. N\u00eb k\u00ebt\u00eb faz\u00eb, mjafton t\u00eb siguroheni q\u00eb imazhi Docker funksionon dhe mund t\u00eb vendoset n\u00eb klasterin Kubernetes.<\/p>\n<p>Por m\u00eb von\u00eb, aplikacioni duhet t\u00eb vendoset n\u00eb klasterin e prodhimit s\u00eb bashku me aplikacione t\u00eb tjera. P\u00ebr k\u00ebt\u00eb, duhet t\u00eb alokoni burime p\u00ebr konteinerin dhe t\u00eb siguroheni q\u00eb ato jan\u00eb t\u00eb mjaftueshme p\u00ebr t\u00eb ndihmuar n\u00eb nisjen dhe funksionimin e aplikacionit, pa shkaktuar probleme n\u00eb aplikacionet e tjera q\u00eb po funksionojn\u00eb.<\/p>\n<p>Ekipa <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/\">Kubernetes aaS nga Mail.ru<\/a><\/noindex> p\u00ebrktheu artikullin mbi burimet e konteiner\u00ebve (CPU &amp; MEM), k\u00ebrkesat dhe kufizimet e burimeve. Do t\u00eb m\u00ebsoni p\u00ebr p\u00ebrfitimet q\u00eb ofrojn\u00eb k\u00ebto konfigurime dhe \u00e7far\u00eb do t\u00eb ndodh\u00eb n\u00ebse ato nuk caktohen.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Burimet kompjuterike<\/h2>\n<p>\nNe kemi dy lloje burimesh me nj\u00ebsi t\u00eb tjera:<\/p>\n<ul>\n<li>Procesori qendror (CPU) \u2014 b\u00ebrthama;<\/li>\n<li>Memoria (MEM) \u2014 bajta.<\/li>\n<\/ul>\n<p>\nBurimet p\u00ebrcaktohen p\u00ebr \u00e7do kontenier. N\u00eb skedarin YAML t\u00eb m\u00ebposht\u00ebm p\u00ebr Pod, do t\u00eb shihni nj\u00eb seksion burimesh q\u00eb p\u00ebrmban burimet e k\u00ebrkuara dhe ato t\u00eb kufizuara:<\/p>\n<ul>\n<li>Burimet e k\u00ebrkuara t\u00eb Pod = shuma e burimeve t\u00eb k\u00ebrkuara p\u00ebr t\u00eb gjitha kontenier\u00ebt;<\/li>\n<li>Burimet e kufizuara t\u00eb Pod = shuma e burimeve t\u00eb kufizuara p\u00ebr t\u00eb gjitha kontenier\u00ebt.<\/li>\n<\/ul>\n<p><\/p>\n<pre><code class=\"plaintext\">apiVersion: v1\nkind: Pod\nmetadata:\n  name: backend-pod-name\n  labels:\n    application: backend\nspec:\n  containers:\n    \u2014 name: main-container\n      image: my-backend\n      tag: v1\n      ports:\n      \u2014 containerPort: 8080\n      resources:\n        requests:\n          cpu: 0.2 # REQUESTED CPU: 200m cores\n          memory: &quot;1Gi&quot; # REQUESTED MEM: 1Gi\n        limits:\n          cpu: 1 # MAX CPU USAGE: 1 core\n          memory: &quot;1Gi&quot; # MAX MEM USAGE:  1Gi\n    \u2014 name: other-container\n      image: other-app\n      tag: v1\n      ports:\n      \u2014 containerPort: 8000\n      resources:\n        requests:\n          cpu: &quot;200m&quot; # REQUESTED CPU: 200m cores\n          memory: &quot;0.5Gi&quot; # REQUESTED MEM: 0.5Gi\n        limits:\n          cpu: 1 # MAX CPU USAGE: 1 core\n          memory: &quot;1Gi&quot; # MAX MEM USAGE:  1Gi<\/code><\/pre>\n<p>Shembuj t\u00eb resurseve t\u00eb k\u00ebrkuar dhe kufizuar<\/p>\n<p>Fusha <code>resources.requested<\/code> nga specifikimi i Pod \u2014 nj\u00eb nga elementet q\u00eb p\u00ebrdoren p\u00ebr t\u00eb gjetur nodin e duhur. M\u00eb pas mund t\u00eb planifikohet nj\u00eb implementim i Pod-it. Si e gjejn\u00eb nodin e p\u00ebrshtatsh\u00ebm?<\/p>\n<p>Kubernetes p\u00ebrb\u00ebhet nga disa komponent\u00eb, duke p\u00ebrfshir\u00eb nj\u00eb nod t\u00eb kryesor ose master-nod (Kubernetes Control Plane). N\u00eb master-nod ka disa procese: kube-apiserver, kube-controller-manager dhe kube-scheduler. <\/p>\n<p>Procesi kube-scheduler \u00ebsht\u00eb p\u00ebrgjegj\u00ebs p\u00ebr shqyrtimin e moduleve t\u00eb reja t\u00eb krijuara dhe k\u00ebrkimin e mundsh\u00ebm t\u00eb nyjeve punuese q\u00eb p\u00ebrputhen me t\u00eb gjitha k\u00ebrkesat e moduleve, p\u00ebrfshir\u00eb sasin\u00eb e burimeve t\u00eb k\u00ebrkuara. Lista e nyjeve t\u00eb gjetura nga kube-scheduler renditet. Pod-i planifikohet n\u00eb nyjen me pik\u00ebt m\u00eb t\u00eb larta.<\/p>\n<p><img decoding=\"async\" alt=\"Si t\u00eb qaseni n\u00eb burimet e Kubernetes Pod\" src=\"\/wp-content\/uploads\/2020\/09\/b489991a3cbbd5359c99701886d488e5.jpg\" style=\"display:block;margin: 0 auto;\" \/>Ku do t\u00eb vendoset Pod-i i purpurt?<\/p>\n<p>N\u00eb figur\u00eb shihet se kube-scheduler duhet t\u00eb planifikoj\u00eb nj\u00eb Pod t\u00eb ri purpurt. Klasteri Kubernetes p\u00ebrmban dy nyje: A dhe B. Si\u00e7 mund t\u00eb v\u00ebrehet, kube-scheduler nuk mund ta planifikoj\u00eb Pod-in n\u00eb nyjen A \u2014 burimet e disponueshme (t\u00eb papro\u00e7muara) nuk p\u00ebrputhen me k\u00ebrkesat e Pod-it purpurt. Pra, 1 GB memorie e k\u00ebrkuar nga Pod-i purpurt nuk do t\u00eb ket\u00eb vend n\u00eb nyjen A, pasi volumi i disponuesh\u00ebm i memories \u00ebsht\u00eb 0,5 GB. Por nyja B ka mjaft burime. Si p\u00ebrfundim, kube-scheduler vendos se vendi i destinacionit p\u00ebr Pod-in purpurt \u00ebsht\u00eb nyja B.<\/p>\n<p>Tani e dim\u00eb se si burimet e k\u00ebrkuara ndikojn\u00eb n\u00eb zgjedhjen e nyj\u00ebs p\u00ebr t\u00eb ekzekutuar Pod-in. Por si ndikojn\u00eb burimet kufizuese?<\/p>\n<p>Kapacitetet maksimale jan\u00eb kufiri q\u00eb CPU\/MEM nuk mund t\u00eb kaloj\u00eb. Megjithat\u00eb, burimi CPU \u00ebsht\u00eb fleksib\u00ebl, prandaj kontejner\u00ebt q\u00eb arrijn\u00eb vlerat maksimale p\u00ebr CPU, nuk do t\u00eb shkaktojn\u00eb rr\u00ebzimin e Pod-it. N\u00eb vend t\u00eb k\u00ebsaj, do t\u00eb aktivizohet frenimi p\u00ebr CPU. N\u00ebse arrijm\u00eb kufirin e p\u00ebrdorimit t\u00eb MEM, kontejneri do t\u00eb ndalet p\u00ebr shkak t\u00eb OOM-Killer dhe do t\u00eb rinishet n\u00ebse kjo lejohet nga konfigurimi i RestartPolicy.<\/p>\n<h2>Burimet e k\u00ebrkuara dhe maksimale n\u00eb detaje<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Si t\u00eb qaseni n\u00eb burimet e Kubernetes Pod\" src=\"\/wp-content\/uploads\/2020\/09\/22e672100940e8895ae42a56a681111f.jpg\" style=\"display:block;margin: 0 auto;\" \/>Lidhja e burimeve mes Docker dhe Kubernetes<\/p>\n<p>M\u00ebnyra m\u00eb e mir\u00eb p\u00ebr t\u00eb shpjeguar se si funksionojn\u00eb burimet e k\u00ebrkuara dhe maksimale \u00ebsht\u00eb t\u00eb paraqes\u00ebsh lidhjen midis Kubernetes dhe Docker. N\u00eb ilustrimin e m\u00ebsip\u00ebrm, mund t\u00eb shihni se si jan\u00eb t\u00eb lidhura fushat e Kubernetes dhe flagat e nisjes s\u00eb Docker.<\/p>\n<h2>Memoria: k\u00ebrkesa dhe kufizim<\/h2>\n<p><\/p>\n<pre><code class=\"plaintext\">containers:\n...\n resources:\n   requests:\n     memory: &quot;0.5Gi&quot;\n   limits:\n     memory: &quot;1Gi&quot;\n<\/code><\/pre>\n<p>\nSi\u00e7 u p\u00ebrmend m\u00eb par\u00eb, memoria matet n\u00eb bite. Duke u bazuar n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/manage-resources-containers\/#meaning-of-memory\">dokumentacionin e Kubernetes<\/a><\/noindex>, mund t\u00eb specifikojm\u00eb memorien si nj\u00eb num\u00ebr. Zakonisht \u00ebsht\u00eb e plot\u00eb, p\u00ebr shembull 2678 \u2014 do t\u00eb thot\u00eb 2678 bite. Mund t\u00eb p\u00ebrdoren gjithashtu sufikse <code>G<\/code> dhe <code>Gi<\/code>, e r\u00ebnd\u00ebsishme \u00ebsht\u00eb t\u00eb mbani mend se ato nuk jan\u00eb ekuivalente. E para \u00ebsht\u00eb decimal, nd\u00ebrsa e dyta \u00ebsht\u00eb binare. Si nj\u00eb shembull, e p\u00ebrmendur n\u00eb dokumentacionin e k8s: <code>128974848<\/code>, <code>129e6<\/code>, <code>129M<\/code>, <code>123Mi<\/code> \u2014 ato jan\u00eb praktikisht ekuivalente.<\/p>\n<p>Parametri Kubernetes <code>limits.memory<\/code> korrespondon me flamurin <code>--memory<\/code> nga Docker. N\u00eb rastin e <code>request.memory<\/code> shigjeta p\u00ebr Docker mungon, pasi Docker nuk e p\u00ebrdor k\u00ebt\u00eb fush\u00eb. Mund t\u00eb pyesni, a \u00ebsht\u00eb kjo e nevojshme? Po, \u00ebsht\u00eb e nevojshme. Si\u00e7 e thash\u00eb, fusha ka r\u00ebnd\u00ebsi p\u00ebr Kubernetes. N\u00eb baz\u00eb t\u00eb informacionit q\u00eb merr nga ajo, kube-scheduler vendos se n\u00eb cilin nod t\u00eb programoj\u00eb Pod-in.<\/p>\n<p><strong>\u00c7far\u00eb do t\u00eb ndodh\u00eb n\u00ebse vendosni nj\u00eb k\u00ebrkes\u00eb p\u00ebr memorie t\u00eb pamjaftueshme?<\/strong><\/p>\n<p>N\u00ebse konteneri arrin kufijt\u00eb e memorie s\u00eb k\u00ebrkuar, at\u00ebher\u00eb Pod-i do t\u00eb vendoset n\u00eb grupin e Pod-ve, t\u00eb cil\u00ebt ndalohen kur ka munges\u00eb t\u00eb memories n\u00eb nod.<\/p>\n<p><strong>\u00c7far\u00eb do t\u00eb ndodh\u00eb n\u00ebse vendosni nj\u00eb kufi t\u00eb parakohsh\u00ebm p\u00ebr memorien?<\/strong><\/p>\n<p>N\u00ebse konteneri tejkalon kufirin e memorieve, ai do t\u00eb mbyllet p\u00ebr shkak t\u00eb OOM-Killed. Dhe do t\u00eb ri-startohet, n\u00ebse \u00ebsht\u00eb e mundur sipas RestartPolicy, ku vlera p\u00ebr parazgjedhje \u00ebsht\u00eb <code>Always<\/code>.<\/p>\n<p><strong>\u00c7far\u00eb do t\u00eb ndodh\u00eb n\u00ebse nuk specifikoni memorien e k\u00ebrkuar?<\/strong><\/p>\n<p>Kubernetes do t\u00eb marr\u00eb kufirin dhe do ta vendos\u00eb at\u00eb si vler\u00ebn e parazgjedhjes.<\/p>\n<p><strong>\u00c7far\u00eb mund t\u00eb ndodh\u00eb n\u00ebse nuk specifikoni memorien e kufizuar?<\/strong><\/p>\n<p>Kontejneri nuk kan\u00eb kufizime; ai mund t\u00eb p\u00ebrdor\u00eb aq memorie sa d\u00ebshiron. Megjithat\u00eb, n\u00ebse fillon t\u00eb p\u00ebrdor\u00eb t\u00eb gjith\u00eb memorjen e disponueshme t\u00eb nodit, OOM do ta vras\u00eb. Pastaj, kontejneri do t\u00eb ribashkohet, n\u00ebse kjo \u00ebsht\u00eb e mundur sipas RestartPolicy.<\/p>\n<p><strong>\u00c7far\u00eb ndodh n\u00ebse nuk p\u00ebrcaktohen kufij t\u00eb memories?<\/strong><\/p>\n<p>Ky \u00ebsht\u00eb skenari m\u00eb i keq: planifikuesi nuk e di se sa burime i duhen kontejnerit, dhe kjo mund t\u00eb shkaktoj\u00eb probleme serioze n\u00eb nod\u00eb. N\u00eb k\u00ebt\u00eb rast, do t\u00eb ishte mir\u00eb t\u00eb kishte kufizime si\u00e7 jan\u00eb DefaultLimit (t\u00eb vendosura nga LimitRange). Nuk ka kufizime t\u00eb paracaktuara \u2014 Pod nuk ka kufizime dhe mund t\u00eb p\u00ebrdor\u00eb aq memorie sa d\u00ebshiron.<\/p>\n<p>N\u00ebse memoria e k\u00ebrkuar \u00ebsht\u00eb m\u00eb shum\u00eb se ajo q\u00eb nodi mund t\u00eb ofroj\u00eb \u2014 Pod nuk do t\u00eb planifikohet. \u00cbsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb mbani mend se <code>Requests.memory<\/code> nuk \u00ebsht\u00eb vlera minimale. Kjo \u00ebsht\u00eb nj\u00eb p\u00ebrshkrim i sasis\u00eb s\u00eb memories q\u00eb \u00ebsht\u00eb e mjaftueshme p\u00ebr funksionimin e vazhduesh\u00ebm t\u00eb kontejnerit. <\/p>\n<p>Vizita e zakonshme \u00ebsht\u00eb t\u00eb vendoset e nj\u00ebjta vler\u00eb p\u00ebr <code>request.memory<\/code> dhe <code>limit.memory<\/code>. K\u00ebshtu, Kubernetes nuk do ta planifikoj\u00eb Podin n\u00eb nj\u00eb nod\u00eb t\u00eb cil\u00ebn ka mjaftuesh\u00ebm memorie p\u00ebr t\u00eb nisur Pod, por jo mjaftuesh\u00ebm p\u00ebr t\u00eb funksionuar. Mbani mend: kur planifikohet Pod, Kubernetes merr parasysh vet\u00ebm <code>requests.memory<\/code>, dhe <code>limits.memory<\/code> nuk merr parasysh.<\/p>\n<h2>CPU: k\u00ebrkes\u00eb dhe kufizim<\/h2>\n<p><\/p>\n<pre><code class=\"plaintext\">containers:\n...\n resources:\n   requests:\n     cpu: 1\n   limits:\n     cpu: &quot;1200m&quot;\n<\/code><\/pre>\n<p>\nCPU n\u00eb Kubernetes \u00ebsht\u00eb pak m\u00eb i komplikuar. Duke u kthyer n\u00eb figur\u00ebn q\u00eb tregon lidhjen midis Kubernetes dhe Docker, mund t\u00eb v\u00ebresh se <code>request.cpu<\/code> p\u00ebrputhet <code>--cpu-shares<\/code>, nd\u00ebrsa <code>limit.cpu<\/code> korrespondon me flamurin <code>cpus<\/code> n\u00eb Docker.<\/p>\n<p>CPU q\u00eb k\u00ebrkon Kubernetes, shum\u00ebzohet me 1024 \u2014 proporcioni i cikleve t\u00eb CPU. N\u00ebse d\u00ebshiron t\u00eb k\u00ebrkosh 1 b\u00ebrtham\u00eb t\u00eb plot\u00eb, at\u00ebher\u00eb duhet t\u00eb shtosh <code>cpu: 1<\/code>, si\u00e7 tregohet m\u00eb lart. <\/p>\n<p>K\u00ebrkesa p\u00ebr nj\u00eb b\u00ebrtham\u00eb t\u00eb plot\u00eb (proporcioni = 1024) nuk n\u00ebnkupton q\u00eb kontejneri yt do ta marr\u00eb at\u00eb. N\u00ebse kompjuteri yt prit\u00ebs ka vet\u00ebm nj\u00eb b\u00ebrtham\u00eb, dhe po p\u00ebrdor m\u00eb shum\u00eb se nj\u00eb kontejner, t\u00eb gjith\u00eb kontejner\u00ebt duhet t\u00eb ndajn\u00eb kolektivisht CPU-n\u00eb e disponueshme. Si ndodh kjo? Le t\u00eb shikojm\u00eb figur\u00ebn.<\/p>\n<p><img decoding=\"async\" alt=\"Si t\u00eb qaseni n\u00eb burimet e Kubernetes Pod\" src=\"\/wp-content\/uploads\/2020\/09\/7f4b20642708ef3a7e773d7900161267.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nK\u00ebrkesa p\u00ebr CPU \u2014 sistem me nj\u00eb b\u00ebrtham\u00eb<\/p>\n<p>Le t\u00eb imagjinojm\u00eb se ke nj\u00eb sistem prit\u00ebs me nj\u00eb b\u00ebrtham\u00eb, n\u00eb t\u00eb cilin jan\u00eb aktivizuar kontejner\u00ebt. N\u00ebna (Kubernetes) ka pjekur nj\u00eb tort\u00eb (CPU) dhe d\u00ebshiron ta ndaj\u00eb at\u00eb midis f\u00ebmij\u00ebve (kontejner\u00ebve). Tre f\u00ebmij\u00eb duan nj\u00eb tort\u00eb t\u00eb plot\u00eb (proporcioni = 1024), nj\u00eb tjet\u00ebr f\u00ebmij\u00eb d\u00ebshiron gjysm\u00ebn e tort\u00ebs (512). N\u00ebna d\u00ebshiron t\u00eb jet\u00eb e drejt\u00eb dhe b\u00ebn nj\u00eb llogaritje t\u00eb thjesht\u00eb.<\/p>\n<pre><code class=\"plaintext\"># \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0438\u0440\u043e\u0433\u043e\u0432 \u0445\u043e\u0442\u044f\u0442 \u0434\u0435\u0442\u0438?\n# 3 \u0440\u0435\u0431\u0435\u043d\u043a\u0430 \u0445\u043e\u0442\u044f\u0442 \u043f\u043e \u0446\u0435\u043b\u043e\u043c\u0443 \u043f\u0438\u0440\u043e\u0433\u0443 \u0438 \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0445\u043e\u0447\u0435\u0442 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0443 \u043f\u0438\u0440\u043e\u0433\u0430\ncakesNumberKidsWant = (3 * 1) + (1 * 0.5) = 3.5\n# \u0412\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a:\n3 (\u0440\u0435\u0431\u0435\u043d\u043a\u0430\/\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430) * 1 (\u0446\u0435\u043b\u044b\u0439 \u043f\u0438\u0440\u043e\u0433\/\u043f\u043e\u043b\u043d\u043e\u0435 \u044f\u0434\u0440\u043e) + 1 (\u0440\u0435\u0431\u0435\u043d\u043e\u043a\/\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440) * 0.5 (\u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u043f\u0438\u0440\u043e\u0433\u0430\/\u043f\u043e\u043b\u043e\u0432\u0438\u043d\u0430 \u044f\u0434\u0440\u0430)\n# \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0438\u0440\u043e\u0433\u043e\u0432 \u0438\u0441\u043f\u0435\u0447\u0435\u043d\u043e?\navailableCakesNumber = 1\n# \u0421\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0438\u0440\u043e\u0433\u0430 (\u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e) \u0434\u0435\u0442\u0438 \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c?\nnewMaxRequest = 1 \/ 3.5 =~ 28%<\/code><\/pre>\n<p>\nDuke nga llogaritja, tre f\u00ebmij\u00eb do t\u00eb marrin 28% t\u00eb b\u00ebrtham\u00ebs, dhe jo nj\u00eb b\u00ebrtham\u00eb t\u00eb plot\u00eb. F\u00ebmija i kat\u00ebrt do t\u00eb marr\u00eb 14% t\u00eb b\u00ebrtham\u00ebs s\u00eb plot\u00eb, dhe jo gjysm\u00ebn. Por gjith\u00e7ka do t\u00eb ishte ndryshe n\u00ebse do t\u00eb keni nj\u00eb sistem me shum\u00eb b\u00ebrthama.<\/p>\n<p><img decoding=\"async\" alt=\"Si t\u00eb qaseni n\u00eb burimet e Kubernetes Pod\" src=\"\/wp-content\/uploads\/2020\/09\/7bf71d97add9adcf7cf0260941526590.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nK\u00ebrkesa p\u00ebr CPU \u2014 sistem me shum\u00eb b\u00ebrthama (4)<\/p>\n<p>N\u00eb imazhin m\u00eb lart, shihet se tre f\u00ebmij\u00eb duan nga nj\u00eb tort\u00eb t\u00eb plot\u00eb, dhe nj\u00eb \u2014 gjysm\u00ebn. Meqen\u00ebse n\u00ebna ka pjekur kat\u00ebr torta, \u00e7do f\u00ebmij\u00eb do t\u00eb marr\u00eb aq sa d\u00ebshiron. N\u00eb nj\u00eb sistem me shum\u00eb b\u00ebrthama, burimet e procesorit shp\u00ebrndahen n\u00eb t\u00eb gjitha b\u00ebrtham\u00ebs q\u00eb jan\u00eb n\u00eb dispozicion. N\u00ebse nj\u00eb kontejner \u00ebsht\u00eb i kufizuar n\u00eb m\u00eb pak se nj\u00eb b\u00ebrtham\u00eb t\u00eb plot\u00eb CPU, ai mund ta p\u00ebrdor\u00eb at\u00eb n\u00eb 100%. <\/p>\n<p>Llogaritjet e m\u00ebsip\u00ebrme jan\u00eb thjeshtuar p\u00ebr t\u00eb kuptuar se si shp\u00ebrndahet CPU midis kontejner\u00ebve. Sigurisht, p\u00ebrve\u00e7 vet\u00eb kontejner\u00ebve, ka edhe procese t\u00eb tjera q\u00eb gjithashtu p\u00ebrdorin burimet e CPU. Kur proceset n\u00eb nj\u00eb kontejner jan\u00eb n\u00eb pritje, t\u00eb tjer\u00ebt mund t\u00eb p\u00ebrdorin burimin e tij. <code>CPU: &quot;200m&quot;<\/code> p\u00ebrputhet <code>CPU: 0,2<\/code>, q\u00eb do t\u00eb thot\u00eb rreth 20% t\u00eb nj\u00eb b\u00ebrthame.<\/p>\n<p>Tani le t\u00eb flasim p\u00ebr <code>limit.cpu<\/code>. CPU, i cili \u00ebsht\u00eb i kufizuar nga Kubernetes, shum\u00ebzohet me 100. Rezultati \u00ebsht\u00eb sasia e koh\u00ebs q\u00eb nj\u00eb kontejner mund t\u00eb p\u00ebrdor\u00eb \u00e7do 100 \u00b5s (<code>cpu-period<\/code>). <\/p>\n<p><code>limit.cpu<\/code> p\u00ebrputhet me flagun Docker <code>--cpus<\/code>. Ky \u00ebsht\u00eb nj\u00eb kombinim i ri i t\u00eb vjetrave <code>--cpu-period<\/code> dhe <code>--cpu-quota<\/code>. Duke e vendosur, ne tregojm\u00eb se sa burime CPU mund t\u00eb p\u00ebrdor\u00eb maksimalisht nj\u00eb konteiner deri sa t\u00eb filloj\u00eb ngadal\u00ebsimi:<\/p>\n<ul>\n<li><strong>cpus<\/strong> \u2014 kombinim <code>cpu-period<\/code> dhe <code>cpu-quota. cpus = 1.5<\/code> barazohet me vendosjen e <code>cpu-period = 100000<\/code> dhe <code>cpu-quota = 150000<\/code>;<\/li>\n<li><strong>cpu-period<\/strong> \u2014 periudh\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Completely_Fair_Scheduler\">planifikuesi CPU CFS<\/a><\/noindex>, me default 100 mikrosekonda;<\/li>\n<li><strong>cpu-quota<\/strong> \u2014 numri i mikrosekondave brenda <code>cpu-period<\/code>, me t\u00eb cilat \u00ebsht\u00eb i kufizuar konteineri.<\/li>\n<\/ul>\n<p>\n<strong>\u00c7far\u00eb ndodh n\u00ebse vendosni nj\u00eb CPU t\u00eb pap\u00ebrballuesh\u00ebm?<\/strong><\/p>\n<p>N\u00ebse konteineri ka nevoj\u00eb p\u00ebr m\u00eb shum\u00eb se sa \u00ebsht\u00eb vendosur, ai do t\u00eb vjedh\u00eb CPU nga proceset e tjera.<\/p>\n<p><strong>\u00c7far\u00eb ndodh n\u00ebse vendosni nj\u00eb kufi t\u00eb pamjaftuesh\u00ebm CPU?<\/strong><\/p>\n<p>Pasi burimi i CPU \u00ebsht\u00eb i rregulluar, ngadal\u00ebsimi do t\u00eb aktivizohet.<\/p>\n<p><strong>\u00c7far\u00eb do t\u00eb ndodh\u00eb n\u00ebse nuk caktoni k\u00ebrkes\u00ebn CPU?<\/strong><\/p>\n<p>Ashtu si n\u00eb rastin e memories, vlera e k\u00ebrkes\u00ebs \u00ebsht\u00eb e barabart\u00eb me kufirin.<\/p>\n<p><strong>\u00c7far\u00eb ndodh n\u00ebse nuk caktoni kufirin CPU?<\/strong><\/p>\n<p>Konteineri do t\u00eb p\u00ebrdor\u00eb aq CPU sa i nevojitet. N\u00ebse n\u00eb hap\u00ebsir\u00ebn e emrave \u00ebsht\u00eb caktuar nj\u00eb politik\u00eb CPU me defaut (LimitRange), at\u00ebher\u00eb ky kufi p\u00ebrdoret edhe p\u00ebr konteinerin.<\/p>\n<p><strong>\u00c7far\u00eb ndodh n\u00ebse nuk caktoni as k\u00ebrkes\u00ebn as kufirin CPU?<\/strong><\/p>\n<p>Si n\u00eb rastin e memories, ky \u00ebsht\u00eb skenari m\u00eb i keq. Planifikuesi nuk e di sa burime i nevojiten kontejnerit tuaj, dhe kjo mund t\u00eb shkaktoj\u00eb probleme t\u00eb r\u00ebnda n\u00eb nod. P\u00ebr ta evituar k\u00ebt\u00eb, duhet t\u00eb vendosni kufizime t\u00eb paracaktuara p\u00ebr hap\u00ebsirat emri (LimitRange).<\/p>\n<p>Kujtoni: n\u00ebse k\u00ebrkoni m\u00eb shum\u00eb CPU sesa mund t\u00eb ofrojn\u00eb nodet, at\u00ebher\u00eb Pod-i nuk do t\u00eb planifikohet. <code>Requests.cpu<\/code> nuk \u00ebsht\u00eb vlera minimale, por nj\u00eb vler\u00eb e mjaftueshme p\u00ebr t\u00eb nisur Pod-in dhe p\u00ebr t\u00eb funksionuar pa probleme. N\u00ebse aplikacioni nuk b\u00ebn llogaritje t\u00eb nd\u00ebrlikuara, opsioni m\u00eb i mir\u00eb \u00ebsht\u00eb t\u00eb vendosni <code>request.cpu &lt;= 1<\/code> dhe t\u00eb nisni aq shum\u00eb replika sa nevojitet.<\/p>\n<h2>Sasia ideale e burimeve t\u00eb k\u00ebrkuara ose kufizimeve t\u00eb burimeve<\/h2>\n<p>\nKemi m\u00ebsuar p\u00ebr kufizimet e burimeve kompjuterike. Tani \u00ebsht\u00eb koha t\u00eb p\u00ebrgjigjemi n\u00eb pyetjen: \"Sa burime i nevojiten Pod-it tim p\u00ebr t\u00eb funksionuar aplikacioni pa probleme? \u00c7far\u00eb sasia \u00ebsht\u00eb ideale?\". <\/p>\n<p>Fatkeq\u00ebsisht, nuk ka p\u00ebrgjigje t\u00eb sakt\u00eb p\u00ebr k\u00ebto pyetje. N\u00ebse nuk e dini si funksionon aplikacioni juaj, sa CPU ose memorie i nevojitet, opsioni m\u00eb i mir\u00eb \u00ebsht\u00eb t\u00eb jepni aplikacionit shum\u00eb memorie dhe CPU, dhe pastaj t\u00eb ecni me teste performanc\u00eb.<\/p>\n<p>P\u00ebrve\u00e7 testeve t\u00eb performanc\u00ebs, gjat\u00eb jav\u00ebs ndiqni sjelljen e aplikacionit n\u00eb monitorim. N\u00ebse grafiket tregojn\u00eb se aplikacioni juaj konsumon m\u00eb pak burime sesa keni k\u00ebrkuar, mund t\u00eb reduktoni numrin e CPU ose memorjes s\u00eb k\u00ebrkuar.<\/p>\n<p>Si shembull, shikoni k\u00ebt\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/grafana\/dashboards\/7187\">dashboard Grafana<\/a><\/noindex>. Ai tregon diferenc\u00ebn midis burimeve t\u00eb k\u00ebrkuara ose kufirit t\u00eb burimeve dhe p\u00ebrdorimit aktual t\u00eb burimeve.<\/p>\n<h2>P\u00ebrfundimi<\/h2>\n<p>\nK\u00ebrkesa dhe kufizimi i burimeve ndihmojn\u00eb n\u00eb mb\u00ebshtetje t\u00eb funksionimit t\u00eb klasterit Kubernetes. Konfigurimi i duhur i kufijve minimizon kostot dhe mban aplikacionet gjithmon\u00eb n\u00eb funksion.<\/p>\n<p>N\u00eb p\u00ebrmbledhje, duhet t\u00eb mbani mend disa pika:<\/p>\n<ol>\n<li>Burimet e k\u00ebrkuara jan\u00eb konfigurimi q\u00eb merret parasysh gjat\u00eb fillimit (kur Kubernetes planifikon vendosjen e aplikacionit). N\u00eb t\u00eb kund\u00ebrt, kufizimi i burimeve \u00ebsht\u00eb i r\u00ebnd\u00ebsish\u00ebm gjat\u00eb funksionimit \u2014 kur aplikacioni \u00ebsht\u00eb tashm\u00eb n\u00eb nj\u00ebsin\u00eb.<\/li>\n<li>N\u00eb krahasim me memorin\u00eb, CPU \u00ebsht\u00eb nj\u00eb burim i rregulluesh\u00ebm. N\u00eb rast t\u00eb munges\u00ebs s\u00eb CPU, Pod-i juaj nuk do t\u00eb mbyllet, do t\u00eb aktivizohet mekanizmi i ngadal\u00ebsimit.<\/li>\n<li>K\u00ebrkuar burimet dhe kufijt\u00eb e burimeve nuk jan\u00eb vlera minimale dhe maksimale! Duke p\u00ebrcaktuar burimet e k\u00ebrkuara, ju garantoni q\u00eb aplikacionesh do t\u00eb funksionojn\u00eb pa probleme.<\/li>\n<li>Nj\u00eb praktik\u00eb e mir\u00eb \u00ebsht\u00eb t\u00eb vendosni k\u00ebrkes\u00ebn p\u00ebr memorje, e cila \u00ebsht\u00eb e barabart\u00eb me kufirin e memorjes.<\/li>\n<li>\u00cbsht\u00eb mir\u00eb t\u00eb vendosni k\u00ebrkes\u00ebn p\u00ebr <code>CPU &lt;=1<\/code>, n\u00ebse aplikacioni nuk kryen llogaritje komplekse.<\/li>\n<li>N\u00ebse k\u00ebrkoni m\u00eb shum\u00eb burime se sa ka n\u00eb nod, Pod kurr\u00eb nuk do t\u00eb planifikohet n\u00eb k\u00ebt\u00eb nod.<\/li>\n<li>P\u00ebr t\u00eb p\u00ebrcaktuar numrin e sakt\u00eb t\u00eb burimeve t\u00eb k\u00ebrkuara\/kufijve t\u00eb burimeve, p\u00ebrdorni testimin e ngarkes\u00ebs dhe monitorimin.<\/li>\n<\/ol>\n<p>\nShpresoj q\u00eb ky artikull t'ju ndihmoj\u00eb t\u00eb kuptoni konceptin themelor t\u00eb kufizimit t\u00eb burimeve. Dhe do t\u00eb jeni n\u00eb gjendje t\u00eb aplikoni k\u00ebto njohuri n\u00eb pun\u00ebn tuaj.<\/p>\n<p>Suksese!<\/p>\n<p><strong>\u00c7far\u00eb tjet\u00ebr mund t\u00eb lexoni:<\/strong><\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/500504\/\">V\u00ebzhgueshm\u00ebria SRE: hap\u00ebsirat em\u00ebrtuese dhe struktura e metrikeve<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\/blog\/poleznye-instrumenty-dlya-kubernetes\">90+ mjete t\u00eb dobishme p\u00ebr Kubernetes: implementim, menaxhim, monitorim, siguri dhe jo vet\u00ebm<\/a><\/noindex>.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/tele.click\/k8s_mail\">Kanalin ton\u00eb Rreth Kubernetes n\u00eb Telegram<\/a><\/noindex>.<\/li>\n<\/ol>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/516014\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>The Reward by Tohad \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes \u043e\u0431\u044b\u0447\u043d\u043e \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043e\u0431\u0440\u0430\u0437 Docker \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes. \u041d\u043e \u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0438\u0445 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":94263,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-94262","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"The Reward by Tohad \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes \u043e\u0431\u044b\u0447\u043d\u043e \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043e\u0431\u0440\u0430\u0437 Docker \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes. \u041d\u043e \u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0438\u0445 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\" \/>\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\/kak-poluchit-dostup-k-resursam-kubernetes-pod\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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\u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c Kubernetes Pod | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"The Reward by Tohad \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes \u043e\u0431\u044b\u0447\u043d\u043e \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043e\u0431\u0440\u0430\u0437 Docker \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes. \u041d\u043e \u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0438\u0445 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-poluchit-dostup-k-resursam-kubernetes-pod\" \/>\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-09-14T17:42:34+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-14T17:42:34+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\udd47Si t\u00eb aksesoni burimet e Kubernetes Pod | ProHoster","description":"Shp\u00ebrblimi nga Tohad. N\u00eb fillim t\u00eb pun\u00ebs me Kubernetes, zakonisht harrohet ndarja e burimeve t\u00eb kontejner\u00ebve. N\u00eb k\u00ebt\u00eb hap mjafton t\u00eb sigurohemi q\u00eb imazhi Docker funksionon dhe mund t\u00eb implementohet n\u00eb klasterin Kubernetes. Por m\u00eb von\u00eb, aplikacioni duhet t\u00eb vendoset n\u00eb nj\u00eb klaster prodhimi s\u00eb bashku me aplikacione t\u00eb tjera. P\u00ebr k\u00ebt\u00eb, \u00ebsht\u00eb e nevojshme t\u00eb ndahen burime p\u00ebr kontejnerin dhe t\u00eb sigurohemi q\u00eb ato jan\u00eb t\u00eb mjaftueshme.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-poluchit-dostup-k-resursam-kubernetes-pod","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\u041a\u0430\u043a \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c Kubernetes Pod | ProHoster","og:description":"The Reward by Tohad \u0412 \u043d\u0430\u0447\u0430\u043b\u0435 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Kubernetes \u043e\u0431\u044b\u0447\u043d\u043e \u0437\u0430\u0431\u044b\u0432\u0430\u044e\u0442 \u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432. \u041d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043e\u0431\u0440\u0430\u0437 Docker \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 Kubernetes. \u041d\u043e \u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u044b\u0434\u0435\u043b\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0434\u043b\u044f \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430 \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0438\u0445 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/kak-poluchit-dostup-k-resursam-kubernetes-pod","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-09-14T17:42:34+00:00","article:modified_time":"2020-09-14T17:42:34+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"94262","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 11:30:27","updated":"2022-10-02 18:20:09"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/94262","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=94262"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/94262\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/94263"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=94262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=94262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=94262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}