{"id":34397,"date":"2025-04-25T10:03:20","date_gmt":"2025-04-25T10:03:20","guid":{"rendered":"https:\/\/mainstream.eu\/?p=34397"},"modified":"2025-09-18T09:05:17","modified_gmt":"2025-09-18T09:05:17","slug":"on-prem-kubernets-klaster","status":"publish","type":"post","link":"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster","title":{"rendered":"On-prem Kubernets klaster\u00a0&#8211; povratak na tradicionalni dev mindset\u00a0"},"content":{"rendered":"\n<p>Kada smo dobili zadatak da za jednog klijenta uradimo full audit Kubernetesa, prvi put smo se susreli sa&nbsp;scenarijem u kome je <strong>Kubernetes<\/strong> potpuno on-prem, na fizi\u010dkim ma\u0161inama u klasterima,&nbsp;i&nbsp;\u010deka produkciju, odnosno finalno zeleno svetlo. Da sve bude interesantnije, klijent je bio MVNO u Nema\u010dkoj. Telefonija i Kubernetes su definitivno ne\u0161to \u0161to se ne sre\u0107e svaki 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\/sr\/blog\/on-prem-kubernets-klaster\/#On-prem_Kubernetes_klaster_Zvuci_jednostavno_ali%E2%80%A6\" >On-prem Kubernetes klaster: Zvu\u010di jednostavno, ali\u2026<\/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\/sr\/blog\/on-prem-kubernets-klaster\/#Vracanje_korenima_Old_school_dev_vs_cloud-first_tim\" >Vra\u0107anje korenima: 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\/sr\/blog\/on-prem-kubernets-klaster\/#Kako_izgleda_kada_mnogo_programera_dizajnira_Kubernetes_arhitekturu\" >Kako izgleda kada mnogo programera dizajnira Kubernetes arhitekturu?&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\/sr\/blog\/on-prem-kubernets-klaster\/#Izazovi_i_predlozena_resenja\" >Izazovi i predlo\u017eena re\u0161enja&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\/sr\/blog\/on-prem-kubernets-klaster\/#Sta_smo_naucili\" >\u0160ta smo nau\u010dili&nbsp;<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"On-prem_Kubernetes_klaster_Zvuci_jednostavno_ali%E2%80%A6\"><\/span><strong>On-prem Kubernetes klaster: Zvu\u010di jednostavno, ali\u2026<\/strong><strong><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Zahtevi klijenta su bili naizgled prosti. Dobi\u0107emo read-only pristup dev klasteru, napravi\u0107emo detaljan popis svega sa opisom funkcionisanja da bismo bili sigurni da razumemo kako radi njihov sistem, proceni\u0107emo da li su odabrana re\u0161enja adekvatna&nbsp;&#8211;&nbsp;ako nisu, predlo\u017ei\u0107emo&nbsp;alternative.&nbsp;<\/p>\n\n\n\n<p>Zvu\u010di jednostavno. Vremenski zahtevno, ali jednostavno.&nbsp;<\/p>\n\n\n\n<p><strong>Mi smo mislili da jeste.<\/strong><\/p>\n\n\n\n<p><strong>Nismo bili u pravu.&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=\"Vracanje_korenima_Old_school_dev_vs_cloud-first_tim\"><\/span><strong>Vra\u0107anje korenima: Old school dev vs. cloud-first tim<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Kao tim smo navikli na cloud&nbsp;&#8211;&nbsp;&nbsp;na sve sitnice koje ga karakteri\u0161u i sve pogodnosti koje pru\u017ea. Blago iznena\u0111enje do\u017eiveli smo kada&nbsp;smo&nbsp;(sasvim o\u010dekivano) otkrili da neki resursi nisu \u201eklaudoliki\u201d. Dvojac koji je radio na ovom projektu ima zbirno oko 40 godina iskustva u IT-u koje&nbsp;datira pre cloud-a.&nbsp; Nije nam dugo trebalo da shvatimo da smo se vratili na old school sistem i da bi trebalo tako i da razmi\u0161ljamo.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Kako_izgleda_kada_mnogo_programera_dizajnira_Kubernetes_arhitekturu\"><\/span><strong>Kako izgleda kada mnogo programera dizajnira Kubernetes arhitekturu?&nbsp;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Relativno lako smo do\u0161li do pristupa dev klasteru i uverenja da su dev, staging i budu\u0107a produkcija isti, osim razlika koje \u0107e nam biti revnosno predo\u010dene na vreme.Sam klaster&nbsp;je pratio filozofiju da svaki best practise segment zahteva svoje re\u0161enje. To je dovelo do instalacije mnogo komponenti u Kubernetes, jer je svaka&nbsp;imala svoju ulogu.<\/p>\n\n\n\n<p>Na\u0161a prvo pitanje je bilo; da li su sve ove komponente zaista neophodne?&nbsp;<\/p>\n\n\n\n<p>Kada smo ga postavili programerima, dobili smo odgovor zasnovan na&nbsp;tipi\u010dnom programerskom razmi\u0161ljanju: sve se posmatra kao zasebna celina i svaki zahtev koji mora da se ispuni je jedna komponenta. Ne mo\u017ee se re\u0107i da je ovaj na\u010din razmi\u0161ljanja pogre\u0161an.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Ops pristup podrazumeva da se pravi skelet i instalira \u0161to manje, a da se koristi sve \u0161to&nbsp;se mo\u017ee koristiti. U slu\u010daju na\u0161eg klijenta, pristup je bio da svaka potreba bude podmirena posebnim, adekvatnim re\u0161enjem. Kako nismo&nbsp;mogli da&nbsp;ga&nbsp;osporimo, probali&nbsp;smo&nbsp;da se prilagodimo.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Izazovi_i_predlozena_resenja\"><\/span><strong>Izazovi i predlo\u017eena re\u0161enja&nbsp;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Za po\u010detak je trebalo da razumemo \u0161ta i kako klijent radi i na koji na\u010din im funkcioni\u0161e aplikacija. Premda smo dobili app diagram koji je pratilo obja\u0161njenje, morali smo da ru\u010dni pro\u0111emo kompletnu unutra\u0161nju komunikaciju komponenti da bismo razumeli sve odnose unutar Kubernetesa i samog stack-a.&nbsp;<\/p>\n\n\n\n<p>Kako je priroda aplikacije komunikacija i razmena informacija, jasno je da je sve potpuno sigurno i da se odvija u okviru klastera. Obzirom da read-only pristup dozvoljava samo pregled&nbsp;resursa, ali ne i uspostavljanje sesije ka njima, oslonili smo se na analizu resursa i config fajlova koji stoje kao config mape. Imena servisa, ingress-i i endpointi su samo neki od aspekata koji su nam kroz konfiguraciju otkrili koji servis komunicira sa \u010dime. U toku analize otkrili smo da su se timovi odlu\u010dili za prili\u010dno cutting-edge re\u0161enja&nbsp;i&nbsp;i da su sva bila iz FOSS ekosistema, \u0161to je jako pohvalno.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Izazov 1: HA storage&nbsp;<\/strong><strong><\/strong><\/h3>\n\n\n\n<p>Kao jedan od izazova&nbsp;izdvojio bih odluku klijenta da koristi lokalne diskove na serverima kroz local path provisioner. Jako je te\u0161ko koristiti storage na taj na\u010din a da bude u HA. Klijent je podigao GlusterFS, \u0161to nije najbolje re\u0161enje jer Kubernetes nije svestan toga i provisioned volumi ne mogu da rade kako treba u smislu backup-a and recovery-ja.<\/p>\n\n\n\n<p>Ovo smo re\u0161ili predlogom da se napusti GlusterFS i da se pre\u0111e na kombinaciju CEPH + Rook. CEPH kao distribuirani sistem mo\u017ee da uve\u017ee \u0161iroku paletu storage-a, a Rook da njima upravlja. Na\u0161 predlog je tako\u0111e bio da se storage u potpunosti izmesti na poseban server u okviru data centra koji mo\u017ee da se bekapuje offsite, \u010dime smo adresirali izazov DFS-a.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Izazov 2: Konfiguracija&nbsp;<\/strong><strong><\/strong><\/h3>\n\n\n\n<p>Drugi izazov je bio da se obezbedi kontrola procesa unutar Kubernetesa kako bi automatizacija procesa kontantno pratilapravila koja ne sme da prekr\u0161i. Klijent je odabrao kombinaciju Falco i Kyverno kao re\u0161enje. Nijedan od njih nije bio konfigurisan dalje od demo pravila, \u0161to je prihvatljivo, ali je problemati\u010dno&nbsp;\u0161to su ova re\u0161enja predvi\u0111ena da rade u zrelom setup-u&nbsp;&#8211;&nbsp;uvezano. Te\u0161ko ih je konfigurisati na dev klasteru koji nije u potpunosti pode\u0161en. Bilo je jasno i da dev okru\u017eenje nije isto kao produkciono. Na\u0161 izazov je bio da uve\u017eemo dva policy managementa, \u0161to smo i predlo\u017eili sa dva seta polisa koje zajedno funkcioni\u0161u.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Izazov 3: Monitoring&nbsp;<\/strong><strong><\/strong><\/h3>\n\n\n\n<p>U analizi smo otkrili problem distribuiranog monitoringa na koji mo\u017ee da uti\u010de pad nekog node-a. Naime, klijent koristi master-worker setup u kome svako okru\u017eenje ima isti broj workera i nodova. Poput&nbsp;storage-a, i monitoring pati od iste boljke. \u0160ta kada ne\u0161to neminovno otkaze na bare metal serveru ili neki node mora da se ugasi radi maintenance-a?<\/p>\n\n\n\n<p>Imali&nbsp;smo&nbsp;dilemu&nbsp;gde&nbsp;da&nbsp;stoji monitoring. Klijent nije bio voljan da u ovoj fazi projekta izmesti monitoriing u&nbsp;klaster&nbsp;servera. Odabrano re\u0161enje je bio standardni Prometheus stack, koji nije zami\u0161ljen da bude distribuiran. Dodu\u0161e, postoji federacija, ali to nije re\u0161enje problema. Na\u0161 predlog, tj. potvrda kroz zajedni\u010dku diskusiju, bio je da se koristi Thanos&nbsp;&#8211;&nbsp;distribuirani overlay nad&nbsp;Prometheus-om koji dozvoljava da postoje nezavisne instance istog bez obzira gde se nalaze.&nbsp;<\/p>\n\n\n\n<p>Na\u0161e re\u0161enje se oslanjalo na kori\u0161\u0107enje DFS-a koji smo predlo\u017eili i podrazumevalo je da storage layer ostane apstraktan celom sistemu i da promene na nivou istog nemaju nikakve posledice po konstantan priliv podataka od monitoringa. Thanos je bio defacto re\u0161enje za kompletnu aplikaciju i sva tri okru\u017eenja u momentu kada klijent bude odlu\u010dio&nbsp;da&nbsp;izmesti monitoring stack&nbsp;van&nbsp;Kubernetes servera.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Izazov 4: Backup re\u0161enje&nbsp;<\/strong><strong><\/strong><\/h3>\n\n\n\n<p>Re\u0161enje koje je klijent poku\u0161ao da koristi za backup se zove Velero. Re\u010d je o zrelom&nbsp;bekap projektu koji ima mogu\u0107nost bekapovanja volumena u Kubernetesu, ali mu to nije primarna namena niti zamisao.&nbsp;<\/p>\n\n\n\n<p>Na\u0161 predlog je bio nalik developerskom pristupu klijenta. Naime, Velero jeste backup re\u0161enje, ali inicijalno zami\u0161ljeno da radi sveobuhvatan bekap Kubernetes klastera kao sistema za orkestraciju kontejnera. Kubernetes se sastoji iz niza komponenti i ne postoji integrisan sistem za bekap koji \u0107e dozvoliti da se uradi restore klastera koji je bespovratno o\u0161te\u0107en. Velero re\u0161ava taj problem tako \u0161to sklanja vitalne konfiguracije na izme\u0161tenu i sigurnu bekap lokaciju po izboru. U na\u0161em slu\u010daju to je bio object storage koji je klijent ve\u0107 koristio i koji se ne nalazio u istom data centru.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Izazov 5: Backup volumena<\/strong><strong><\/strong><\/h3>\n\n\n\n<p>Na istoj liniji backup izazova je bio backup volumena. Tu je na scenu studio Kanister, open-source projekat koji dozvoljava da se defini\u0161e API unutar Kubernetesa u vidu resursa koji se poziva i radi bekap na na\u010din na koji klijentu treba. Kanister dolazi sa definicijama za bekapovanje baza podataka raznih vrsta. SQL, NoSQL, GraphQL, timeseries, itd. Backypovanje prostog storage-a se defini\u0161e kao job, ba\u0161 kao i restore.&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=\"Sta_smo_naucili\"><\/span><strong>\u0160ta smo nau\u010dili&nbsp;<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Raditi sa tradicionalnim tehnologijama je veliki izazov u modernom dobu. Cloud-centric IT scena nas sve menja, ali je uvek dobra ve\u017eba vratiti se korenima i razmi\u0161ljati manuelno, komponentu po komponentu. Tu i vidimo kako smo zapravo kao Ops i dalje kompatibilni sa Dev delom, i kako njihov pristup da jedna komponenta re\u0161ava jedan problem zapravo decentralizuje procese i \u010dini da sistem koji deluje (nepotrebno) robusno zapravo mo\u017ee da radi izuzetno dobro i da bude veoma otporan na katastrofi\u010dne scenarije.<\/p>\n\n\n\n<p>U toku projekta&nbsp;smo&nbsp;otkrili nove alate koji su korisni za razli\u010dite situacije, kao \u0161to su Kanister, Reflector, Karpenter i&nbsp;Kyverno,<\/p>\n\n\n\n<p>Nau\u010dili smo i da svako distribuirano re\u0161enje nije distribuirano u svakoj situaciji. Ne\u0161to mora da bude namenski osmi\u0161ljeno za on-prem situacije, ina\u010de se pona\u0161a kao prosta unija sa resursima koji zavise od toga kada su i kako dodati. Takav skup resursa nije otporan i samim tim nije mnogo efikasan.&nbsp;<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kompletan audit Kubernetesa u on-premise okru\u017eenju na primeru realnog klijenata i povratak 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":[308,349],"tags":[44,309],"class_list":["post-34397","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-101-en","category-kubernetes-en","tag-cloud","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 Kubernets klaster\u00a0- povratak na tradicionalni dev mindset\u00a0<\/title>\n<meta name=\"description\" content=\"Kompletan audit Kubernetesa u on-premise okru\u017eenju na primeru realnog klijenata i povratak 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\/sr\/blog\/on-prem-kubernets-klaster\/\" \/>\n<meta property=\"og:locale\" content=\"sr_RS\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"On-prem Kubernets klaster\u00a0- povratak na tradicionalni dev mindset\u00a0\" \/>\n<meta property=\"og:description\" content=\"Kompletan audit Kubernetesa u on-premise okru\u017eenju na primeru realnog klijenata i povratak na old-school dev mindset.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/\" \/>\n<meta property=\"og:site_name\" content=\"Mainstream\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-25T10:03:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-18T09:05:17+00:00\" \/>\n<meta name=\"author\" content=\"Mainstream\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043e\u0434\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mainstream\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u041f\u0440\u043e\u0446\u0435\u045a\u0435\u043d\u043e \u0432\u0440\u0435\u043c\u0435 \u0447\u0438\u0442\u0430\u045a\u0430\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 \u043c\u0438\u043d\u0443\u0442\u0430\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/blog\\\/on-prem-kubernets-klaster\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/blog\\\/on-prem-kubernets-klaster\\\/\"},\"author\":{\"name\":\"Mainstream\",\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/#\\\/schema\\\/person\\\/2641be85ce58ab61df2554de02b325d3\"},\"headline\":\"On-prem Kubernets klaster\u00a0&#8211; povratak na tradicionalni dev mindset\u00a0\",\"datePublished\":\"2025-04-25T10:03:20+00:00\",\"dateModified\":\"2025-09-18T09:05:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/blog\\\/on-prem-kubernets-klaster\\\/\"},\"wordCount\":1468,\"image\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/blog\\\/on-prem-kubernets-klaster\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mainstream.eu\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/kubernetes-blog.jpg\",\"keywords\":[\"cloud\",\"cloud\"],\"articleSection\":[\"Cloud 101\",\"Kubernetes\"],\"inLanguage\":\"sr-RS\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/blog\\\/on-prem-kubernets-klaster\\\/\",\"url\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/blog\\\/on-prem-kubernets-klaster\\\/\",\"name\":\"On-prem Kubernets klaster\u00a0- povratak na tradicionalni dev mindset\u00a0\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/blog\\\/on-prem-kubernets-klaster\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/blog\\\/on-prem-kubernets-klaster\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/mainstream.eu\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/kubernetes-blog.jpg\",\"datePublished\":\"2025-04-25T10:03:20+00:00\",\"dateModified\":\"2025-09-18T09:05:17+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/#\\\/schema\\\/person\\\/2641be85ce58ab61df2554de02b325d3\"},\"description\":\"Kompletan audit Kubernetesa u on-premise okru\u017eenju na primeru realnog klijenata i povratak na old-school dev mindset.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/blog\\\/on-prem-kubernets-klaster\\\/#breadcrumb\"},\"inLanguage\":\"sr-RS\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/mainstream.eu\\\/sr\\\/blog\\\/on-prem-kubernets-klaster\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sr-RS\",\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/blog\\\/on-prem-kubernets-klaster\\\/#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\\\/sr\\\/blog\\\/on-prem-kubernets-klaster\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Po\u010detna\",\"item\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"On-prem Kubernets klaster\u00a0&#8211; povratak na tradicionalni dev mindset\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\":\"sr-RS\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mainstream.eu\\\/sr\\\/#\\\/schema\\\/person\\\/2641be85ce58ab61df2554de02b325d3\",\"name\":\"Mainstream\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sr-RS\",\"@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\\\/sr\\\/author\\\/mainstream\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"On-prem Kubernets klaster\u00a0- povratak na tradicionalni dev mindset\u00a0","description":"Kompletan audit Kubernetesa u on-premise okru\u017eenju na primeru realnog klijenata i povratak 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\/sr\/blog\/on-prem-kubernets-klaster\/","og_locale":"sr_RS","og_type":"article","og_title":"On-prem Kubernets klaster\u00a0- povratak na tradicionalni dev mindset\u00a0","og_description":"Kompletan audit Kubernetesa u on-premise okru\u017eenju na primeru realnog klijenata i povratak na old-school dev mindset.","og_url":"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/","og_site_name":"Mainstream","article_published_time":"2025-04-25T10:03:20+00:00","article_modified_time":"2025-09-18T09:05:17+00:00","author":"Mainstream","twitter_card":"summary_large_image","twitter_image":"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog.jpg","twitter_misc":{"\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u043e\u0434":"Mainstream","\u041f\u0440\u043e\u0446\u0435\u045a\u0435\u043d\u043e \u0432\u0440\u0435\u043c\u0435 \u0447\u0438\u0442\u0430\u045a\u0430":"7 \u043c\u0438\u043d\u0443\u0442\u0430"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/#article","isPartOf":{"@id":"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/"},"author":{"name":"Mainstream","@id":"https:\/\/mainstream.eu\/sr\/#\/schema\/person\/2641be85ce58ab61df2554de02b325d3"},"headline":"On-prem Kubernets klaster\u00a0&#8211; povratak na tradicionalni dev mindset\u00a0","datePublished":"2025-04-25T10:03:20+00:00","dateModified":"2025-09-18T09:05:17+00:00","mainEntityOfPage":{"@id":"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/"},"wordCount":1468,"image":{"@id":"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/#primaryimage"},"thumbnailUrl":"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog.jpg","keywords":["cloud","cloud"],"articleSection":["Cloud 101","Kubernetes"],"inLanguage":"sr-RS"},{"@type":"WebPage","@id":"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/","url":"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/","name":"On-prem Kubernets klaster\u00a0- povratak na tradicionalni dev mindset\u00a0","isPartOf":{"@id":"https:\/\/mainstream.eu\/sr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/#primaryimage"},"image":{"@id":"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/#primaryimage"},"thumbnailUrl":"https:\/\/mainstream.eu\/wp-content\/uploads\/2025\/04\/kubernetes-blog.jpg","datePublished":"2025-04-25T10:03:20+00:00","dateModified":"2025-09-18T09:05:17+00:00","author":{"@id":"https:\/\/mainstream.eu\/sr\/#\/schema\/person\/2641be85ce58ab61df2554de02b325d3"},"description":"Kompletan audit Kubernetesa u on-premise okru\u017eenju na primeru realnog klijenata i povratak na old-school dev mindset.","breadcrumb":{"@id":"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/#breadcrumb"},"inLanguage":"sr-RS","potentialAction":[{"@type":"ReadAction","target":["https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/"]}]},{"@type":"ImageObject","inLanguage":"sr-RS","@id":"https:\/\/mainstream.eu\/sr\/blog\/on-prem-kubernets-klaster\/#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\/sr\/blog\/on-prem-kubernets-klaster\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Po\u010detna","item":"https:\/\/mainstream.eu\/sr\/"},{"@type":"ListItem","position":2,"name":"On-prem Kubernets klaster\u00a0&#8211; povratak na tradicionalni dev mindset\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":"sr-RS"},{"@type":"Person","@id":"https:\/\/mainstream.eu\/sr\/#\/schema\/person\/2641be85ce58ab61df2554de02b325d3","name":"Mainstream","image":{"@type":"ImageObject","inLanguage":"sr-RS","@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\/sr\/author\/mainstream\/"}]}},"_links":{"self":[{"href":"https:\/\/mainstream.eu\/sr\/wp-json\/wp\/v2\/posts\/34397","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mainstream.eu\/sr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mainstream.eu\/sr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mainstream.eu\/sr\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/mainstream.eu\/sr\/wp-json\/wp\/v2\/comments?post=34397"}],"version-history":[{"count":0,"href":"https:\/\/mainstream.eu\/sr\/wp-json\/wp\/v2\/posts\/34397\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mainstream.eu\/sr\/wp-json\/wp\/v2\/media\/34404"}],"wp:attachment":[{"href":"https:\/\/mainstream.eu\/sr\/wp-json\/wp\/v2\/media?parent=34397"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mainstream.eu\/sr\/wp-json\/wp\/v2\/categories?post=34397"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mainstream.eu\/sr\/wp-json\/wp\/v2\/tags?post=34397"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}