{"id":35226,"date":"2019-10-31T22:03:05","date_gmt":"2019-10-31T19:03:05","guid":{"rendered":"https:\/\/prohoster.info\/blog\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator\/"},"modified":"2019-10-31T22:03:05","modified_gmt":"2019-10-31T19:03:05","slug":"gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","title":{"rendered":"T\u00eb krijosh nj\u00eb Kubernetes-klaster \u00ebsht\u00eb e thjesht\u00eb dhe e p\u00ebrshtatshme? Anoncojm\u00eb addon-operatorin","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"T\u00eb krijosh nj\u00eb Kubernetes-klaster \u00ebsht\u00eb e thjesht\u00eb dhe e p\u00ebrshtatshme? Anoncojm\u00eb addon-operatorin\" src=\"\/wp-content\/uploads\/8df3959f765d5d1bc8d427d3258aacc4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPas <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">shell-operator<\/a><\/noindex> ne paraqesin v\u00ebllain e tij m\u00eb t\u00eb madh \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\">addon-operator<\/a><\/noindex>. Ky \u00ebsht\u00eb nj\u00eb projekt Open Source, i cili p\u00ebrdoret p\u00ebr t\u00eb instaluar n\u00eb klasterin Kubernetes komponent\u00ebt sistemor\u00eb, t\u00eb cil\u00ebt mund t\u00eb quhen me fjal\u00ebn e p\u00ebrgjithshme \u2014 shtesa.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Pse n\u00eb t\u00eb v\u00ebrtet\u00eb ndonj\u00eb shtes\u00eb?<\/h2>\n<p>\nNuk \u00ebsht\u00eb sekret q\u00eb Kubernetes nuk \u00ebsht\u00eb nj\u00eb produkt i gatsh\u00ebm gjith\u00e7ka-n\u00eb-nj\u00eb, dhe p\u00ebr nd\u00ebrtimin e nj\u00eb klasteri 't\u00eb rritur' do t\u00eb nevojiten shtesa t\u00eb ndryshme. Addon-operator do t\u00eb ndihmoj\u00eb n\u00eb instalimin, konfigurimin dhe mbajtjen e k\u00ebtyre shtesave n\u00eb gjendje t\u00eb p\u00ebrdit\u00ebsuar.<\/p>\n<p>Nevoja p\u00ebr komponent\u00eb shtes\u00eb n\u00eb klaster \u00ebsht\u00eb zbuluar n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">presentation<\/a><\/noindex> koleget <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/driusha\/\" class=\"user_link\">driusha<\/a><\/noindex>. N\u00eb p\u00ebrmbledhje, situata me Kubernetes n\u00eb k\u00ebt\u00eb moment \u00ebsht\u00eb e till\u00eb q\u00eb p\u00ebr nj\u00eb instalim t\u00eb thjesht\u00eb 'p\u00ebr t\u00eb luajtur' mund t\u00eb mjaftohen me komponent\u00ebt nga kutia, p\u00ebr zhvilluesit dhe testimin mund t\u00eb shtohet Ingress, por p\u00ebr nj\u00eb instalim t\u00eb plot\u00eb, p\u00ebr t\u00eb cilin mund t\u00eb thuhet 'prodhimi juaj \u00ebsht\u00eb gati', nevojitet t\u00eb shtohen rreth dhjet\u00eb shtesa t\u00eb ndryshme: di\u00e7ka p\u00ebr monitorimin, di\u00e7ka p\u00ebr logjet, mos harroni ingress dhe cert-manager, ndarja e grupeve t\u00eb nyjeve, shtimi i politikave rrjeti, p\u00ebrgatitja me cil\u00ebsimet sysctl dhe pod autoscaler\u2026<\/p>\n<p><img decoding=\"async\" alt=\"T\u00eb krijosh nj\u00eb Kubernetes-klaster \u00ebsht\u00eb e thjesht\u00eb dhe e p\u00ebrshtatshme? Anoncojm\u00eb addon-operatorin\" src=\"\/wp-content\/uploads\/ab3bed8ee8b29d4e51905e45c908f078.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Cila \u00ebsht\u00eb specifika e pun\u00ebs me to?<\/h2>\n<p>\nSi\u00e7 e tregon praktika, nj\u00eb instalim nuk mjafton. P\u00ebr nj\u00eb pun\u00eb t\u00eb k\u00ebndshme me klasterin, shtesat do t\u00eb duhet t\u00eb p\u00ebrdit\u00ebsohen, t\u00eb \u00e7aktivizohen (t\u00eb hiqen nga klasteri), dhe ndoshta disa do t\u00eb d\u00ebshirohet t\u00eb testohen para instalimit n\u00eb klasterin e prodhimit.<\/p>\n<p>Pra, ndoshta do t\u00eb mjaftonte dhe Ansible? Mundet. Por <b>shtesat e plota n\u00eb p\u00ebrgjith\u00ebsi nuk jetojn\u00eb pa konfigurime<\/b>. K\u00ebto cil\u00ebsime mund t\u00eb ndryshojn\u00eb n\u00eb var\u00ebsi t\u00eb variantit t\u00eb klasit (aws, gce, azure, bare-metal, do, ...). Disa cil\u00ebsime nuk mund t\u00eb p\u00ebrcaktohen paraprakisht \u2014 duhet t'i merrni nga klasi. Dhe klasi nuk \u00ebsht\u00eb statik: p\u00ebr disa cil\u00ebsime do t\u00eb duhet t\u00eb monitoroni ndryshimet. Dhe k\u00ebtu Ansible nuk mjafton: nevojitet nj\u00eb program q\u00eb jeton n\u00eb klas, dmth. Kubernetes Operator.<\/p>\n<p>Ata q\u00eb e provuan n\u00eb pun\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\">shell-operator<\/a><\/noindex>, do t\u00eb thon\u00eb se detyrat e instalimit dhe p\u00ebrdit\u00ebsimit t\u00eb shtesave dhe ndjekjes s\u00eb konfigurimeve mund t\u00eb zgjidhen plot\u00ebsisht me <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\/blob\/master\/HOOKS.md\">hukut<\/a><\/noindex> p\u00ebr shell-operator. Mund t\u00eb shkruhet nj\u00eb skript q\u00eb do t\u00eb b\u00ebj\u00eb nj\u00eb <code>kubectl apply<\/code> dhe do t\u00eb ndjek\u00eb, p\u00ebr shembull, ConfigMap, ku do t\u00eb ruhen konfigurimet. Kjo \u00ebsht\u00eb e realizuar n\u00eb addon-operator.<\/p>\n<h2>Si \u00ebsht\u00eb organizuar n\u00eb addon-operator?<\/h2>\n<p>\nDuke krijuar nj\u00eb zgjidhje t\u00eb re, ne u bazuam n\u00eb principet e m\u00ebposhtme:<\/p>\n<ul>\n<li> Instaluesi i shtesave duhet t\u00eb mb\u00ebshtes\u00eb <b>shabllonizimin dhe konfigurimin deklarativ.<\/b>. Nuk nuk b\u00ebjm\u00eb skripte magjike q\u00eb instalojn\u00eb shtesa. Addon-operator p\u00ebrdor Helm p\u00ebr t\u00eb instaluar shtesa. P\u00ebr instalim, duhet t\u00eb krijoni nj\u00eb chart dhe t\u00eb p\u00ebrcaktoni values, q\u00eb do t\u00eb p\u00ebrdoren p\u00ebr konfigurim. <\/li>\n<li> Konfigurimet mund <b>t\u00eb gjenerohen gjat\u00eb instalimit<\/b>, mund t\u00eb <b>merren nga klasteri<\/b>, ose <b>t\u00eb marrin p\u00ebrdit\u00ebsime<\/b>, duke ndjekur burimet e klasterit. K\u00ebto operacione mund t\u00eb realizohen me an\u00eb t\u00eb hook-\u00ebve.<\/li>\n<li> Konfigurimet mund <b>t\u00eb ruhet n\u00eb klaster<\/b>. P\u00ebr ruajtjen e konfigurimeve n\u00eb klaster krijohet nj\u00eb ConfigMap\/addon-operator dhe Addon-operatori ndjek ndryshimet e k\u00ebtij ConfigMap. Addon-operatori i jep hook-\u00ebve akses n\u00eb konfigurimet p\u00ebrmes marr\u00ebveshjeve t\u00eb thjeshta.<\/li>\n<li> <b>Shtesa varet nga konfigurimet<\/b>. N\u00ebse konfigurimet ndryshojn\u00eb, at\u00ebher\u00eb Addon-operatori nxjerr Helm-chart me values t\u00eb reja. Bashkimi i Helm-chart, values p\u00ebr t\u00eb dhe hook-\u00ebve e kemi quajtur modul (shih m\u00eb posht\u00eb p\u00ebr m\u00eb shum\u00eb).<\/li>\n<li> <b>Staging<\/b>. Nuk ka skripte t\u00eb magjishme p\u00ebr l\u00ebshimin. Mekanizmi i p\u00ebrdit\u00ebsimeve \u00ebsht\u00eb i ngjash\u00ebm me nj\u00eb aplikacion t\u00eb zakonsh\u00ebm\u2014ngjitni shtesat dhe addon-operatorin n\u00eb imazh, etiketoni dhe nxirrni.<\/li>\n<li> <b>Kontrolli i rezultateve<\/b>. Addon-operatori ka aft\u00ebsin\u00eb t\u00eb jap\u00eb metrikat p\u00ebr Prometheus.<\/li>\n<\/ul>\n<p><\/p>\n<h2>\u00c7far\u00eb \u00ebsht\u00eb nj\u00eb shtes\u00eb n\u00eb addon-operator?<\/h2>\n<p>\nNj\u00eb shtes\u00eb mund t\u00eb konsiderohet gjith\u00e7ka q\u00eb shton funksionalitete t\u00eb reja n\u00eb klaster. P\u00ebr shembull, instalimi i Ingress-it \u00ebsht\u00eb nj\u00eb shembull i shk\u00eblqyer i nj\u00eb shtese. Kjo mund t\u00eb jet\u00eb \u00e7do operator ose kontrollues me CRD-n\u00eb e tij: prometheus-operator, cert-manager, kube-controller-manager, etj. Ose di\u00e7ka e vog\u00ebl, por q\u00eb leht\u00ebson funksionimin\u2014p\u00ebr shembull, nj\u00eb kopjues sekret q\u00eb kopjon sekretet e regjistrit n\u00eb hap\u00ebsirat e reja t\u00eb emrave, ose nj\u00eb rregullues sysctl q\u00eb konfiguron parametrat sysctl n\u00eb nyje t\u00eb reja.<\/p>\n<p>P\u00ebr realizimin e shtesave, Addon-operatori ofron disa koncepte:<\/p>\n<ul>\n<li> <b>Helm-chart<\/b> p\u00ebrdoret p\u00ebr t\u00eb instaluar softuer t\u00eb ndrysh\u00ebm n\u00eb klaster\u2014p\u00ebr shembull, Prometheus, Grafana, nginx-ingress. N\u00ebse komponenti q\u00eb ju nevojitet ka nj\u00eb Helm-chart, at\u00ebher\u00eb ta instaloni at\u00eb me an\u00eb t\u00eb Addon-operatorit do t\u00eb jet\u00eb shum\u00eb e thjesht\u00eb.<\/li>\n<li> <b>Ruajtja e values<\/b>. Helm-chart-\u00ebt zakonisht kan\u00eb shum\u00eb konfigurime t\u00eb ndryshme, t\u00eb cilat mund t\u00eb ndryshojn\u00eb me kalimin e koh\u00ebs. Addon-operatori mb\u00ebshtet ruajtjen e k\u00ebtyre konfigurimeve dhe ka aft\u00ebsin\u00eb t\u00eb ndiqet p\u00ebr ndryshimet e tyre, p\u00ebr t\u00eb rinovuar Helm-chart-in me vlera t\u00eb reja.<\/li>\n<li> <b>Hukodat<\/b> \u2014 jan\u00eb skedar\u00eb ekzekutiv\u00eb q\u00eb Addon-operator i ekzekuton n\u00eb ngjarje dhe q\u00eb kan\u00eb qasje n\u00eb magazin\u00ebn e values. Hak-u mund t\u00eb ndjek\u00eb ndryshimet n\u00eb klaster dhe t\u00eb p\u00ebrdit\u00ebsoj\u00eb vlerat n\u00eb magazin\u00ebn e values. Kjo do t\u00eb thot\u00eb se me ndihm\u00ebn e hak-\u00ebve mund t\u00eb b\u00ebhet discovery p\u00ebr t\u00eb mbledhur vlera nga klasteri gjat\u00eb fillimit ose sipas nj\u00eb orari, ose mund t\u00eb b\u00ebhet discovery vazhduesh\u00ebm, duke mbledhur vlera nga klasteri p\u00ebrmes ndryshimeve n\u00eb klaster.<\/li>\n<li> <b>Moduli<\/b> \u2014 \u00ebsht\u00eb bashkimi i Helm-chart-it, magazin\u00ebs s\u00eb values dhe hak-\u00ebve. Modul\u00ebt mund t\u00eb aktivizohen dhe \u00e7aktivizohen. \u00c7aktivizimi i nj\u00eb moduli \u00ebsht\u00eb heqja e t\u00eb gjith\u00eb l\u00ebshimeve t\u00eb Helm-chart-it. Modul\u00ebt mund t\u00eb p\u00ebrfshijn\u00eb veten dinamike, p\u00ebr shembull, n\u00ebse t\u00eb gjith\u00eb modul\u00ebt e nevojsh\u00ebm jan\u00eb aktivizuar ose n\u00ebse discovery n\u00eb hak-e ka gjetur parametrat e nevojsh\u00ebm \u2014 kjo b\u00ebhet me ndihm\u00ebn e nj\u00eb skripti t\u00eb ndihm\u00ebs enabled.<\/li>\n<li> <b>Hak\u00ebt Globale<\/b>. K\u00ebto jan\u00eb hak\u00eb \"vetvetiu\", ata nuk jan\u00eb t\u00eb p\u00ebrfshir\u00eb n\u00eb modul\u00eb dhe kan\u00eb qasje n\u00eb magazin\u00ebn globale t\u00eb values, vlerat nga e cila jan\u00eb t\u00eb aksesueshme p\u00ebr t\u00eb gjith\u00eb hak-\u00ebt n\u00eb module.<\/li>\n<\/ul>\n<p>\nSi funksionojn\u00eb k\u00ebto pjes\u00eb bashk\u00eb? Le t\u00eb shikojm\u00eb nj\u00eb figur\u00eb nga dokumentacioni:<\/p>\n<p><img decoding=\"async\" alt=\"T\u00eb krijosh nj\u00eb Kubernetes-klaster \u00ebsht\u00eb e thjesht\u00eb dhe e p\u00ebrshtatshme? Anoncojm\u00eb addon-operatorin\" src=\"\/wp-content\/uploads\/c9bb8e5ae78aa5df0d6c4fbf353e4236.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKa dy skenar\u00eb operimi:<\/p>\n<ol>\n<li> Hak-u global aktivizohet nga nj\u00eb ngjarje \u2014 p\u00ebr shembull, kur ndryshon nj\u00eb burim n\u00eb klaster. Ky hak trajton ndryshimet dhe regjistron vlerat e reja n\u00eb magazin\u00ebn globale t\u00eb values. Addon-operatori v\u00ebren se magazina globale \u00ebsht\u00eb ndryshuar dhe aktivizon t\u00eb gjith\u00eb modul\u00ebt. \u00c7do modul, p\u00ebrmes hak-eve t\u00eb tij, p\u00ebrcakton n\u00ebse duhet t\u00eb aktivizohet dhe p\u00ebrdit\u00ebson magazin\u00ebn e tij t\u00eb values. N\u00ebse moduli \u00ebsht\u00eb aktivizuar, Addon-operatori nis instalimin e Helm-chart-it. Helm-chart-it i jan\u00eb t\u00eb aksesueshme vlerat nga magazina e modulit dhe nga magazina globale.<\/li>\n<li> Skenari i dyt\u00eb \u00ebsht\u00eb m\u00eb i thjesht\u00eb: hak-u modular aktivizohet nga nj\u00eb ngjarje, ndryshon vlerat n\u00eb magazin\u00ebn e values t\u00eb modulit. Addon-operatori e v\u00ebren k\u00ebt\u00eb dhe aktivizon Helm-chart-in me vlerat e p\u00ebrdit\u00ebsuara.<\/li>\n<\/ol>\n<p>\nShtesa mund t\u00eb jet\u00eb e realizuar n\u00eb form\u00ebn e nj\u00eb hak-u t\u00eb vet\u00ebm ose si nj\u00eb Helm-chart, ose <b>madje si disa module t\u00eb varura<\/b> \u2014 kjo varet nga kompleksiteti i komponentit q\u00eb po instaloni n\u00eb klaster dhe nga niveli i nevojsh\u00ebm i fleksibilitetit t\u00eb parametrit. P\u00ebr shembull, n\u00eb depo (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">\/examples<\/a><\/noindex>) ka nj\u00eb shtes\u00eb sysctl-tuner, e cila \u00ebsht\u00eb realizuar si nj\u00eb modul i thjesht\u00eb me nj\u00eb hak dhe Helm-chart, si dhe me p\u00ebrdorimin e magazin\u00ebs s\u00eb values, q\u00eb ofron mund\u00ebsin\u00eb p\u00ebr t\u00eb shtuar parametra p\u00ebrmes redaktimit t\u00eb ConfigMap.<\/p>\n<h2>D\u00ebrgimi i p\u00ebrdit\u00ebsimeve<\/h2>\n<p>\nDisa disa fjal\u00eb mbi organizimin e p\u00ebrdit\u00ebsimeve t\u00eb komponenteve q\u00eb instalon Addon-operator.<\/p>\n<p>P\u00ebr t\u00eb nisur Addon-operator n\u00eb klas\u00ebr, nevojitet <b>t\u00eb mbledhim nj\u00eb imazh me shtesa<\/b> si skedar\u00eb hook dhe chart-e Helm, t\u00eb shtojm\u00eb skedarin binar <code>addon-operator<\/code> dhe gjith\u00e7ka tjet\u00ebr q\u00eb nevojitet p\u00ebr hook: <code>bash<\/code>, <code>kubectl<\/code>, <code>jq<\/code>, <code>python<\/code> etj. M\u00eb pas, ky imazh mund t\u00eb zbatohet n\u00eb klas\u00ebr si nj\u00eb aplikacion i zakonsh\u00ebm dhe shum\u00eb mund\u00ebsi do t\u00eb d\u00ebshironit t\u00eb organizonit nj\u00eb skem\u00eb etiketimi. N\u00ebse ka disa klas\u00ebr, mund t\u00eb zbatohet i nj\u00ebjti qasje si me aplikacionet: l\u00ebshimi i ri, version i ri, t\u00eb kalosh n\u00ebp\u00ebr t\u00eb gjitha klasrat dhe t\u00eb ndryshosh imazhin te Pod-\u00ebt. Megjithat\u00eb, n\u00eb rastin e l\u00ebshimit n\u00eb nj\u00eb num\u00ebr t\u00eb duksh\u00ebm klasrash, koncepti i vet\u00eb-p\u00ebrdit\u00ebsimit nga kanali do t\u00eb ishte m\u00eb i p\u00ebrshtatsh\u00ebm. <\/p>\n<p>K\u00ebtu \u00ebsht\u00eb si \u00ebsht\u00eb organizuar:<\/p>\n<ul>\n<li>Kanal \u00ebsht\u00eb n\u00eb thelb nj\u00eb identifikues, q\u00eb mund t\u00eb caktohet n\u00eb \u00e7do m\u00ebnyr\u00eb (p.sh., dev\/stage\/ea\/stable).<\/li>\n<li>Emri i kanalit \u00ebsht\u00eb etiketa e imazhit. Kur nevojitet t\u00eb l\u00ebshosh p\u00ebrdit\u00ebsime n\u00eb kanal, nj\u00eb imazh i ri krijohet dhe etiketizohet me emrin e kanalit.<\/li>\n<li>Kur nj\u00eb imazh i ri shfaqet n\u00eb registry, Addon-operator restartohet dhe nis me imazhin e ri.<\/li>\n<\/ul>\n<p>\nKjo nuk \u00ebsht\u00eb praktika m\u00eb e mir\u00eb, si\u00e7 \u00ebsht\u00eb p\u00ebrmendur n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/containers\/images\/#updating-images\">dokumentacionin e Kubernetes<\/a><\/noindex>. Kjo nuk rekomandohet, por b\u00ebhet fjal\u00eb p\u00ebr <i>nj\u00eb aplikacion t\u00eb zakonsh\u00ebm, q\u00eb jeton n\u00eb nj\u00eb klas\u00ebr<\/i>. N\u00eb rastin e Addon-operator, aplikacioni \u00ebsht\u00eb nj\u00eb num\u00ebr Deployments, t\u00eb shp\u00ebrndara n\u00ebp\u00ebr klasra, dhe vet\u00eb-p\u00ebrdit\u00ebsimi ndihmon shum\u00eb dhe thjeshton jet\u00ebn. <\/p>\n<p>Kanale ndihmojn\u00eb gjithashtu <b>n\u00eb testim<\/b>: n\u00ebse ka nj\u00eb klas\u00ebr ndihm\u00ebs, mund ta konfigurosh n\u00eb kanal <code>) \u2014 nj\u00eb nj\u00ebsi organizimi e pipeline-it, p\u00ebrmban 1+ detyr\u00eb,<\/code> dhe t\u00eb testosh p\u00ebrdit\u00ebsimet n\u00eb t\u00eb para se t\u00eb l\u00ebshosh n\u00eb kanale <code>ea<\/code> dhe <code>stabil<\/code>. N\u00ebse me klasrin n\u00eb kanal <code>ea<\/code> ndodh nj\u00eb gabim, mund ta kalosh at\u00eb n\u00eb <code>stabil<\/code>, derisa t\u00eb hetosh problemin me k\u00ebt\u00eb klas\u00ebr. N\u00ebse klasi \u00ebsht\u00eb hequr nga mb\u00ebshtetje aktive, ai kalon n\u00eb kanalin e tij \"t\u00eb ngurt\u00eb\" \u2014 p\u00ebr shembull, <code>freeze-2019-03-20<\/code>.<\/p>\n<p>P\u00ebrve\u00e7 p\u00ebrdit\u00ebsimeve t\u00eb hooks dhe chart-eve Helm, mund t\u00eb nevojitet <b>t\u00eb p\u00ebrdit\u00ebsohet gjithashtu nj\u00eb komponent t\u00eb jasht\u00ebm<\/b>. P\u00ebr shembull, ke v\u00ebrejtur nj\u00eb gabim n\u00eb node-exporter t\u00eb caktuar dhe madje ke menduar se si ta patch-osh. M\u00eb pas hap PR dhe pret nj\u00eb l\u00ebshim t\u00eb ri p\u00ebr t\u00eb kaluar n\u00ebp\u00ebr t\u00eb gjitha klasrat dhe p\u00ebr t\u00eb rritur versionin e imazhit. P\u00ebr t\u00eb mos pritur p\u00ebr nj\u00eb koh\u00eb t\u00eb pacaktuar, mund t\u00eb mbledh\u00ebsh node-exporter-in t\u00ebnd dhe t\u00eb kalosh n\u00eb t\u00eb deri sa PR t\u00eb miratohet.<\/p>\n<p>N\u00eb p\u00ebrgjith\u00ebsi, \u00ebsht\u00eb e mundur ta b\u00ebsh k\u00ebt\u00eb edhe pa Addon-operator, por me Addon-operator moduli p\u00ebr instalimin e node-exporter do t\u00eb jet\u00eb i duksh\u00ebm n\u00eb nj\u00eb depo, Dockerfile p\u00ebr nd\u00ebrtimin e imazhit t\u00ebnd mund t\u00eb mbahet k\u00ebtu, t\u00eb gjith\u00eb pjes\u00ebmarr\u00ebsve iu b\u00ebhet m\u00eb e leht\u00eb t\u00eb kuptojn\u00eb se \u00e7far\u00eb po ndodh... Dhe n\u00ebse ka disa klaster\u00eb, b\u00ebhet m\u00eb e leht\u00eb edhe si testimi i PR-it t\u00ebnd, ashtu edhe instalimi i nj\u00eb versioni t\u00eb ri!<\/p>\n<p>Kjo organizat\u00eb e p\u00ebrdit\u00ebsimit t\u00eb komponenteve punon me sukses p\u00ebr ne, por mund t\u00eb realizohet edhe \u00e7do skem\u00eb tjet\u00ebr e p\u00ebrshtatshme \u2014 sepse <b>n\u00eb k\u00ebt\u00eb rast Addon-operator \u00ebsht\u00eb nj\u00eb skedar i thjesht\u00eb binar<\/b>.<\/p>\n<h2>P\u00ebrfundim<\/h2>\n<p>\nPrincipet e realizuara n\u00eb Addon-operator lejojn\u00eb nd\u00ebrtimin e nj\u00eb procesi t\u00eb qart\u00eb p\u00ebr krijimin, testimin, instalimin dhe p\u00ebrdit\u00ebsimin e plot\u00ebsimeve n\u00eb klaster, t\u00eb ngjash\u00ebm me proceset e zhvillimit t\u00eb aplikacioneve t\u00eb zakonshme.<\/p>\n<p>Plot\u00ebsimet p\u00ebr Addon-operator n\u00eb formatin e moduleve (Helm-chart + hooks) mund t\u00eb publikohen n\u00eb akses t\u00eb gjer\u00eb. Ne, kompania Flant, planifikojm\u00eb t\u00eb publikojm\u00eb gjat\u00eb ver\u00ebs zhvillimet tona n\u00eb form\u00ebn e k\u00ebtyre plot\u00ebsimeve. Bashkohuni n\u00eb zhvillim n\u00eb GitHub (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\">shell-operator<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\"><b>addon-operator<\/b><\/a><\/noindex>), provoni t\u00eb b\u00ebni plot\u00ebsimin tuaj mbi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">shembujt<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/blob\/master\/README.md\">dokumentacionin<\/a><\/noindex>, prisni lajme n\u00eb Habra dhe n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/c\/%D0%A4%D0%BB%D0%B0%D0%BD%D1%82\">kanalin n\u00eb YouTube<\/a><\/noindex>!<\/p>\n<h2>P.S.<\/h2>\n<p>\nLexoni gjithashtu n\u00eb blogun ton\u00eb:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">Zgjerimi dhe plot\u00ebsimi i Kubernetes (p\u00ebrmbledhje dhe video e prezantimit)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">Paraqesim shell-operator: krijimi i operator\u00ebve p\u00ebr Kubernetes \u00ebsht\u00eb b\u00ebr\u00eb edhe m\u00eb i leht\u00eb<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/455543\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u043b\u0435\u0434 \u0437\u0430 shell-operator \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u0441\u0442\u0430\u0440\u0448\u0435\u0433\u043e \u0431\u0440\u0430\u0442\u0430 \u2014 addon-operator. \u042d\u0442\u043e Open Source-\u043f\u0440\u043e\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 Kubernetes \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043e\u0431\u0449\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c \u2014 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u0417\u0430\u0447\u0435\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f? \u041d\u0435 \u0441\u0435\u043a\u0440\u0435\u0442, \u0447\u0442\u043e Kubernetes \u044d\u0442\u043e \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0432\u0441\u0451-\u0432-\u043e\u0434\u043d\u043e\u043c, \u0438 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u00ab\u0432\u0437\u0440\u043e\u0441\u043b\u043e\u0433\u043e\u00bb \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. Addon-operator \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35226","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.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\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.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\u0413\u043e\u0442\u043e\u0432\u0438\u0442\u044c Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e? \u0410\u043d\u043e\u043d\u0441\u0438\u0440\u0443\u0435\u043c addon-operator | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator\" \/>\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=\"2019-10-31T19:03:05+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:03:05+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\udd47A \u00ebsht\u00eb e thjesht\u00eb dhe e rehatshme t\u00eb p\u00ebrgatis\u00ebsh nj\u00eb klaster Kubernetes? Anoncojm\u00eb addon-operator | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","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\u0413\u043e\u0442\u043e\u0432\u0438\u0442\u044c Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e? \u0410\u043d\u043e\u043d\u0441\u0438\u0440\u0443\u0435\u043c addon-operator | ProHoster","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","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":"2019-10-31T19:03:05+00:00","article:modified_time":"2019-10-31T19:03:05+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35226","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":"2026-01-21 22:25:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:07:29","updated":"2026-01-21 22:25:22","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\/35226","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=35226"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/35226\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=35226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=35226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=35226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}