{"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\/sl\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","title":{"rendered":"Je priprava Kubernetes klasterja preprosta in priro\u010dna? Najavljamo addon-operator","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Je priprava Kubernetes klasterja preprosta in priro\u010dna? Najavljamo addon-operator\" src=\"\/wp-content\/uploads\/8df3959f765d5d1bc8d427d3258aacc4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPo <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">shell-operatorja<\/a><\/noindex> predstavljamo njegovog starijeg brata \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\">addon-operator<\/a><\/noindex>. Ovo je Open Source projekt koji se koristi za instalaciju sistemskih komponenti u Kubernetes klaster, koje mo\u017eemo nazvati zajedni\u010dkim pojmom \u2014 dodaci.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Za\u0161to uop\u0161te dodaci?<\/h2>\n<p>\nNije tajna da Kubernetes nije gotov proizvod svega-u-jednom i da su za izgradnju \u201ezrelog\u201c klastera potrebni razli\u010diti dodaci. Addon-operator poma\u017ee u instalaciji, pode\u0161avanju i odr\u017eavanju tih dodataka u aktuelnom stanju.<\/p>\n<p>Potrebno je dodatne komponente u klasteru razraditi u <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">poro\u010dilu<\/a><\/noindex> kolege <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/driusha\/\" class=\"user_link\">driusha<\/a><\/noindex>. Ukratko, situacija sa Kubernetesom trenutno je takva da za jednostavnu instalaciju \u201eza igru\u201c mo\u017eemo se poslu\u017eiti komponentama iz kutije, za developere i testiranje mo\u017eemo dodati Ingress, ali za punu instalaciju, o kojoj mo\u017eemo re\u0107i \u201eva\u0161 produkcijski sistem je spreman\u201c, potrebno je dodati desetak razli\u010ditih dodataka: ne\u0161to za monitoring, ne\u0161to za logove, ne zaboraviti ingress i cert-manager, odrediti grupe nodova, dodati mre\u017ene politike, pripremiti pode\u0161avanja sysctl i pod autoscaler\u2026<\/p>\n<p><img decoding=\"async\" alt=\"Je priprava Kubernetes klasterja preprosta in priro\u010dna? Najavljamo addon-operator\" src=\"\/wp-content\/uploads\/ab3bed8ee8b29d4e51905e45c908f078.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Koja je specifi\u010dnost rada s njima?<\/h2>\n<p>\nKao \u0161to praksa pokazuje, sama instalacija nije dovoljna. Za ugodno funkcionisanje klastera, dodaci \u0107e se morati a\u017eurirati, isklju\u010divati (uklanjati iz klastera), a ne\u0161to \u0107e mo\u017eda biti potrebno testirati pre instalacije u produkcijskom klasteru.<\/p>\n<p>Pa, mo\u017eda je ovde dovoljan i Ansible? Mogu\u0107e. Ali <b>puni dodaci u op\u0161tem slu\u010daju ne funkcioni\u0161u bez pode\u0161avanja<\/b>. Te nastavitve se lahko razlikujejo glede na razli\u010dico grozda (aws, gce, azure, bare-metal, do, \u2026). Nekaterih nastavitev ni mogo\u010de vnaprej dolo\u010diti \u2014 morali jih bomo pridobiti iz grozda. Grozd pa ni stati\u010den: za nekatere nastavitve bo potrebno spremljati spremembe. Tukaj Ansible ne zado\u0161\u010da: potrebujemo program, ki \u017eivi v grozdu, torej Kubernetes Operator.<\/p>\n<p>Oni koji su probali u praksi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\">shell-operatorja<\/a><\/noindex>, re\u0107i \u0107e da se zadaci instalacije i a\u017euriranja dodataka te pra\u0107enja pode\u0161avanja mogu potpuno re\u0161iti uz <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\/blob\/master\/HOOKS.md\">hookov<\/a><\/noindex> za shell-operator. Mogu\u0107e je napisati skript koji \u0107e raditi uslovni <code>kubectl apply<\/code> i pratiti, na primer, ConfigMap gde \u0107e se \u010duvati pode\u0161avanja. Otprilike ovo je realizovano u addon-operatoru.<\/p>\n<h2>Kako je to organizovano u addon-operatoru?<\/h2>\n<p>\nKreiraju\u0107i novo re\u0161enje, vodili smo se slede\u0107im principima:<\/p>\n<ul>\n<li> Instalater dodataka mora podr\u017eavati <b>templatizaciju i deklarativnu konfiguraciju<\/b>. Ne delamo \u010darobnih skriptov, ki name\u0161\u010dajo dodatke. Addon-operator uporablja Helm za namestitev dodatkov. Za namestitev je potrebno ustvariti chart in izpostaviti values, ki bodo uporabljeni za prilagoditev. <\/li>\n<li> Nastavitve je mogo\u010de <b>generirati ob namestitvi<\/b>, te je mogo\u010de <b>dobiti iz klasterja<\/b>, ali <b>prejemati posodobitve<\/b>, s spremljanjem virov klasterja. Te operacije je mogo\u010de izvesti s pomo\u010djo hook-ov.<\/li>\n<li> Nastavitve je mogo\u010de <b>shraniti v klasterju<\/b>. Za shranjevanje nastavitev v klasterju se ustvari ConfigMap\/addon-operator in Addon-operator spremlja spremembe tega ConfigMap-a. Addon-operator daje hook-om dostop do nastavitev prek preprostih dogovorov.<\/li>\n<li> <b>Dodatki so odvisni od nastavitev<\/b>. \u010ce se nastavitev spremeni, Addon-operator nalo\u017ei Helm-chart z novimi values. Zdru\u017eitev Helm-charta, values zanj in hook-ov smo poimenovali modul (ve\u010d o tem spodaj).<\/li>\n<li> <b>Staging<\/b>. Brez \u010darobnih skriptov za izdajo. Mekanizem posodobitev je podoben obi\u010dajni aplikaciji \u2014 zbrati dodatke in addon-operator v sliko, ozna\u010diti in izdati.<\/li>\n<li> <b>Nadzor rezultata<\/b>. Addon-operator zna zagotavljati metrike za Prometheus.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Kaj je dodatek v addon-operatorju?<\/h2>\n<p>\nDodatku lahko \u0161tejemo vse, kar dodaja nove funkcionalnosti v klaster. Na primer, namestitev Ingress \u2014 odli\u010den primer dodatka. To je lahko vsak operator ali kontroler s svojim CRD: prometheus-operator, cert-manager, kube-controller-manager itd. Ali kaj manj\u0161ega, a poenostavi delovanje \u2014 na primer, secret copier, ki kopira registry skrivnosti v nova imenska prostora, ali sysctl tuner, ki nastavi sysctl parametre na novih vozlih.<\/p>\n<p>Za izvajanje dodatkov Addon-operator ponuja ve\u010d konceptov:<\/p>\n<ul>\n<li> <b>Helm-chart<\/b> se uporablja za namestitev raznolike programske opreme v klaster \u2014 na primer, Prometheus, Grafana, nginx-ingress. \u010ce ima \u017eeleni komponent Helm-chart, bo namestitev preko Addon-operatorja zelo preprosta.<\/li>\n<li> <b>Shramba values<\/b>. Helm-charti obi\u010dajno vsebujejo mnogo razli\u010dnih nastavitev, ki se lahko s\u010dasoma spreminjajo. Addon-operator podpira shranjevanje teh nastavitev in ve, kako spremljati njihove spremembe, da ponovno namesti Helm-chart z novimi vrednostmi.<\/li>\n<li> <b>Hooki<\/b> \u2014 to so izvr\u0161ni datoteki, ki jih Addon-operator za\u017eene ob dogodkih in ki dostopajo do shrambe values. Hook lahko spremlja spremembe v grozdu in posodablja vrednosti v shrambi values. To pomeni, da lahko s pomo\u010djo hookov izvedemo odkrivanje, da zbiramo vrednosti iz grozda ob zagonu ali po urniku, ali pa neprekinjeno odkrivanje, pri \u010demer zbiramo vrednosti iz grozda ob spremembah v grozdu.<\/li>\n<li> <b>Modul<\/b> \u2014 je zdru\u017eenje Helm-diagrama, shramba values in hookov. Module je mogo\u010de vklopiti in izklopiti. Izklop modula pomeni odstranitev vseh izdaj Helm-diagrama. Moduli se lahko dinami\u010dno vklju\u010dujejo sami, na primer, \u010de so vklju\u010deni vsi potrebni moduli ali \u010de je odkrivanje v hookih na\u0161lo potrebne parametre \u2014 to se dose\u017ee s pomo\u010djo pomo\u017enega enabled-skripte.<\/li>\n<li> <b>Globalni hooki<\/b>. So to hooki \u00bbsamostojno\u00ab, niso vklju\u010deni v module in imajo dostop do globalne shrambe values, katere vrednosti so dostopne vsem hookom v modulih.<\/li>\n<\/ul>\n<p>\nKako te dele delujejo skupaj? Oglejmo si sliko iz dokumentacije:<\/p>\n<p><img decoding=\"async\" alt=\"Je priprava Kubernetes klasterja preprosta in priro\u010dna? Najavljamo addon-operator\" src=\"\/wp-content\/uploads\/c9bb8e5ae78aa5df0d6c4fbf353e4236.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nObstoje sta dva scenarija delovanja:<\/p>\n<ol>\n<li> Globalni hook se spro\u017ei ob dogodku \u2014 na primer, ob spremembi virov v grozdu. Ta hook obdeluje spremembe in zapisuje nove vrednosti v globalno shrambo values. Addon-operator opazi, da se je globalna shramba spremenila, in za\u017eene vse module. Vsak modul s pomo\u010djo svojih hookov ugotovi, ali se mora vklju\u010diti, in posodobi svojo shramba values. \u010ce je modul vklopljen, Addon-operator za\u017eene namestitev Helm-diagrama. Helm-diagramu so dostopne vrednosti iz shrambe modula in iz globalne shrambe.<\/li>\n<li> Drugi scenarij je enostavnej\u0161i: modularni hook se spro\u017ei ob dogodku, spremeni vrednosti v shrambi values modula. Addon-operator to opazi in za\u017eene Helm-diagram z posodobljenimi values.<\/li>\n<\/ol>\n<p>\nDopolnitev je lahko realizirana kot en sam hook ali kot en Helm-diagram, ali <b>tudi kot ve\u010d odvisnih modulov<\/b> \u2014 to je odvisno od zapletenosti komponente, ki se name\u0161\u010da v grozd, in od potrebne ravni prilagodljivosti nastavitev. Na primer, v repozitoriju (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">\/examples<\/a><\/noindex>) je dopolnitev sysctl-tuner, ki je realizirana tako kot preprost modul s hookom in Helm-diagramom, kot tudi z uporabo shrambe values, kar omogo\u010da dodajanje nastavitev preko urejanja ConfigMap.<\/p>\n<h2>Dostava posodobitev<\/h2>\n<p>\nNekaj besed o organizaciji posodobitev komponent, ki jih namesti Addon-operator.<\/p>\n<p>Za zagon Addon-operatorja v klastru je potrebno <b>pripraviti sliko z dodatki<\/b> v obliki hook datotek in Helm grafik, dodati binarno datoteko <code>addon-operator<\/code> in vse, kar potrebujete za hook-e: <code>bash<\/code>, <code>kubectl<\/code>, <code>jq<\/code>, <code>python<\/code> itd. Nato lahko to sliko implementirate v klaster kot obi\u010dajno aplikacijo in verjetno boste \u017eeleli organizirati to ali ono shemo ozna\u010devanja. \u010ce imate malo klastrskih enot, morda velja isti pristop kot pri aplikacijah: nova razli\u010dica, nova verzija, pojdite po vseh klastrih in spremenite sliko pri Pod-ih. Vendar pa, \u010de gre za implementacijo na opazno \u0161tevilo klastrskih enot, nam bolj ustreza koncept samoposodabljanja iz kanala. <\/p>\n<p>Pri nas je to urejeno tako,<\/p>\n<ul>\n<li>kanal je v bistvu identifikator, ki ga lahko nastavite katerikoli (na primer, dev\/stage\/ea\/stable).<\/li>\n<li>Ime kanala je oznaka slike. Ko je treba izvesti posodobitve v kanalu, se pripravi nova slika in se oznaka nastavi na ime kanala.<\/li>\n<li>Ko v registry pojavi nova slika, se Addon-operator ponovno za\u017eene in se za\u017eene s novo sliko.<\/li>\n<\/ul>\n<p>\nTo ni najbolj\u0161a praksa, o \u010demur pi\u0161e <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/containers\/images\/#updating-images\">dokumentacija Kubernetes<\/a><\/noindex>. Tako se ne priporo\u010da, a gre za <i>obi\u010dajno aplikacijo, ki \u017eivi v enem klastru<\/i>. Pri Addon-operatorju je aplikacija mno\u017eica Deployment-ov, razpr\u0161enih po klastri, in samoposodabljanje zelo mo\u010dno pomaga in poenostavi \u017eivljenje. <\/p>\n<p>Kanali pomagajo tudi <b>pri testiranju<\/b>: \u010de je na voljo pomo\u017eni klaster, ga lahko nastavite na kanal <code>stage<\/code> in izvajate posodobitve v njega pred implementacijo v kanale. <code>ea<\/code> in <code>stable<\/code>. \u010ce se je s klastrskim omre\u017ejem na kanalu <code>ea<\/code> zgodila napaka, ga lahko preklopite na <code>stable<\/code>, medtem ko poteka preiskava te\u017eave s tem klasterjem. \u010ce je klaster izklju\u010den iz aktivne podpore, se preklopi na svoj 'zamrznjen' kanal - na primer, <code>freeze-2019-03-20<\/code>.<\/p>\n<p>Poleg posodobitev hook-ov in Helm grafik boste morda morali <b>posodobiti tudi zunanje komponente<\/b>. Na primer, opazili ste napako v hipoteti\u010dnem node-exporterju in ste celo na\u0161li na\u010din, kako ga popraviti. Nato ste odprli PR in \u010dakate na novo razli\u010dico, da prehitevate skozi vse klastre in pove\u010date razli\u010dico slike. Da ne bi \u010dakali neomejeno \u010dasa, lahko pripravite svoj node-exporter in se preklopite nanj do sprejetja PR.<\/p>\n<p>Na splo\u0161no to lahko storimo tudi brez Addon-operatorja, vendar bo z Addon-operatorjem modul za namestitev node-exporterja na voljo v eni repozitoriju, Dockerfile za sestavljanje lastne slike lahko hranimo kar tukaj, vsem udele\u017eencem procesa pa je la\u017eje razumeti, kaj se dogaja... In \u010de je ve\u010d oblikovnih, je la\u017eje tako testirati svoj PR kot tudi namestiti novo razli\u010dico!<\/p>\n<p>Ta organizacija za posodabljanje komponent uspe\u0161no deluje pri nas, vendar lahko uresni\u010dimo tudi katerikoli drug ustrezen sistem \u2014 saj <b>v tem primeru Addon-operator predstavlja preprost binarni datoteka<\/b>.<\/p>\n<h2>Zaklju\u010dek<\/h2>\n<p>\nNa\u010dela, implementirana v Addon-operatorju, omogo\u010dajo vzpostavitev preglednega procesa za izdelavo, testiranje, namestitev in posodabljanje dodatkov v klastru, kar je podobno procesom razvoja obi\u010dajnih aplikacij.<\/p>\n<p>Dodatke za Addon-operator v obliki modulov (Helm chart + hooki) lahko objavimo v \u0161iroko dostopnost. Mi, podjetje Flant, na\u010drtujemo, da bomo v poletnih mesecih objavili na\u0161e dose\u017eke v obliki takih dodatkov. Pridru\u017eite se razvoju na GitHubu (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\">shell-operatorja<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\"><b>addon-operator<\/b><\/a><\/noindex>), poskusite izdelati svoj dodatek na osnovi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">primerov<\/a><\/noindex> in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/blob\/master\/README.md\">dokumenti<\/a><\/noindex>, spremljajte novosti na Habr\u00e9 in na na\u0161em <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/c\/%D0%A4%D0%BB%D0%B0%D0%BD%D1%82\">kanalu YouTube<\/a><\/noindex>!<\/p>\n<h2>P.S.<\/h2>\n<p>\nPreberite tudi na na\u0161em blogu:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">Raz\u0161irjamo in dopolnjujemo Kubernetes (pregled in video poro\u010dila)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">Predstavljamo shell-operatorja: ustvarjanje operaterjev za Kubernetes je postalo \u0161e la\u017eje<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Izvor: <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.4 - 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\/sl\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\/sl\/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\udd47Je enostavno in priro\u010dno pripraviti Kubernetes klaster? Napovedujemo addon-operator | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\/sl\/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\/sl\/wp-json\/wp\/v2\/posts\/35226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=35226"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/35226\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=35226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=35226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=35226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}