{"id":34431,"date":"2025-04-25T12:34:37","date_gmt":"2025-04-25T12:34:37","guid":{"rendered":"https:\/\/mainstream.eu\/?p=34431"},"modified":"2025-09-18T09:09:01","modified_gmt":"2025-09-18T09:09:01","slug":"on-prem-kubernetes-grozd","status":"publish","type":"post","link":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd","title":{"rendered":"On-prem Kubernetes grozd \u2013 vrnitev k tradicionalnemu razvojnemu na\u010dinu razmi\u0161ljanja\u00a0"},"content":{"rendered":"\n<p>Ko smo dobili nalogo, da za eno stranko izvedemo celovit pregled Kubernetes okolja, smo se prvi\u010d sre\u010dali s scenarijem, kjer je Kubernetes v celoti name\u0161\u010den lokalno \u2013 na fizi\u010dnih stre\u017enikih v grozdih \u2013 in \u010daka na produkcijsko uporabo oziroma kon\u010dno zeleno lu\u010d. Da je bilo \u0161e bolj zanimivo, je bila stranka MVNO v Nem\u010diji. Telefonija in Kubernetes zagotovo nista kombinacija, ki bi jo sre\u010dali vsak dan.&nbsp;<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/#On-prem_Kubernetes_grozd_Zveni_preprosto_vendar%E2%80%A6\" >On-prem Kubernetes grozd: Zveni preprosto, vendar&#8230;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/#Povratek_h_koreninam_Old_school_dev_vs_cloud-first_tim\" >Povratek h koreninam: Old school dev vs. cloud-first tim<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/#Kako_je_videti_ko_vec_razvijalcev_oblikuje_Kubernetes_arhitekturo\" >Kako je videti, ko ve\u010d razvijalcev oblikuje Kubernetes arhitekturo?&nbsp;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/#Izzivi_in_predlagane_resitve\" >Izzivi in predlagane re\u0161itve&nbsp;<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/#Kaj_smo_se_naucili\" >Kaj smo se nau\u010dili\u00a0<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"On-prem_Kubernetes_grozd_Zveni_preprosto_vendar%E2%80%A6\"><\/span><strong><strong>On-prem Kubernetes grozd: Zveni preprosto, vendar&#8230;<\/strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Zahteve stranke so bile na prvi pogled preproste. Dobili naj bi dostop do razvojnega (read-only) grozda, pripravili natan\u010den seznam vseh komponent z opisom delovanja, da bi razumeli delovanje njihovega sistema, in ocenili, ali so izbrani pristopi ustrezni \u2013 \u010de niso, bi predlagali alternative.<\/p>\n\n\n\n<p>Zveni preprosto. \u010casovno zahtevno, a preprosto.&nbsp;<\/p>\n\n\n\n<p><strong>Tudi mi smo mislili tako.<\/strong><\/p>\n\n\n\n<p><strong>Motili smo se.&nbsp;<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"1125\" src=\"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/c7719294-d433-4f49-a759-ccd92b5f9c0f.jpg\" alt=\"\" class=\"wp-image-34398\" srcset=\"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/c7719294-d433-4f49-a759-ccd92b5f9c0f.jpg 2000w, https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/c7719294-d433-4f49-a759-ccd92b5f9c0f-300x169.jpg 300w, https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/c7719294-d433-4f49-a759-ccd92b5f9c0f-1024x576.jpg 1024w, https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/c7719294-d433-4f49-a759-ccd92b5f9c0f-768x432.jpg 768w, https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/c7719294-d433-4f49-a759-ccd92b5f9c0f-1536x864.jpg 1536w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Povratek_h_koreninam_Old_school_dev_vs_cloud-first_tim\"><\/span><strong><strong>Povratek h koreninam: Old school dev vs. cloud-first tim<\/strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Kot ekipa smo vajeni oblaka \u2013 vseh malenkosti, ki ga zaznamujejo, in vseh prednosti, ki jih prina\u0161a. Lahko re\u010demo, da nas ni posebej presenetilo, ko smo odkrili, da nekateri viri niso ravno &#8220;oblaku podobni&#8221;. Dvojec, ki je delal na tem projektu, ima skupaj pribli\u017eno 40 let izku\u0161enj v IT-ju, vse iz obdobja pred raz\u0161irjeno uporabo oblaka.&nbsp; Hitro smo ugotovili, da smo se vrnili v \u010dase tradicionalnega pristopa in da se moramo temu prilagoditi tudi v razmi\u0161ljanju.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Kako_je_videti_ko_vec_razvijalcev_oblikuje_Kubernetes_arhitekturo\"><\/span><strong><strong>Kako je videti, ko ve\u010d razvijalcev oblikuje Kubernetes arhitekturo?&nbsp;<\/strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Relativno hitro smo dobili dostop do razvojnega grozda in potrditev, da sta razvojno, testno in prihodnje produkcijsko okolje enaka \u2013 razen razlik, ki nam jih bodo sproti pojasnili. To je pripeljalo do namestitve \u0161tevilnih komponent v Kubernetes, saj je vsaka imela svojo vlogo.<\/p>\n\n\n\n<p>Na\u0161e prvo vpra\u0161anje je bilo: ali so vse te komponente res nujno potrebne?&nbsp;<\/p>\n\n\n\n<p>Ko smo vpra\u0161anje zastavili razvijalcem, smo dobili odgovor, ki temelji na tipi\u010dnem razvijalskem na\u010dinu razmi\u0161ljanja: vse se obravnava kot lo\u010dena celota in vsaka zahteva, ki jo je treba izpolniti, pomeni eno komponento. Te\u017eko bi rekli, da je tak na\u010din razmi\u0161ljanja napa\u010den.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Ops pristop pomeni, da se postavi osnovno ogrodje in namesti \u010dim manj, pri tem pa se uporablja vse, kar se \u017ee lahko uporabi. V primeru na\u0161e stranke je bil pristop ravno nasproten \u2013 vsaka potreba je bila re\u0161ena z lo\u010deno, namensko komponento. Ker tega nismo mogli ovre\u010di, smo se posku\u0161ali prilagoditi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Izzivi_in_predlagane_resitve\"><\/span><strong><strong>Izzivi in predlagane re\u0161itve&nbsp;<\/strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Za za\u010detek smo morali razumeti, kaj in kako stranka po\u010dne ter na kak\u0161en na\u010din deluje njihova aplikacija. \u010ceprav smo prejeli diagram aplikacije s pripadajo\u010dim pojasnilom, smo morali ro\u010dno preu\u010diti celotno notranjo komunikacijo med komponentami, da bi razumeli vse odnose znotraj Kubernetesa in celotnega stacka.&nbsp;<\/p>\n\n\n\n<p>Ker je narava aplikacije komunikacija in izmenjava informacij, je bilo jasno, da se vse dogaja varno \u2013 znotraj grozda. Zaradi read-only dostopa smo lahko zgolj pregledovali vire, ne pa tudi vzpostavljali seje do njih, zato smo se zana\u0161ali na analizo virov in konfiguracijskih datotek, shranjenih kot config mape. Imena storitev, ingressi in endpointi so nam skozi konfiguracijo razkrili, katera storitev komunicira s katero drugo. V analizi smo odkrili, da se je ekipa odlo\u010dila za precej napredne re\u0161itve iz FOSS ekosistema, kar je zelo pohvalno.&nbsp;<\/p>\n\n\n\n<p><strong>Izziv 1:&nbsp;&nbsp;HA storage&nbsp;<\/strong><strong><\/strong><\/p>\n\n\n\n<p>Eden od ve\u010djih izzivov je bila odlo\u010ditev stranke, da uporablja lokalne diske na stre\u017enikih prek local path provisionerja.&nbsp;Zelo te\u017eko je zagotoviti visoko razpolo\u017eljivost s tak\u0161nim pristopom. Stranka je uvedla GlusterFS, vendar to ni optimalna re\u0161itev, saj Kubernetes tega sistema ne prepozna neposredno in provisioned volume ne delujejo ustrezno v kontekstu backup-a and recovery-ja<\/p>\n\n\n\n<p>Na\u0161 predlog je bil, da se opusti GlusterFS in preide na kombinacijo CEPH + Rook. CEPH kot distribuiran sistem podpira \u0161iroko paleto shranjevalnih naprav, Rook pa skrbi za njihovo upravljanje. Prav tako smo svetovali, da se storage v celoti preseli na lo\u010den stre\u017enik znotraj podatkovnega centra z mo\u017enostjo offsite varnostnega kopiranja \u2013 s tem smo naslovili tudi izziv DFS.<\/p>\n\n\n\n<p><strong>Izziv 2: Konfiguracija&nbsp;<\/strong><strong><\/strong><\/p>\n\n\n\n<p>Drug izziv je bila vzpostavitev nadzora nad procesi v Kubernetesu, da bi avtomatizacija nenehno sledila pravilom, ki se jih ne sme kr\u0161iti. Stranka se je odlo\u010dila za uporabo kombinacije orodij Falco in Kyverno. Vendar nobeno od teh orodij ni bilo konfigurirano preko demo nastavitev, kar samo po sebi ni napa\u010dno, vendar so ta orodja namenjena delovanju v dobro povezanem, setup-u. Te\u017eko jih je ustrezno nastaviti v razvojnem grozdu, ki \u0161e ni v celoti konfiguriran. Bilo je o\u010ditno, da razvojno okolje ni enako produkcijskemu. Na\u0161 izziv je bil integracija dveh policy management sistemov z dvema kompletoma pravil, ki bi skupaj delovala usklajeno.&nbsp;<\/p>\n\n\n\n<p><strong>Izziv 3: Monitoring&nbsp;<\/strong><strong><\/strong><\/p>\n\n\n\n<p>V analizi smo identificirali te\u017eavo z monitoringom v porazdeljenem sistemu \u2013 izpad posameznega node-a vpliva na celoten sistem. Stranka uporablja klasi\u010den master-worker pristop, kjer ima vsako okolje enako \u0161tevilo workerjev in vozli\u0161\u010d. Tako kot pri v okiru storage-a, je tudi monitoring ob\u010dutljiv na odpovedi. Kaj storiti, ko odpove bare-metal stre\u017enik ali je potrebno izklopiti node zaradi vzdr\u017eevanja?<\/p>\n\n\n\n<p>Imeli smo dilemo, kje naj bo monitoring sploh ume\u0161\u010den.&nbsp;Monitoring ni bil premaknjen iz grozda, saj stranka tega v tej fazi projekta ni \u017eelela. Uporabljen je bil standardni Prometheus stack, ki ni bil namenjen distribuiranemu delovanju. Federacija obstaja, vendar ni zadostna re\u0161itev. Na\u0161 predlog oziroma potrditev, do katere smo pri\u0161li skozi skupno razpravo, je bil uporaba Thanosa \u2013 distribuirane nadgradnje Prometheusa, ki omogo\u010da obstoj neodvisnih instanc, ne glede na to, kje se nahajajo.&nbsp;<\/p>\n\n\n\n<p>Na\u0161a re\u0161itev je temeljila na \u017ee predlaganem DFS pristopu, kjer je sloj shranjevanja ostal abstrakten, s \u010dimer spremembe niso vplivale na neprekinjen pretok podatkov iz monitoringa. Thanos je postal de facto re\u0161itev za celotno aplikacijo in vsa tri okolja, ko bo stranka pripravljena izlo\u010diti monitoring iz Kubernetes stre\u017enikov.&nbsp;<\/p>\n\n\n\n<p><strong>Izziv 4: Backup re\u0161itev&nbsp;<\/strong><strong><\/strong><\/p>\n\n\n\n<p>Re\u0161itev, ki jo je stranka posku\u0161ala uporabiti za backup, se imenuje Velero. Gre za zrel backup projekt, ki omogo\u010da varnostno kopiranje volumnov znotraj Kubernetesa, vendar to ni njegov primarni namen ali osnovna zamisel.&nbsp;<\/p>\n\n\n\n<p>Na\u0161 predlog je bil podoben razvojnemu pristopu, ki ga je ubrala stranka. Velero je sicer orodje za varnostno kopiranje, a je bilo sprva zasnovano kot re\u0161itev za celovito varnostno kopiranje Kubernetes grozda kot sistema za orkestracijo kontejnerjev. Ker je Kubernetes sestavljen iz ve\u010d komponent, ne obstaja integriran backup sistem, ki bi omogo\u010dal obnovitev popolnoma uni\u010denega grozda. Velero re\u0161uje to te\u017eavo tako, da premakne klju\u010dne konfiguracije na oddaljeno in varno varnostno lokacijo po izbiri uporabnika. V na\u0161em primeru je bila object storage, ki ga je stranka \u017ee uporabljala in se ni nahajal v istem podatkovnem centru.<\/p>\n\n\n\n<p><strong>Izziv 5: Backup volumnov<\/strong><strong><\/strong><\/p>\n\n\n\n<p>Na isti ravni kot izziv backup konfiguracij je bil tudi izziv backup podatkovnih volumnov. Na tej to\u010dki je v ospredje stopil Kanister \u2013 odprtokodni projekt, ki omogo\u010da definiranje API-ja znotraj Kubernetesa v obliki virov, ki jih je mogo\u010de klicati za izvajanje varnostnih kopij glede na specifi\u010dne potrebe stranke. Kanister vklju\u010duje \u017ee pripravljene definicije za varnostno kopiranje razli\u010dnih vrst podatkovnih baz: SQL, NoSQL, GraphQL, timeseries itd. Varnostno kopiranje obi\u010dajne shrambe se definira kot Kubernetes job \u2013 enako velja za postopek obnove.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2000\" height=\"1200\" src=\"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog.jpg\" alt=\"\" class=\"wp-image-34404\" srcset=\"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog.jpg 2000w, https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog-300x180.jpg 300w, https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog-1024x614.jpg 1024w, https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog-768x461.jpg 768w, https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog-1536x922.jpg 1536w\" sizes=\"auto, (max-width: 2000px) 100vw, 2000px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Kaj_smo_se_naucili\"><\/span><strong><strong>Kaj smo se nau\u010dili\u00a0<\/strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Delo s tradicionalnimi tehnologijami v sodobnem \u010dasu predstavlja velik izziv. Cloud-centric IT scena nas vse spreminja, vendar je vedno dobra vaja vrniti se h koreninam in razmi\u0161ljati ro\u010dno \u2013 komponento po komponento. Tako tudi ugotovimo, da smo kot Ops \u0161e vedno zdru\u017eljivi z Dev na\u010dinom razmi\u0161ljanja \u2013 kjer ena komponenta re\u0161uje en problem. Tak\u0161en pristop decentralizira procese in omogo\u010da, da sistem, ki morda deluje (navidezno) prekomerno robustno, v resnici deluje zelo dobro in je izredno odporen na katastrofalne scenarije.<\/p>\n\n\n\n<p><strong>Med projektom smo odkrili nova orodja, ki so uporabna v razli\u010dnih situacijah \u2013 kot so Kanister, Reflector, Karpenter in Kyverno.<\/strong><\/p>\n\n\n\n<p>Ugotovili smo tudi, da vsaka distribuirana re\u0161itev ni v vsakem primeru resni\u010dno distribuirana. Re\u0161itve morajo biti zasnovane namensko za on-prem okolja \u2013 sicer se obna\u0161ajo kot preprosta unija virov, katerih delovanje je odvisno od tega, kdaj in kako so bili dodani. Tak\u0161na zbirka virov ni odporna \u2013 in posledi\u010dno tudi ne posebej u\u010dinkovita.&nbsp;<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Celovita audit Kubernetes okolja v on-premise infrastrukturi na primeru konkretnega naro\u010dnika ter povratek na old-school dev mindset.<\/p>\n","protected":false},"author":4,"featured_media":34404,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[214,228,308,347,349,350],"tags":[309],"class_list":["post-34431","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-101","category-cloud-101-sl","category-cloud-101-en","category-kubernetes","category-kubernetes-en","category-kubernetes-sl","tag-cloud-en"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>On-prem Kubernetes grozd \u2013 vrnitev k tradicionalnemu razvojnemu na\u010dinu razmi\u0161ljanja\u00a0<\/title>\n<meta name=\"description\" content=\"Celovita audit Kubernetes okolja v on-premise infrastrukturi na primeru konkretnega naro\u010dnika ter povratek na old-school dev mindset.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/\" \/>\n<meta property=\"og:locale\" content=\"sl_SI\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"On-prem Kubernetes grozd \u2013 vrnitev k tradicionalnemu razvojnemu na\u010dinu razmi\u0161ljanja\u00a0\" \/>\n<meta property=\"og:description\" content=\"Celovita audit Kubernetes okolja v on-premise infrastrukturi na primeru konkretnega naro\u010dnika ter povratek na old-school dev mindset.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/\" \/>\n<meta property=\"og:site_name\" content=\"Mainstream\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-25T12:34:37+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-18T09:09:01+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1200\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Mainstream\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mainstream\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/blog\\\/on-prem-kubernetes-grozd\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/blog\\\/on-prem-kubernetes-grozd\\\/\"},\"author\":{\"name\":\"Mainstream\",\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/#\\\/schema\\\/person\\\/2641be85ce58ab61df2554de02b325d3\"},\"headline\":\"On-prem Kubernetes grozd \u2013 vrnitev k tradicionalnemu razvojnemu na\u010dinu razmi\u0161ljanja\u00a0\",\"datePublished\":\"2025-04-25T12:34:37+00:00\",\"dateModified\":\"2025-09-18T09:09:01+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/blog\\\/on-prem-kubernetes-grozd\\\/\"},\"wordCount\":1395,\"image\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/blog\\\/on-prem-kubernetes-grozd\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mainstream.eu\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/kubernetes-blog.jpg\",\"keywords\":[\"cloud\"],\"articleSection\":[\"Cloud 101\",\"Cloud 101\",\"Cloud 101\",\"Kubernetes\",\"Kubernetes\",\"Kubernetes\"],\"inLanguage\":\"sl-SI\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/blog\\\/on-prem-kubernetes-grozd\\\/\",\"url\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/blog\\\/on-prem-kubernetes-grozd\\\/\",\"name\":\"On-prem Kubernetes grozd \u2013 vrnitev k tradicionalnemu razvojnemu na\u010dinu razmi\u0161ljanja\u00a0\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/blog\\\/on-prem-kubernetes-grozd\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/blog\\\/on-prem-kubernetes-grozd\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mainstream.eu\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/kubernetes-blog.jpg\",\"datePublished\":\"2025-04-25T12:34:37+00:00\",\"dateModified\":\"2025-09-18T09:09:01+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/#\\\/schema\\\/person\\\/2641be85ce58ab61df2554de02b325d3\"},\"description\":\"Celovita audit Kubernetes okolja v on-premise infrastrukturi na primeru konkretnega naro\u010dnika ter povratek na old-school dev mindset.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/blog\\\/on-prem-kubernetes-grozd\\\/#breadcrumb\"},\"inLanguage\":\"sl-SI\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mainstream.eu\\\/sl\\\/blog\\\/on-prem-kubernetes-grozd\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sl-SI\",\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/blog\\\/on-prem-kubernetes-grozd\\\/#primaryimage\",\"url\":\"https:\\\/\\\/mainstream.eu\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/kubernetes-blog.jpg\",\"contentUrl\":\"https:\\\/\\\/mainstream.eu\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/kubernetes-blog.jpg\",\"width\":2000,\"height\":1200,\"caption\":\"Data center concept, isometric local servers connected to laptop on blue background with space for your text.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/blog\\\/on-prem-kubernetes-grozd\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Doma\u010da\",\"item\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"On-prem Kubernetes grozd \u2013 vrnitev k tradicionalnemu razvojnemu na\u010dinu razmi\u0161ljanja\u00a0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/#website\",\"url\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/\",\"name\":\"Mainstream\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"sl-SI\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/#\\\/schema\\\/person\\\/2641be85ce58ab61df2554de02b325d3\",\"name\":\"Mainstream\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sl-SI\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0d96c6754fab9114e5226cde3f61d63c41cd2ee7c9c1bcf63a387ef17553e1f2?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0d96c6754fab9114e5226cde3f61d63c41cd2ee7c9c1bcf63a387ef17553e1f2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0d96c6754fab9114e5226cde3f61d63c41cd2ee7c9c1bcf63a387ef17553e1f2?s=96&d=mm&r=g\",\"caption\":\"Mainstream\"},\"url\":\"https:\\\/\\\/mainstream.eu\\\/sl\\\/author\\\/mainstream\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"On-prem Kubernetes grozd \u2013 vrnitev k tradicionalnemu razvojnemu na\u010dinu razmi\u0161ljanja\u00a0","description":"Celovita audit Kubernetes okolja v on-premise infrastrukturi na primeru konkretnega naro\u010dnika ter povratek na old-school dev mindset.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/","og_locale":"sl_SI","og_type":"article","og_title":"On-prem Kubernetes grozd \u2013 vrnitev k tradicionalnemu razvojnemu na\u010dinu razmi\u0161ljanja\u00a0","og_description":"Celovita audit Kubernetes okolja v on-premise infrastrukturi na primeru konkretnega naro\u010dnika ter povratek na old-school dev mindset.","og_url":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/","og_site_name":"Mainstream","article_published_time":"2025-04-25T12:34:37+00:00","article_modified_time":"2025-09-18T09:09:01+00:00","og_image":[{"width":2000,"height":1200,"url":"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog.jpg","type":"image\/jpeg"}],"author":"Mainstream","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Mainstream","Est. reading time":"7 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/#article","isPartOf":{"@id":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/"},"author":{"name":"Mainstream","@id":"https:\/\/mainstream.eu\/sr\/#\/schema\/person\/2641be85ce58ab61df2554de02b325d3"},"headline":"On-prem Kubernetes grozd \u2013 vrnitev k tradicionalnemu razvojnemu na\u010dinu razmi\u0161ljanja\u00a0","datePublished":"2025-04-25T12:34:37+00:00","dateModified":"2025-09-18T09:09:01+00:00","mainEntityOfPage":{"@id":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/"},"wordCount":1395,"image":{"@id":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/#primaryimage"},"thumbnailUrl":"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog.jpg","keywords":["cloud"],"articleSection":["Cloud 101","Cloud 101","Cloud 101","Kubernetes","Kubernetes","Kubernetes"],"inLanguage":"sl-SI"},{"@type":"WebPage","@id":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/","url":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/","name":"On-prem Kubernetes grozd \u2013 vrnitev k tradicionalnemu razvojnemu na\u010dinu razmi\u0161ljanja\u00a0","isPartOf":{"@id":"https:\/\/mainstream.eu\/sr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/#primaryimage"},"image":{"@id":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/#primaryimage"},"thumbnailUrl":"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog.jpg","datePublished":"2025-04-25T12:34:37+00:00","dateModified":"2025-09-18T09:09:01+00:00","author":{"@id":"https:\/\/mainstream.eu\/sr\/#\/schema\/person\/2641be85ce58ab61df2554de02b325d3"},"description":"Celovita audit Kubernetes okolja v on-premise infrastrukturi na primeru konkretnega naro\u010dnika ter povratek na old-school dev mindset.","breadcrumb":{"@id":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/#breadcrumb"},"inLanguage":"sl-SI","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/"]}]},{"@type":"ImageObject","inLanguage":"sl-SI","@id":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/#primaryimage","url":"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog.jpg","contentUrl":"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog.jpg","width":2000,"height":1200,"caption":"Data center concept, isometric local servers connected to laptop on blue background with space for your text."},{"@type":"BreadcrumbList","@id":"https:\/\/mainstream.eu\/sl\/blog\/on-prem-kubernetes-grozd\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Doma\u010da","item":"https:\/\/mainstream.eu\/sl\/"},{"@type":"ListItem","position":2,"name":"On-prem Kubernetes grozd \u2013 vrnitev k tradicionalnemu razvojnemu na\u010dinu razmi\u0161ljanja\u00a0"}]},{"@type":"WebSite","@id":"https:\/\/mainstream.eu\/sr\/#website","url":"https:\/\/mainstream.eu\/sr\/","name":"Mainstream","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/mainstream.eu\/sr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"sl-SI"},{"@type":"Person","@id":"https:\/\/mainstream.eu\/sr\/#\/schema\/person\/2641be85ce58ab61df2554de02b325d3","name":"Mainstream","image":{"@type":"ImageObject","inLanguage":"sl-SI","@id":"https:\/\/secure.gravatar.com\/avatar\/0d96c6754fab9114e5226cde3f61d63c41cd2ee7c9c1bcf63a387ef17553e1f2?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0d96c6754fab9114e5226cde3f61d63c41cd2ee7c9c1bcf63a387ef17553e1f2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0d96c6754fab9114e5226cde3f61d63c41cd2ee7c9c1bcf63a387ef17553e1f2?s=96&d=mm&r=g","caption":"Mainstream"},"url":"https:\/\/mainstream.eu\/sl\/author\/mainstream\/"}]}},"_links":{"self":[{"href":"https:\/\/mainstream.eu\/sl\/wp-json\/wp\/v2\/posts\/34431","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mainstream.eu\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mainstream.eu\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mainstream.eu\/sl\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/mainstream.eu\/sl\/wp-json\/wp\/v2\/comments?post=34431"}],"version-history":[{"count":0,"href":"https:\/\/mainstream.eu\/sl\/wp-json\/wp\/v2\/posts\/34431\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mainstream.eu\/sl\/wp-json\/wp\/v2\/media\/34404"}],"wp:attachment":[{"href":"https:\/\/mainstream.eu\/sl\/wp-json\/wp\/v2\/media?parent=34431"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mainstream.eu\/sl\/wp-json\/wp\/v2\/categories?post=34431"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mainstream.eu\/sl\/wp-json\/wp\/v2\/tags?post=34431"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}