{"id":36918,"date":"2019-10-31T22:14:43","date_gmt":"2019-10-31T19:14:43","guid":{"rendered":"https:\/\/prohoster.info\/blog\/bezopasnost-helm\/"},"modified":"2019-10-31T22:14:43","modified_gmt":"2019-10-31T19:14:43","slug":"bezopasnost-helm","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/bezopasnost-helm","title":{"rendered":"Varnost Helm","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Osnovna tema pri\u010du o najpopularnijem menad\u017eeru paketa za Kubernetes mo\u017ee se prikazati emod\u017eijem:<\/p>\n<ul>\n<li>kutija \u2014 to je Helm (to je najprikladnije u poslednjoj verziji emod\u017eija);<\/li>\n<li>klju\u010da \u2014 sigurnost;<\/li>\n<li>\u010dovek \u2014 re\u0161enje problema.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/91099b372fd73bce94268563c3ee2c50.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nU stvarnosti, sve \u0107e biti malo slo\u017eenije, i pri\u010da je puna tehni\u010dkih detalja o tome, <b>kako u\u010diniti Helm sigurnim<\/b>.<\/p>\n<ul>\n<li>Kratko o tome \u0161ta je Helm, ako niste znali ili ste zaboravili. Koje probleme re\u0161ava i gde se nalazi u ekosistemu.<\/li>\n<li>Razmotri\u0107emo arhitekturu Helma. Nijedan razgovor o sigurnosti i o tome kako u\u010diniti alat ili re\u0161enje bezbednijim ne mo\u017ee pro\u0107i bez razumevanja arhitekture komponenti.<\/li>\n<li>Razgovara\u0107emo o komponentama Helma.<\/li>\n<li>Najva\u017enije pitanje \u2014 budu\u0107nost \u2014 nova verzija Helma 3.\u00a0<\/li>\n<\/ul>\n<p>\nSve u ovom \u010dlanku odnosi se na Helm 2. Ova verzija je trenutno u produkciji i verovatno je to \u0161to trenutno koristite, i u njoj postoje bezbednosni rizici.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"_8zNTJ1_R5I\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/_8zNTJ1_R5I\/hqdefault.jpg\" alt=\"Predvajaj video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><br \/>\n<strong>O predava\u010du:<\/strong> Aleksandar Hajorov (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/allexx\/\" class=\"user_link\">allexx<\/a><\/noindex>) se bavi razvojem ve\u0107 10 godina, poma\u017ee u unapre\u0111enju sadr\u017eaja <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.python.ru\/2019\">Moscow Python Conf++<\/a><\/noindex> i pridru\u017eio se odboru <noindex><a rel=\"nofollow\" href=\"https:\/\/events.linuxfoundation.org\/events\/helm-summit-2019\/\">Helm Summit<\/a><\/noindex>. Trenutno radi u Chainstack-u kao voditelj razvoja \u2014 to je hibrid izme\u0111u vo\u0111e razvoja i osobe zadu\u017eene za isporuku finalnih izdanja. Dakle, nalazi se na liniji fronta, gde se sve de\u0161ava od stvaranja proizvoda do njegove eksploatacije.<\/p>\n<p>Chainstack je mali, aktivno rastu\u0107i startap, \u010dija je misija da omogu\u0107i klijentima da zaborave na infrastrukturu i komplikacije upravljanja decentralizovanim aplikacijama, tim za razvoj se nalazi u Singapuru. Ne pitajte Chainstack da proda ili kupi kriptovalutu, ali predlo\u017eite razgovor o enterprise blockchain okvirima, i rado \u0107e vam odgovoriti.<\/p>\n<h2>Helm<\/h2>\n<p>\nTo je menad\u017eer paketa (chartova) za Kubernetes. Najjasniji i najuniverzalniji na\u010din za dovo\u0111enje aplikacija u Kubernetes klaster.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/30c0fc1cc1c6ebde97c6e8ec1886ce9f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNaravno, re\u010d je o strukturiranijem i industrijskom pristupu, nego o pravljenju sopstvenih YAML manifestacija i pisanju malih alata.<\/p>\n<blockquote><p>Helm je najbolje \u0161to trenutno imamo od dostupnih i popularnih.<\/p><\/blockquote>\n<p>\nZa\u0161to Helm? Pre svega zato \u0161to ga podr\u017eava CNCF. Cloud Native je velika organizacija, mati\u010dna kompanija za projekte Kubernetes, etcd, Fluentd i druge.<\/p>\n<p>\u0160e en pomemben podatek: Helm je zelo priljubljen projekt. Ko sem januarja 2019 le razmi\u0161ljal o tem, kako narediti Helm varen, je imel projekt tiso\u010d zvezdic na GitHubu. Do maja jih je bilo \u017ee 12 tiso\u010d.<\/p>\n<p>Veliko ljudi se zanima za Helm, zato vam bodo, tudi \u010de ga \u0161e ne uporabljate, znanja o njegovi varnosti pri\u0161la prav. <strong>Varnost je pomembna.<\/strong><\/p>\n<p>Glavno ekipo Helma podpira Microsoft Azure, zato je to razmeroma stabilen projekt v primerjavi z mnogimi drugimi. Izdaja Helm 3 Alpha 2 sredi julija ka\u017ee, da na projektu dela precej\u0161nje \u0161tevilo ljudi, ki imajo voljo in mo\u010d, da razvijajo ter izbolj\u0161ujejo Helm.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/e53c8e64c3cf5eea3fbd9b0095b0f81e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHelm re\u0161uje ve\u010d temeljnih te\u017eav pri upravljanju aplikacij v Kubernetesu.<\/p>\n<ul>\n<li>Pakiranje aplikacije. Tudi aplikacija tipa \u201eHello, World\u201c na WordPressu \u017ee predstavlja ve\u010d storitev, ki jih \u017eelimo skupaj pakirati.<\/li>\n<li>Upravljanje zapletenosti, ki nastane pri upravljanju teh aplikacij.<\/li>\n<li>\u017divljenjski ciklus, ki se ne kon\u010da z namestitvijo ali uvajanjem aplikacije. Aplikacija \u017eivi naprej, potrebno jo je posodobiti, pri \u010demer Helm pomaga in se trudi prinesti prave ukrepe in politike.<\/li>\n<\/ul>\n<p>\n<strong>Pakiranje<\/strong> je zasnovano na razumljiv na\u010din: obstajajo metapodatki, ki so v popolnem skladu z delovanjem obi\u010dajnega upravitelja paketov za Linux, Windows ali MacOS. To pomeni repozitorij, odvisnosti od razli\u010dnih paketov, meta informacije za aplikacije, nastavitve, posebnosti konfiguracije, indeksiranje informacij in tako naprej. Vse to Helm omogo\u010da za pridobitev in uporabo pri aplikacijah.<\/p>\n<p><strong>Upravljanje zapletenosti<\/strong>. \u010ce imate veliko enakih aplikacij, potrebujete parametrizacijo. Iz tega izhajajo predloge, vendar da ne bi izumljali svojega na\u010dina ustvarjanja predlog, lahko uporabite tisto, kar Helm ponuja iz \u0161katle.<\/p>\n<p><strong>Upravljanje \u017eivljenjskega cikla aplikacije<\/strong> \u2014 po mojem mnenju je to najzanimivej\u0161a in \u0161e nere\u0161ena vpra\u0161anja. To je razlog, zakaj sem se neko\u010d odlo\u010dil za Helm. Potrebovali smo slediti \u017eivljenjskemu ciklu aplikacije, \u017eeleli smo prenesti na\u0161 CI\/CD in cikle aplikacij v to paradigmo.<\/p>\n<p>Helm omogo\u010da:<\/p>\n<ul>\n<li>upravljanje uvajanj, uvaja koncept konfiguracije in revizije;<\/li>\n<li>uspe\u0161no izvajati rollback;<\/li>\n<li>uporabljati hooke za razli\u010dne dogodke;<\/li>\n<li>dodajati dodatne preglede aplikacij in se odzivati na njihove rezultate.<\/li>\n<\/ul>\n<p>\nPoleg tega <strong>Helm ima 'baterije'<\/strong> \u2014 veliko \u0161tevilo okusnih stvari, ki jih je mogo\u010de vklju\u010diti kot vti\u010dnike, s \u010dimer si poenostavite \u017eivljenje. Vti\u010dnike lahko napi\u0161ete sami, so dovolj izolirani in ne zahtevajo kompleksne arhitekture. \u010ce \u017eelite nekaj uresni\u010diti, priporo\u010dam, da to storite kot vti\u010dnik, nato pa ga morda vklju\u010dite v upstream.<\/p>\n<p>Helm temelji na treh osnovnih konceptih:<\/p>\n<ul>\n<li><strong>Chart Repo<\/strong> \u2014 opis in niz parametrizacije, mo\u017ene za va\u0161 manifest.\u00a0<\/li>\n<li><strong>Konfiguracija<\/strong> \u2014 torej vrednosti, ki se bodo uporabile (besedilo, \u0161tevil\u010dne vrednosti itd.).<\/li>\n<li><strong>Release<\/strong> zdru\u017euje dva zgornja komponenta, ki se skupaj spremenita v Release. Izdaje je mogo\u010de verzionirati, s tem pa dose\u010di organizacijo \u017eivljenjskega cikla: majhno ob namestitvi in veliko ob nadgradnji, zni\u017eanju ali povratku.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Arhitektura Helm<\/h2>\n<p>\nNa shemi je konceptualno prikazana visoka raven arhitekture Helm.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/c5cf54890682a3d6ca7a45021b5006a1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOpominjam, da je Helm nekaj, kar je povezano s Kubernetesom. Zato brez klasterja Kubernetes ne gre (pravokotnik). Komponenta kube-apiserver je na masterju. Brez Helma imamo Kubeconfig. Helm prina\u0161a eno majhno binarno, \u010de tako lahko re\u010demo, orodje Helm CLI, ki se namesti na ra\u010dunalnik, prenosnik, glavno napravo \u2014 na karkoli.<\/p>\n<p>Toda to ni dovolj. Helm ima stre\u017eni komponent Tiller. Ta zastopa interese Helma znotraj klasterja, je podobna aplikacija znotraj klasterja Kubernetes, kot vsaka druga.<\/p>\n<p>Naslednji komponent Chart Repo \u2014 repozitorij s charti. Obstaja uradni repozitorij in lahko obstaja zasebni repozitorij podjetja ali projekta.<\/p>\n<h3>Interakcija<\/h3>\n<p>\nPoglejmo, kako komponente arhitekture sodelujejo, ko \u017eelimo namestiti aplikacijo s pomo\u010djo Helma.<\/p>\n<ul>\n<li>Re\u010demo <code>Helm install<\/code>, se obrnejo na repozitorij (Chart Repo) in pridobimo Helm chart.<\/li>\n<\/ul>\n<p><\/p>\n<ul>\n<li>Helm orodje (Helm CLI) interactira s Kubeconfig, da izve, kateri klaster naj pokli\u010de.\u00a0<\/li>\n<li>Ko pridobi te informacije, orodje pokli\u010de Tillerja, ki se nahaja v na\u0161em klasterju, kot aplikacijo.\u00a0<\/li>\n<li>Tiller pokli\u010de Kube-apiserver, da izvede dejanja v Kubernetesu, ustvari nekateri objekti (storitev, pod, replik, skrivnosti itd.).<\/li>\n<\/ul>\n<p>\nNato bomo zapletli shemo, da vidimo vektor napadov, katerim je lahko izpostavljena celotna arhitektura Helma. Nato jo bomo posku\u0161ali za\u0161\u010dititi.<\/p>\n<h3>Vektor napadov<\/h3>\n<p>\nPrvo potencialno \u0161ibko mesto \u2014 <strong>privilegiran API<\/strong>\u2014<strong>uporabnik<\/strong>V okviru sheme je to heker, ki je pridobil admin dostop do Helm CLI.<\/p>\n<p><strong>Nepreprivilegiran API uporabnik<\/strong> prav tako lahko predstavlja nevarnost, \u010de je kje blizu. Tak uporabnik bo imel drug kontekst, na primer, lahko bo zabele\u017een v enem namespace-u klustra v nastavitvah Kubeconfig.<\/p>\n<p>Najbolj zanimiva vektorska napada je lahko proces, ki se nahaja znotraj klustra nekje blizu Tillerja in ga lahko pokli\u010de. To je lahko spletni stre\u017enik ali mikroservis, ki vidi omre\u017eno okolje klustra.<\/p>\n<p>Ekzoti\u010dna, a nara\u0161\u010dajo\u010de priljubljena, mo\u017enost napada je povezana s Chart Repo. \u010cart, ki ga je ustvaril zlonamerni avtor, lahko vsebuje nezanesljive vire in ga boste izvedli, ker ste mu zaupali. Lahko pa tudi zamenja \u010dart, ki ga prena\u0161ate z uradnega repozitorija, in na primer ustvari vir v obliki politik in si tako escalira dostop.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/2828046feb9ba8413a1b0e8741b4c354.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPoskusimo se obraniti pred napadi s vseh teh \u0161tirih strani in ugotoviti, kje so tu te\u017eave v arhitekturi Helma, in kje morda niso.<\/p>\n<p>Pove\u010dajmo shemo, dodajmo ve\u010d elementov, a ohranimo vse osnovne sestavine.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/4110898e79619b8546408c668c48da0d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHelm CLI komunicira s Chart Repo, sodeluje s Kubeconfig, delo se prenese v kluster v komponento Tiller.<\/p>\n<p>Tiller je predstavljen z dvema objektoma:<\/p>\n<ul>\n<li>Tiller-deploy svc, ki dolo\u010da nek servis;<\/li>\n<li>Tiller-deploy pod (na shemi v enem samem primeru v eni repliki), na katerem deluje celotna obremenitev, ki se obra\u010da na kluster.<\/li>\n<\/ul>\n<p>\nZa interakcijo se uporabljajo razli\u010dni protokoli in sheme. Z vidika varnosti so nam najbolj zanimivi:<\/p>\n<ul>\n<li>Mehanizem, s pomo\u010djo katerega Helm CLI dostopa do chart repo: kateri protokol, ali obstaja avtentikacija in kaj lahko s tem storimo.<\/li>\n<li>Protokol, po katerem Helm CLI, ob uporabi kubectl, komunicira s Tillerjem. Gre za RPC stre\u017enik, name\u0161\u010den znotraj klustra.<\/li>\n<li>Sam Tiller je dostopen mikroservisom, ki se nahajajo v klstru, in komunicira s Kube-apiserverjem.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/19e7e085567f3bbb49746e6402926bd6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nObravnavali bomo vsa ta podro\u010dja po vrsti.<\/p>\n<h2>RBAC<\/h2>\n<p><\/p>\n<blockquote><p>Brezplodno je govoriti o kakr\u0161ni koli varnosti Helma ali drugega servisa znotraj klustra, \u010de RBAC ni vklopljen.<\/p><\/blockquote>\n<p>\nZdi se, da to ni najnovej\u0161a priporo\u010dila, a sem prepri\u010dan, da \u0161e vedno mnogi niso vklopili RBAC niti v produkciji, ker je to velika te\u017eava in je potrebno veliko nastaviti. Kljub temu pozivam, da to storite.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/37ee8aeb2b331b75ea5569c0b114a756.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/rbac.dev\/\">https:\/\/rbac.dev\/<\/a><\/noindex> \u2014 pravni sajt za RBAC. Tu se okuplja ogroman broj zanimljivih materijala koji \u0107e pomo\u0107i u pode\u0161avanju RBAC-a, prikazati za\u0161to je dobar i kako uop\u0161te \u017eiveti s njim u produkciji.<\/p>\n<p>Poku\u0161a\u0107u objasniti kako funkcioni\u0161u Tiller i RBAC. Tiller radi unutar klastera pod nekim servisnim nalogom. Obi\u010dno, ako RBAC nije pode\u0161en, to \u0107e biti superkorisnik. U osnovnoj konfiguraciji, Tiller \u0107e biti administrator. Zato se \u010desto ka\u017ee da je Tiller \u2014 SSH tunel za va\u0161 klaster. U stvarnosti je to tako, pa se mo\u017ee koristiti poseban specijalizovani servisni nalog umesto Default Service Account na gornjem dijagramu.<\/p>\n<p>Kada inicijalizujete Helm, prvi put ga instalirate na server, mo\u017eete postaviti servisni nalog pomo\u0107u <code>--service-account<\/code>. To \u0107e omogu\u0107iti kori\u0161\u0107enje korisnika sa minimalnim potrebnim skupom prava. Ipak, mora\u0107ete da kreirate takvu \"nizu\": Role i RoleBinding.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/ec805cde756495cfd5c480ac40739c43.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa\u017ealost, Helm to ne\u0107e u\u010diniti umesto vas. Vama ili va\u0161em administratoru Kubernetes klastera potrebno je unapred pripremiti skup Role i RoleBinding za servisni nalog, kako bi se prosledili Helmu.<\/p>\n<p>Postavlja se pitanje \u2014 koja je razlika izme\u0111u Role i ClusterRole? Razlika je u tome \u0161to ClusterRole deluje za sve namespaces, za razliku od obi\u010dnih Role i RoleBinding, koji rade samo za specijalizovani namespace. Mo\u017eete postaviti politike i za ceo klaster i sve namespaces, kao i personalizovano za svaki namespace posebno.<\/p>\n<p>Vredno je pomenuti da RBAC tako\u0111e re\u0161ava jo\u0161 jedan veliki problem. Mnogi se \u017eale da Helm, na\u017ealost, nije multitenancy (ne podr\u017eava vi\u0161e stanara). Ako vi\u0161e timova koristi klaster i koristi Helm, nije mogu\u0107e postaviti politike i razdvojiti njihov pristup u okviru ovog klastera, jer postoji neki servisni nalog pod kojim radi Helm, i on stvara resurse u klasteru, \u0161to ponekad mo\u017ee biti vrlo neprikladno. To je istina \u2014 kao sam izvr\u0161ni fajl, kao proces, <strong>Helm Tiller nema koncept multitenancy.<\/strong>.<\/p>\n<p>Me\u0111utim, postoji odli\u010dan na\u010din koji omogu\u0107ava pokretanje Tillera u klasteru vi\u0161e puta. Sa tim nema nikakvih problema, Tiller se mo\u017ee pokrenuti u svakom namespace-u. Na taj na\u010din mo\u017eete iskoristiti RBAC, Kubeconfig kao kontekst, i ograni\u010diti pristup specijalnom Helmu.<\/p>\n<p>To \u0107e izgledati ovako.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/eae922c7b5e1422fb51667364ed79e0a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa primjer, postoje dvije Kubeconfig datoteke s kontekstom za razli\u010dite timove (dva namespace): X Team za tim programera i klaster admina. Klaster admina ima svoj \u0161iroki Tiller, koji se nalazi u prostoru Kube-system namespace, a samim tim i napredni service-account. I odvojen namespace za tim programera, koji \u0107e mo\u0107i implementirati svoje usluge u posebni namespace.<\/p>\n<p>To je funkcionalan pristup, Tiller nije toliko pro\u017ederan da bi to zna\u010dajno utjecalo na va\u0161 bud\u017eet. To je jedno od brzih rje\u0161enja.<\/p>\n<blockquote><p>Ne ustru\u010davajte se zasebno konfigurirati Tiller i osigurati Kubeconfig s kontekstom za tim, za odre\u0111enog programera ili za okru\u017eenje: Dev, Staging, Production (doubtful that everything will be on the same cluster, however, this can be done).<\/p><\/blockquote>\n<p>\nNastavljaju\u0107i na\u0161u pri\u010du, prebacit \u0107emo se s RBAC-a i razgovarati o ConfigMaps.<\/p>\n<h3>ConfigMaps<\/h3>\n<p>\nHelm koristi ConfigMaps kao skladi\u0161te podataka. Kada smo govorili o arhitekturi, nigdje nije bila baza podataka u kojoj bi se nalazile informacije o izdanjima, konfiguracijama, povratcima itd. Za to se koristi ConfigMaps.<\/p>\n<p>Glavni problem s ConfigMaps je poznat \u2014 oni nisu sigurni u na\u010delu, u njima <strong>nije mogu\u0107e pohranjivati sensitive podatke<\/strong>. To se odnosi na sve \u0161to ne bi smjelo iza\u0107i iz servisa, poput lozinki. Najnativniji na\u010din za Helm trenutno je prije\u0107i s kori\u0161tenja ConfigMaps na tajne.<\/p>\n<p>To se radi vrlo lako. Override-ate postavku Tiller-a i navodite da \u0107e skladi\u0161te biti tajne. Tada \u0107ete pri svakoj implementaciji dobiti ne ConfigMap, nego tajnu.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/7fd12bfbed5c6c8111a5126c2ab9f853.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMo\u017eete prigovoriti da su same tajne \u2014 neobi\u010dna koncepcija, i to ne izgleda previ\u0161e sigurno. Me\u0111utim, treba razumjeti da se time bave sami programeri Kubernetes-a. Po\u010dev\u0161i od verzije 1.10, tj. ve\u0107 dosta vremena, postoji mogu\u0107nost, barem u javnim obla\u010dnim uslugama, povezivanja ispravnog skladi\u0161ta za pohranu tajni. Trenutno tim radi na tome da jo\u0161 bolje kontrolira pristup tajnama, pojedina\u010dnim podovima ili drugim entitetima.<\/p>\n<blockquote><p>Skladi\u0161te Helm je bolje prebaciti na tajne, a njih zauzvrat centralizirano osigurati.<\/p><\/blockquote>\n<p>\nNaravno, ostat \u0107e <strong>limit za pohranu podataka od 1 MB<\/strong>. Helm tukaj uporablja etcd kot porazdeljeno shrambo za ConfigMaps. In tam so se odlo\u010dili, da je to primeren kos podatkov za replikacije itd. Na to temo je zanimiva razprava na Redditu, priporo\u010dam, da najdete to zabavno branje za konec tedna ali preberete povzetek. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\/issues\/1413\">tukaj<\/a><\/noindex>.<\/p>\n<h3>Chart Repos<\/h3>\n<p>\nCharte so najbolj dru\u017ebeno ranljive in lahko postanejo vir \"Man in the middle\", \u0161e posebej, \u010de uporabite privzeto re\u0161itev. V prvi vrsti gre za repozitorije, ki so dostopni preko HTTP.<\/p>\n<blockquote><p>Definitivno je potrebno nastaviti Helm Repo preko HTTPS \u2014 to je najbolj\u0161a mo\u017enost in ni draga.<\/p><\/blockquote>\n<p>\nUpo\u0161tevajte <strong>mehanizem podpisovanja chartov<\/strong>. Tehnologija je enostavna do grozljivosti. To je isto, kar uporabljate na GitHubu, obi\u010dajna PGP mehanizacija z javnimi in privatnimi klju\u010di. Nastavite in prepri\u010dani boste, saj imate potrebne klju\u010de in podpisujete vse, kar je res va\u0161 chart.<\/p>\n<p>Pored toga, <strong>Helm odjemalec podpira TLS<\/strong> (ne v smislu HTTP s strani stre\u017enika, temve\u010d mutual TLS). Uporabite lahko stre\u017eni\u0161ke in odjemalske klju\u010de za komunikacijo. Moram biti iskren, tega mehanizma ne uporabljam zaradi neprednosti do mutual certifikatov. Na splo\u0161no, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/chartmuseum\">chartmuseum<\/a><\/noindex> \u2014 glavno orodje za postavitev Helm Repo za Helm 2 \u2014 podpira tudi basic auth. Lahko uporabite basic auth, \u010de je to bolj priro\u010dno in umirjujo\u010de.<\/p>\n<p>\u0160e obstaja plugin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hayorov\/helm-gcs\">helm-gcs<\/a><\/noindex>, ki omogo\u010da gostovanje Chart Repos v Google Cloud Storage. To je precej priro\u010dno, odli\u010dno deluje in je dovolj varno, saj se uni\u010dijo vsi opisani mehanizmi.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/6a72bfd96c7eb0e2fdd7bcbf128e6433.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u010ce omogo\u010dite HTTPS ali TLS, uporabite mTLS, pove\u017eite basic auth, da \u0161e dodatno zmanj\u0161ate tveganja, dobite varen komunikacijski kanal med Helm CLI in Chart Repo.<\/p>\n<h3>gRPC API<\/h3>\n<p>\nNaslednji korak je zelo odgovoren \u2014 za\u0161\u010dititi Tiller, ki se nahaja v klastru in je, po eni strani, stre\u017enik, po drugi strani \u2014 se sam obra\u010da na druge komponente in se posku\u0161a predstavljati kot nekdo drug.<\/p>\n<p>Kot sem \u017ee rekel, Tiller je storitev, ki ponuja gRPC, Helm odjemalec se povezuje z njim preko gRPC. Po privzetih nastavitvah je TLS seveda izklopljen. Zakaj je to narejeno \u2014 vpra\u0161anje je diskuzijsko, zdi se mi, da je to za poenostavitev nastavitve na za\u010detku.<\/p>\n<blockquote><p>Za produkcijo in celo za staging priporo\u010dam, da omogo\u010dite TLS na gRPC.<\/p><\/blockquote>\n<p>\nPo mojem mnenju, v nasprotju z mTLS za grafi\u010dne karte, je to tukaj primerno in enostavno za izvedbo \u2014 generirate infrastrukturo PQI, ustvarite certifikat, za\u017eenete Tiller in predate certifikat med inicializacijo. Po tem lahko izvajate vse Helm ukaze, identificirate se z generiranim certifikatom in zasebnim klju\u010dem.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/ed55b9a465ed1278b272c52c90b2b345.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nS tem se za\u0161\u010ditite pred vsemi zahtevki do Tillerja izven klasterja.<\/p>\n<p>Torej, za\u0161\u010ditili smo povezovalni kanal do Tillerja, \u017ee razpravljali o RBAC in prilagodili pravice Kubernetes apiserverja ter zmanj\u0161ali domeno, s katero lahko komunicira.<\/p>\n<h2>Zavarovan Helm<\/h2>\n<p>\nPoglejmo kon\u010dno shemo. To je enaka arhitektura s istimi pu\u0161\u010dicami.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/6672e254ad93b917f57794e1619a572e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVse povezave zdaj lahko brez skrbi ozna\u010dimo z zeleno:<\/p>\n<ul>\n<li>za Chart Repo uporabljamo TLS ali mTLS in osnovno avtentifikacijo;<\/li>\n<li>mTLS za Tiller, ki je nastavljen kot gRPC storitev s TLS, uporabljamo certifikate;<\/li>\n<li>v klasterju se uporablja posebna servisna ra\u010dunala s pravicami in RoleBinding-om.\u00a0<\/li>\n<\/ul>\n<p>\nZnatno smo za\u0161\u010ditili klaster, vendar je nekdo pameten dejal:<\/p>\n<blockquote><p>\u201ePopolnoma varna re\u0161itev je lahko samo ena \u2014 izklopljen ra\u010dunalnik, ki je v betonski \u0161katli in ga varujejo vojaki.\u201c<\/p><\/blockquote>\n<p>\nObstajajo razli\u010dni na\u010dini manipulacije s podatki in iskanja novih vektorjev napadov. Vendar sem prepri\u010dan, da vam te priporo\u010ditve omogo\u010dajo uresni\u010ditev osnovnega industrijskega standarda varnosti.<\/p>\n<h2>Bonusp<\/h2>\n<p>\nTa del se neposredno ne nana\u0161a na varnost, vendar bo tudi koristen. Prikazal bom nekatere zanimive stvari, o katerih malo ljudi ve. Na primer, kako iskati grafe \u2014 uradne in neuradne.<\/p>\n<p>U repozitorijumu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\">github.com\/helm\/charts<\/a><\/noindex> trenutno je okoli 300 grafov in dva toka: stable in incubator. Tisti, ki prispevajo, se dobro zavedajo, kako te\u017eko je priti iz incubatorja v stable in kako lahko iz stable hitro izpade\u0161. Vendar to ni najbolj\u0161e orodje za iskanje grafov za Prometheus in vse, kar vam je ljub\u0161e, iz enega preprostega razloga \u2014 to ni portal, kjer bi bilo enostavno iskati pakete.<\/p>\n<p>Obstaja pa storitev <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.helm.sh\/\">hub.helm.sh<\/a><\/noindex>, s pomo\u010djo katere je iskanje grafov bistveno bolj udobno. Najpomembneje je, da tam obstaja veliko ve\u010d zunanjih repozitorijev in na voljo je skoraj 800 grafov. Poleg tega lahko priklju\u010dite svoj repozitorij, \u010de iz kakr\u0161negakoli razloga ne \u017eelite poslati svojih grafov v stable.<\/p>\n<p>Preizkusite hub.helm.sh in razvijajmo ga skupaj. Ta storitev je pod Helm projektom, in lahko prispevate celo v njegov UI, \u010de ste frontend razvijalec in \u017eelite preprosto izbolj\u0161ati videz.<\/p>\n<p>\u0160e posebej bi rad opozoril na <strong>integracijo Open Service Broker API<\/strong>. Zveni zapleteno in nejasno, vendar re\u0161uje te\u017eave, s katerimi se sre\u010dujemo vsi. Pojasnil bom na preprostem primeru.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/3aeb7e0781e50a79b518f1056873f73a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nImamo Kubernetes-kluster, v katerem \u017eelimo zagnati klasi\u010dno aplikacijo \u2014 WordPress. Obi\u010dajno potrebujemo podatkovno bazo za popolno funkcionalnost. Obstaja veliko razli\u010dnih re\u0161itev; na primer, lahko za\u017eenemo svoj stateful servis. To ni ravno priro\u010dno, a mnogi to po\u010dnejo.<\/p>\n<p>Drugi, na primer mi v Chainstack, uporabljajo upravljane podatkovne baze, kot sta MySQL ali PostgreSQL, za stre\u017enike. Tako so na\u0161e baze podatkov nekje v oblaku.<\/p>\n<p>Toda nastane te\u017eava: na\u0161 servis moramo povezati s podatkovno bazo, ustvariti flavor podatkovne baze, prenesti poverilnice in nekako jih upravljati. Vse to obi\u010dajno opravi sistemski administrator ali razvijalec ro\u010dno. In ni nobene te\u017eave, ko je aplikacij malo. Ko jih je veliko, potrebujemo kombajn. Tak kombajn je \u2014 to je Service Broker. Omogo\u010da uporabo posebnega vti\u010dnika za kluster javnega oblaka in naro\u010danje virov pri ponudniku prek Brokerja, kot da gre za API. Za to lahko uporabimo nativna orodja Kubernetes.<\/p>\n<p>To je zelo preprosto. Lahko zahtevamo na primer Managed MySQL v Azure z osnovnim tierjem (to je mogo\u010de nastaviti). Z uporabo API-ja Azure bo baza ustvarjena in pripravljena za uporabo. Ni vam treba posegati v to, za to skrbi vti\u010dnik. Na primer, OSBA (vti\u010dnik Azure) vrne poverilnice v servis in jih prenese nazaj na Helm. Tako boste lahko uporabljali WordPress z oblakom MySQL, brez skrbi o upravljanih podatkovnih bazah in brez te\u017eav s stateful servisi znotraj.<\/p>\n<blockquote><p>Lahko re\u010demo, da Helm deluje kot lepilo, ki na eni strani omogo\u010da uvedbo servisov, na drugi pa porabo virov oblaku.<\/p><\/blockquote>\n<p>\nLahko napi\u0161ete svoj vti\u010dnik in uporabite to zgodbo on-premise. Tako boste imeli svoj vti\u010dnik za korporativnega Cloud ponudnika. Priporo\u010dam, da preizkusite tak pristop, zlasti \u010de imate veliko obseg in \u017eelite hitro razporediti dev, staging ali celo celotno infrastrukturo za funkcijo. To bo olaj\u0161alo \u017eivljenje va\u0161emu operativnemu timu ali DevOps.<\/p>\n<p>\u0160e en odkritje, ki sem ga \u017ee omenjal \u2014 to je <strong>vti\u010dnik helm-gcs<\/strong>, ki omogo\u010da uporabo Google-bucketov (objektno shranjevanje), da shranite Helm grafe.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/30888c4f9b5dba14b87ba1e29e0ebed7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPotrebne so le \u0161tiri ukaze, da ga za\u010dnete uporabljati:<\/p>\n<ol>\n<li>namestite vti\u010dnik;<\/li>\n<li>inisirajte ga;<\/li>\n<li>nastaviti pot na bucket koji se nalazi u gcp;<\/li>\n<li>objaviti grafikone standardnim na\u010dinom.<\/li>\n<\/ol>\n<p>\nLijepo je to \u0161to \u0107e se koristiti nativni na\u010din gcp za autorizaciju. Mo\u017eete koristiti servisni ra\u010dun, ra\u010dun programera \u2014 sve \u0161to \u017eelite. To je vrlo zgodno i ne ko\u0161ta ni\u0161ta u operativnom smislu. Ako, kao i ja, propagirate opsless filozofiju, ovo \u0107e biti veoma zgodno, posebno za male timove.<\/p>\n<h2>Alternatives<\/h2>\n<p>\nHelm nije jedino rje\u0161enje za upravljanje servisima. Ima mnogo pitanja, mo\u017eda zbog toga je tre\u0107a verzija tako brzo do\u0161la. Naravno, postoje alternative.<\/p>\n<p>To mogu biti specijalizovana rje\u0161enja, kao \u0161to su Ksonnet ili Metaparticle. Mo\u017eete koristiti svoja klasi\u010dna sredstva za upravljanje infrastrukturom (Ansible, Terraform, Chef itd.) za iste ciljeve o kojima sam govorio.<\/p>\n<p>Na kraju, postoji rje\u0161enje <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/operator-framework\">Operator Framework<\/a><\/noindex>, \u010dija popularnost raste.<\/p>\n<blockquote><p>Operator Framework je glavna alternativa Helmu, na koju treba obratiti pa\u017enju.<\/p><\/blockquote>\n<p>\nOno je vi\u0161e nativno za CNCF i Kubernetes, <strong>ali je prag ulaska mnogo vi\u0161i<\/strong>, potrebno je vi\u0161e programirati i manje opisivati manifeste.<\/p>\n<p>Postoje razni dodaci, poput Draft, Scaffold. Ovi dodaci jako olak\u0161avaju \u017eivot, na primjer, olak\u0161avaju ciklus slanja i pokretanja Helma za deployment testnog okru\u017eenja. Nazvao bih ih pove\u0107iva\u010dima mogu\u0107nosti.<\/p>\n<p>Evo vizualne obrade o tome gdje \u0161ta stoji.<\/p>\n<p><img decoding=\"async\" alt=\"Varnost Helm\" src=\"\/wp-content\/uploads\/2019\/08\/81a8236c975d5e1649acaaa7989c27ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa horizontalnoj osi je nivo va\u0161e li\u010dne kontrole nad de\u0161avanjima, a na vertikalnoj osi \u2014 nivo nativnosti Kubernetesa. Helm verzija 2 je negdje na sredini. U verziji 3 nije ogromna razlika, ali su pobolj\u0161ani i kontrola i nivo nativnosti. Rje\u0161enja poput Ksonnet ipak zaostaju \u010dak i za Helm 2. Me\u0111utim, vrijedi ih pogledati kako biste znali \u0161to sve jo\u0161 postoji u ovom svijetu. Naravno, va\u0161 menad\u017eer konfiguracija \u0107e biti pod va\u0161om kontrolom, ali nije apsolutno nativan za Kubernetes.<\/p>\n<p>Operator Framework je apsolutno nativan za Kubernetes i omogu\u0107ava elegantnije i pa\u017eljivije upravljanje (ali ne zaboravite na prag ulaska). Radije bi ovo odgovaralo specijalizovanoj aplikaciji i stvaranju menad\u017ementa za nju, nego masovnoj ma\u0161ini za pakovanje velikog broja aplikacija putem Helma.<\/p>\n<p>Pove\u0107iva\u010di samo malo pobolj\u0161avaju kontrolu, dopunjuju radne tokove ili skra\u0107uju uglove CI\/CD pipelina.<\/p>\n<h2>Budu\u0107nost Helma<\/h2>\n<p>\nDobra novica je, da se pojavlja Helm 3. \u017de je iz\u0161la alfa razli\u010dica Helm 3.0.0-alpha.2, ki jo lahko preizkusite. Je dovolj stabilna, vendar je funkcionalnost zaenkrat omejena.<\/p>\n<p>Zakaj je Helm 3 potreben? Predvsem gre za <strong>izginotje Tillerja<\/strong>, kot komponente. To je, kot verjetno razumete, ogromen korak naprej, saj se s stali\u0161\u010da varnosti arhitekture vse poenostavi.<\/p>\n<p>Ko je bil ustvarjen Helm 2, kar se je zgodilo v \u010dasih Kubernetes 1.8 ali celo prej, so bile \u0161tevilne koncepcije nezrele. Na primer, koncept CRD se danes aktivno uvaja in Helm bo <strong>uporabljal CRD<\/strong>, da hrani strukture. Postalo bo mogo\u010de uporabljati le stranko in ne obdr\u017eati stre\u017eni\u0161kega dela. Tako bo mogo\u010de uporabljati nativne ukaze Kubernetes za delo s strukturami in viri. To je ogromen korak naprej.<\/p>\n<p>Pojavila se bo <strong>podpora nativnim OCI repozitorijem<\/strong> ({Open Container Initiative}). To je ogromna pobuda in Helm je zanjo zanimiv predvsem zato, da bi lahko gostili svoje grafi\u010dne pakete. Pride do tega, da na primer Docker Hub podpira \u0161tevilne standarde OCI. Ne napovedujem, a morda bodo klasi\u010dni ponudniki Docker repozitorijev za\u010deli omogo\u010dati gostovanje va\u0161ih Helm grafi\u010dnih paketov.<\/p>\n<p>Sporna zgodba zame je <strong>podpora Lua<\/strong>, kot templating engine za pisanje skript. Nisem velik obo\u017eevalec Lua, a to bo povsem opcijska mo\u017enost. To sem preveril trikrat \u2013 uporaba Lua ne bo obvezna. Zato, tisti, ki \u017eelite uporabiti Lua, lahko to storite, tisti, ki imate raje Go \u2013 pridru\u017eite se na\u0161emu velikemu taboru in uporabite go-tmpl za to.<\/p>\n<p>Kon\u010dno tisto, \u010desar mi je zagotovo primanjkovalo, je <strong>pojavitev sheme in validacija tipov podatkov<\/strong>. Ni\u010d ve\u010d ne bo te\u017eav s int ali string, ne bo treba ovijati ni\u010dle v dvojne narekovaje. Uvedena bo JSON schema, ki bo omogo\u010dila jasno opisovanje za values.<\/p>\n<p>Zelo mo\u010dno bo predelana <strong>model, ki temelji na dogodkih<\/strong>. \u017de je konceptualno opisano. Poglejte v vejo Helm 3 in videli boste, koliko dogodkov, hookov in drugih stvari je bilo dodanih, kar bo mo\u010dno poenostavilo in hkrati dodalo nadzor nad procesi namestitve in njihovimi reakcijami.<\/p>\n<p>Helm 3 bo preprostej\u0161i, varnej\u0161i in zanimivej\u0161i ne zato, ker ne maramo Helma 2, ampak ker Kubernetes postaja bolj napreden. Tako lahko Helm izkori\u0161\u010da dose\u017eke Kubernetes in ustvarja odli\u010dne upravljavce za Kubernetes.<\/p>\n<blockquote><p>\u0160e ena dobra novica je, da <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\">DevOpsConf<\/a><\/noindex> Aleksander Chajerov bo spregovoril, <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\/abstracts\/5564\">ali so lahko kontejnerji varni?<\/a><\/noindex> Spomnimo, da bo konferenca o integraciji procesov razvoja, testiranja in delovanja potekala v Moskvi <strong>30. septembra in 1. oktobra<\/strong>. Do 20. avgusta je \u0161e mogo\u010de <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.ontico.ru\/lectures\/propose\/?conference=dc2019-moscow\">predlo\u017eiti referat<\/a><\/noindex> in predstaviti svoje izku\u0161nje pri re\u0161evanju <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\/articles\/917\">ene iz mnogih<\/a><\/noindex> nalog DevOps pristopa.<\/p>\n<p>Sledite konferen\u010dnim mejnim to\u0161kam in novicam na <noindex><a rel=\"nofollow\" href=\"http:\/\/eepurl.com\/bN_0E1\">novi\u010dkah<\/a><\/noindex> in <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/DevOpsConfChannel\">telegram kanal<\/a><\/noindex>.<\/p><\/blockquote>\n<p>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/462665\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u0443\u0442\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430 \u043e \u0441\u0430\u043c\u043e\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0435 \u0434\u043b\u044f Kubernetes \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043c\u043e\u0434\u0436\u0438: \u043a\u043e\u0440\u043e\u0431\u043a\u0430 \u2014 \u044d\u0442\u043e Helm (\u044d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 Emoji); \u0437\u0430\u043c\u043e\u043a \u2014 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c; \u0447\u0435\u043b\u043e\u0432\u0435\u0447\u0435\u043a \u2014 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0436\u0435 \u0434\u0435\u043b\u0435, \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043c\u043d\u043e\u0436\u0435\u0447\u043a\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043f\u043e\u043b\u043e\u043d \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c Helm \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27661,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36918","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u0443\u0442\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430 \u043e \u0441\u0430\u043c\u043e\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0435 \u0434\u043b\u044f Kubernetes \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043c\u043e\u0434\u0436\u0438: \u043a\u043e\u0440\u043e\u0431\u043a\u0430 \u2014 \u044d\u0442\u043e Helm (\u044d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 Emoji);.\" \/>\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\/bezopasnost-helm\" \/>\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\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c Helm | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u0443\u0442\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430 \u043e \u0441\u0430\u043c\u043e\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0435 \u0434\u043b\u044f Kubernetes \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043c\u043e\u0434\u0436\u0438: \u043a\u043e\u0440\u043e\u0431\u043a\u0430 \u2014 \u044d\u0442\u043e Helm (\u044d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 Emoji);.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/bezopasnost-helm\" \/>\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:14:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:14:43+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\udd47Varnost Helma | ProHoster","description":"Jedro zgodbe o najpopularnej\u0161em paketnem upravljalcu za Kubernetes bi lahko bilo predstavljeno s pomo\u010djo emoji: \u0161katla \u2014 to je Helm (to je najprimernej\u0161a izbira v najnovej\u0161i razli\u010dici Emoji);","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/bezopasnost-helm","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\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c Helm | ProHoster","og:description":"\u0421\u0443\u0442\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430 \u043e \u0441\u0430\u043c\u043e\u043c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u043c \u043f\u0430\u043a\u0435\u0442\u043d\u043e\u043c \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0435 \u0434\u043b\u044f Kubernetes \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0438\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043c\u043e\u0434\u0436\u0438: \u043a\u043e\u0440\u043e\u0431\u043a\u0430 \u2014 \u044d\u0442\u043e Helm (\u044d\u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0435, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 Emoji);.","og:url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/bezopasnost-helm","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:14:43+00:00","article:modified_time":"2019-10-31T19:14:43+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36918","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-22 05:19:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:36:25","updated":"2026-01-22 05:19:19","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\/36918","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=36918"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/36918\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/27661"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=36918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=36918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=36918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}