{"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\/et\/blog\/administrirovanie\/bezopasnost-helm","title":{"rendered":"Helmi turvalisus","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Looja r\u00e4\u00e4kimine Kubernetes'i k\u00f5ige populaarsemast paketihaldurist v\u00f5iks kokku v\u00f5tta emod\u017ei kaudu:<\/p>\n<ul>\n<li>karp \u2014 see on Helm (see on k\u00f5ige sobivam, mis on viimases emod\u017eide v\u00e4ljaandes);<\/li>\n<li>lukk \u2014 turvalisus;<\/li>\n<li>inimene \u2014 probleemi lahendus.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/91099b372fd73bce94268563c3ee2c50.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTegelikult on k\u00f5ik natuke keerulisem ja jutt on t\u00e4is tehnilisi \u00fcksikasju, kuidas <b>teha Helm turvaliseks<\/b>.<\/p>\n<ul>\n<li>L\u00fchidalt \u00f6eldes, mis on Helm, kui te ei teadnud v\u00f5i olete unustanud. Milliseid probleeme ta lahendab ja kus ta ekos\u00fcsteemis asub.<\/li>\n<li>Vaatame Helm'i arhitektuuri. \u00dckski arutelu turvalisuse \u00fcle ja selle \u00fcle, kuidas muuta t\u00f6\u00f6riist v\u00f5i lahendus turvalisemaks, ei saa toimumata olla komponente arusaamisest.<\/li>\n<li>R\u00e4\u00e4gime Helm'i komponentidest.<\/li>\n<li>K\u00f5ige p\u00f5letavam k\u00fcsimus \u2014 tulevik \u2014 uus versioon Helm 3.\u00a0<\/li>\n<\/ul>\n<p>\nK\u00f5ik, mis antud artiklis on, kehtib Helm 2 kohta. See versioon on praegu tootmises ja t\u00f5en\u00e4oliselt kasutasite just seda, milles on turvaprobleemid.<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=\"M\u00e4ngi videot\" 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>Esinejast:<\/strong> Aleksandr Khajurov (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/allexx\/\" class=\"user_link\">allexx<\/a><\/noindex>) on t\u00f6\u00f6tanud arendajana 10 aastat ja aitab sisu parandada <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.python.ru\/2019\">Moscow Python Conf++<\/a><\/noindex> ja liitus komiteega <noindex><a rel=\"nofollow\" href=\"https:\/\/events.linuxfoundation.org\/events\/helm-summit-2019\/\">Helm Summit<\/a><\/noindex>. Praegu t\u00f6\u00f6tab Chainstackis arenduse juhtimise positsioonil \u2014 see on h\u00fcbriid arendusjuhi ja isiku vahel, kes vastutab l\u00f5ppversioonide tarnimise eest. See t\u00e4hendab, et ta on seal, kus toimub k\u00f5ik alates toote loomise kuni selle kasutuselev\u00f5tmiseni.<\/p>\n<p>Chainstack on v\u00e4ike, aktiivselt kasvav start-up, mille eesm\u00e4rk on anda klientidele v\u00f5imalus unustada infrastruktuuri ja jaotatud rakenduste haldamise keerukused, arendustiim asub Singapuris. \u00c4rge paluge Chainstackil m\u00fc\u00fca v\u00f5i osta kr\u00fcptovaluutat, vaid pakkuge r\u00e4\u00e4kida ettev\u00f5tte plokiahela raamistike \u00fcle, ja teile vastatakse r\u00f5\u00f5muga.<\/p>\n<h2>Helm<\/h2>\n<p>\nSee on paketihaldur (chartide) jaoks Kubernetesile. K\u00f5ige arusaadavam ja universaalsem viis rakenduste toomiseks Kubernetes'i klastrisse.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/30c0fc1cc1c6ebde97c6e8ec1886ce9f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nR\u00e4\u00e4gime muidugi struktureeritud ja t\u00f6\u00f6stuslikumast l\u00e4henemisviisist, mitte oma YAML-manifestide koostamisest ja v\u00e4ikeste utiliidide kirjutamisest.<\/p>\n<blockquote><p>Helm on parim, mis praegu saadaval ja populaarne on.<\/p><\/blockquote>\n<p>\nMiks Helm? Esiteks, sest seda toetab CNCF. Cloud Native on suur organisatsioon, mis on emat\u00e4idise ettev\u00f5tteks Kubernetes'i, etcd, Fluentd ja teiste projektide jaoks.<\/p>\n<p>Teine oluline fakt on see, et Helm on v\u00e4ga populaarne projekt. Kui ma jaanuaris 2019 hakkasin m\u00f5tlema, kuidas teha Helmi turvaliseks, oli projektil GitHubis tuhandeid t\u00e4hti. Mais oli neid juba 12 tuhat.<\/p>\n<p>Paljud inimesed on huvitatud Helmist, seega, isegi kui te ei kasuta seda veel, on teadmised selle turvalisuse kohta kasulikud. <strong>Turvalisus on oluline.<\/strong><\/p>\n<p>Helmi p\u00f5hi meeskonda toetab Microsoft Azure, mist\u00f5ttu on see projekt suhteliselt stabiilne v\u00f5rreldes paljude teistega. Helm 3 Alpha 2 v\u00e4ljalase juuli keskpaiku t\u00f5endab, et projektiga tegeleb piisavalt palju inimesi, kellel on soov ja j\u00f5ud Helmi arendamiseks.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/e53c8e64c3cf5eea3fbd9b0095b0f81e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHelm lahendab mitmeid p\u00f5hik\u00fcsimusi rakenduste haldamises Kuberneteses.<\/p>\n<ul>\n<li>Rakenduse pakendamine. I isegi selline rakendus nagu 'Tere, maailm' WordPressis koosneb mitmest teenusest, mida soovitakse koos pakendada.<\/li>\n<li>Halduse keerukus, mis tekib nende rakenduste haldamise k\u00e4igus.<\/li>\n<li>Rakenduse eluts\u00fckkel, mis ei l\u00f5pe p\u00e4rast rakenduse installimist v\u00f5i juurutamist. See elab edasi, seda tuleb v\u00e4rskendada, ja Helm aitab selleks tagada \u00f5igeid meetmeid ja poliitikaid.<\/li>\n<\/ul>\n<p>\n<strong>Pakendamine<\/strong> on korraldatud arusaadaval viisil: olemas on metaandmed, mis vastavad tavaliste paketihaldurite t\u00f6\u00f6le Linuxis, Windowsis v\u00f5i MacOS-is. See t\u00e4hendab hoidlat, s\u00f5ltuvusi erinevatest paketidest, rakenduste metaandmeid, seadeid, konfigureerimise erip\u00e4rasid, teabe indekseerimist jne. K\u00f5ike seda v\u00f5imaldab Helm rakenduste jaoks hankida ja kasutada.<\/p>\n<p><strong>Keerukuse haldamine<\/strong>. Kui teil on palju sarnaseid rakendusi, siis on vajalik parametriseerimine. Sellest tulenevad mallid, kuid et mitte v\u00e4lja m\u00f5elda oma viisi mallide loomiseks, saab kasutada seda, mida Helm pakkuda on.<\/p>\n<p><strong>Rakenduse eluts\u00fckli juhtimine<\/strong> \u2014 minu arvates on see k\u00f5ige huvitavam ja lahendamata k\u00fcsimus. Just sellep\u00e4rast tulin ma kunagi Helmi juurde. Me pidime j\u00e4lgima rakenduse eluts\u00fcklit, soovisime oma CI\/CD ja rakenduste ts\u00fcklid viia sellesse paradigma.<\/p>\n<p>Helm v\u00f5imaldab:<\/p>\n<ul>\n<li>halda juurutusi, tutvustab konfiguratsiooni ja \u00fclevaate m\u00f5istet;<\/li>\n<li>edukalt teostada uuendusi;<\/li>\n<li>kasutada konksusid erinevatel \u00fcritustel;<\/li>\n<li>lisada rakenduste t\u00e4iendavaid kontrolle ja reageerida nende tulemustele.<\/li>\n<\/ul>\n<p>\nLisaks <strong>Helmil on \"aku\"<\/strong> \u2014 suur hulk maitsvaid asju, mida saab pluginatena lisada, et oma elu lihtsustada. Pluginaid saab kirjutada iseseisvalt, need on piisavalt isoleeritud ja ei vaja keerukat arhitektuuri. Kui soovite midagi rakendada, soovitan teil teha seda plugina vormis ja seej\u00e4rel v\u00f5imalusel lisada upstream'i.<\/p>\n<p>Helm p\u00f5hineb kolmel peamisel kontseptsioonil:<\/p>\n<ul>\n<li><strong>Chart Repo<\/strong> \u2014 kirjeldus ja parameetrite massiiv, mis on teie manifesti jaoks v\u00f5imalikud.\u00a0<\/li>\n<li><strong>Konfiguratsioon<\/strong> \u2014 see t\u00e4hendab v\u00e4\u00e4rtusi, mis rakendatakse (tekst, numbrilised v\u00e4\u00e4rtused jne).<\/li>\n<li><strong>Release<\/strong> koondab kaks \u00fclemist komponenti ning koos nad muutuvad Release'iks. Versioonid on hallatavad, saavutades seel\u00e4bi eluts\u00fckli korraldamise: v\u00e4ike installimise hetkel ja suur t\u00f5stmisel, alandamisel v\u00f5i tagasi p\u00f6\u00f6ramisel.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Helm'i arhitektuur<\/h2>\n<p>\nDiagrammil on kontseptuaalselt kujutatud Helm'i k\u00f5rgetasemeline arhitektuur.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/c5cf54890682a3d6ca7a45021b5006a1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTuletan meelde, et Helm on seotud Kubernetesega. Seet\u00f5ttu ei saa me ilma Kubernetes'i klastri (ristk\u00fclik) olema. Kube-apiserver komponent asub masteris. Ilma Helmi on meil Kubeconfig. Helm toob kaasa \u00fche v\u00e4ikese binaari, kui seda nii nimetada, Helm CLI utiliidi, mis paigaldatakse arvutisse, s\u00fclearvutisse, peamen\u00fc\u00fcsse \u2014 k\u00f5ikjale.<\/p>\n<p>Aga sellest ei piisa. Helmil on serveri komponent Tiller. See esindab Helmi huve klastri sees, see on sama rakendus Kubernetes'i klastri sees nagu iga teine.<\/p>\n<p>J\u00e4rgmine komponent Chart Repo \u2014 on chartide hoidla. On ametlik hoidla ja v\u00f5ib olla privaatne ettev\u00f5tte v\u00f5i projekti hoidla.<\/p>\n<h3>Koost\u00f6\u00f6<\/h3>\n<p>\nVaadake, kuidas arhitektuuri komponendid omavahel suhtlevad, kui soovime rakendust Helm'i abil installida.<\/p>\n<ul>\n<li>\u00d6eldes <code>Helm install<\/code>, p\u00f6\u00f6rdume hoidla (Chart Repo) poole ja saame Helm chart'i.<\/li>\n<\/ul>\n<p><\/p>\n<ul>\n<li>Helm utiliit (Helm CLI) suhtleb Kubeconfig'iga, et v\u00e4lja selgitada, millise klastri poole p\u00f6\u00f6rduda.\u00a0<\/li>\n<li>Saades selle teabe, p\u00f6\u00f6rdub utiliit Tilleri poole, mis asub meie klastris, kui rakendus.\u00a0<\/li>\n<li>Tiller p\u00f6\u00f6rdub Kube-apiserver'i poole, et teostada toiminguid Kubernetes'es, luua objekte (teenuseid, pod'e, replikasid, salajaid jne).<\/li>\n<\/ul>\n<p>\nEdasi keerame skeemi keerukamaks, et n\u00e4ha r\u00fcndevektorit, millega kogu Helm'i arhitektuur kokku puutuda v\u00f5ib. Seej\u00e4rel proovime seda kaitsta.<\/p>\n<h3>R\u00fcndevektor<\/h3>\n<p>\nEsimene potentsiaalne n\u00f5rk koht \u2014 <strong>privileegitud API<\/strong>\u2014<strong>kasutaja<\/strong>. Raames skeemi see on h\u00e4kker, kes on saanud administraatori juurdep\u00e4\u00e4su Helm CLI-le.<\/p>\n<p><strong>Madala privileegiga API-kasutaja<\/strong> v\u00f5ib samuti osutuda ohtlikuks, kui ta on kuskil l\u00e4hedal. Sellisel kasutajal on kontekst teine, n\u00e4iteks v\u00f5ib ta olla fikseeritud \u00fche klastrisse kuuluva nimede ruumikonfiguratsioonis Kubeconfig.<\/p>\n<p>Huvitavaim r\u00fcnnakusuund v\u00f5ib olla protsess, mis asub klastris kuskil l\u00e4hedal Tiller'ile ja saab sellele juurde p\u00e4\u00e4seda. See v\u00f5ib olla veebiserver v\u00f5i mikroteenus, mis n\u00e4eb klastris mitmerealisi v\u00f5rgu\u00fcmbrust.<\/p>\n<p>Eksootiline, kuid \u00fcha populaarsust koguv r\u00fcnnakusuund on seotud Chart Repo'ga. Petlik autor v\u00f5ib luua charti, mis sisaldab ebaturvalist ressurssi, ja sa k\u00e4ivitad selle, uskudes seda. V\u00f5i ta v\u00f5ib asendada charti, mida sa allalaadid ametlikust repost, ning n\u00e4iteks luua ressursi poliitikate kujul ja saavutada juurdep\u00e4\u00e4su suurendamine.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/2828046feb9ba8413a1b0e8741b4c354.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProovime kaitsta end r\u00fcnnakute eest k\u00f5igist neljast suunast ja m\u00f5ista, kus on probleemid Helm'i arhitektuuris, ja kus neid v\u00f5ivad mitte olla.<\/p>\n<p>Suurendame skeemi, lisades rohkem elemente, kuid s\u00e4ilitame k\u00f5ik p\u00f5hikomponendid.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/4110898e79619b8546408c668c48da0d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHelm CLI suhtleb Chart Repo'ga, suhtles Kubeconfig'iga, t\u00f6\u00f6 edastatakse klastrisse komponendile Tiller.<\/p>\n<p>Tiller on esitatud kahe objektiga:<\/p>\n<ul>\n<li>Tiller-deploy svc, mis pakub mingit teenust;<\/li>\n<li>Tiller-deploy pod (skeemil \u00fches eksemplaris \u00fches replikas), kus toimub kogu koormus ja mis p\u00f6\u00f6rdub klastrisse.<\/li>\n<\/ul>\n<p>\nSuhtlemiseks kasutatakse erinevaid protokolle ja skeeme. Turvalisuse seisukohalt on meile k\u00f5ige huvitavamad:<\/p>\n<ul>\n<li>Mehhanism, mille abil Helm CLI p\u00f6\u00f6rdub chart repo poole: milline protokoll, kas on autentimine ja mida sellega teha.<\/li>\n<li>Protokoll, mille abil Helm CLI, kasutades kubectl'i, suhtleb Tiller'iga. See on RPC-server, mis on paigaldatud klastrisse.<\/li>\n<li>Ise Tiller on kergesti k\u00e4ttesaadav klastris asuvatele mikroteenustele ja suhtleb Kube-apiserveriga.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/19e7e085567f3bbb49746e6402926bd6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nArutame j\u00e4rjestikku k\u00f5iki neid suundi.<\/p>\n<h2>RBAC<\/h2>\n<p><\/p>\n<blockquote><p>On m\u00f5ttetu r\u00e4\u00e4kida mingi turvalisuse olemasolust Helm'i v\u00f5i m\u00f5ne teise teenuse osas klastris, kui RBAC ei ole sissel\u00fclitatud.<\/p><\/blockquote>\n<p>\nTundub, et see ei ole k\u00f5ige v\u00e4rskem soovitus, kuid olen kindel, et paljud ei ole RBAC-d isegi tootmises sissel\u00fclitanud, sest see on suur h\u00e4da ja vajab palju seadistamist. Sellegipoolest kutsun \u00fcles seda tegema.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" 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 advokaadi veebisait RBAC-ile. Seal on kogutud hulk huvitavaid materjale, mis aitavad RBAC-i seadistamisel, n\u00e4itavad, miks see on hea ja kuidas sellega \u00fcldiselt tootmises elada.<\/p>\n<p>Proovin selgitada, kuidas Tiller ja RBAC toimivad. Tiller t\u00f6\u00f6tab klastris teatud teenusekonto all. Reeglina, kui RBAC ei ole seadistatud, on see superkasutaja. Baaskonfiguratsioonis on Tiller administraator. Just seet\u00f5ttu \u00f6eldakse tihti, et Tiller on SSH-tunnel teie klastrisse. Tegelikult on see t\u00f5si, seega saab kasutada eraldi spetsialiseeritud teenusekontot, mitte Default Service Account'i \u00fclaltoodud skeemis.<\/p>\n<p>Kui te esmakordselt Helm'i seadistate ja installite selle serverisse, saate m\u00e4\u00e4rata teenusekonto abil <code>--service-account<\/code>. See v\u00f5imaldab kasutada kasutajat, kellel on minimaalne vajalike \u00f5iguste kogum. Kahjuks peate looma sellise \"s\u00fcsteemi\": Role ja RoleBinding.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/ec805cde756495cfd5c480ac40739c43.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKahjuks ei tee Helm seda teie eest. Teie v\u00f5i teie Kubernetes-kliendi administraator peab ette valmistama Role'i ja RoleBinding'i kogumi teenusekonto jaoks, et edastada selle Helm'ile.<\/p>\n<p>K\u00fcsimus tekib \u2014 mis on erinevus Role'i ja ClusterRole'i vahel? Erinevus seisneb selles, et ClusterRole kehtib k\u00f5igi nimespetsiifiliste, erinevalt tavalisest Role'ist ja RoleBinding'ist, mis t\u00f6\u00f6tab ainult konkreetses nimespetsiifilises. Poliitika saab seadistada nii kogu klastrile kui ka personaliseeritult iga nimespetsiifilise jaoks eraldi.<\/p>\n<p>Oluline on mainida, et RBAC lahendab veel \u00fche suure probleemi. Paljud kurdavad, et Helm ei ole kahjuks multitenantsuse tugi (ei toeta mitme \u00fc\u00fcrniku olemasolu). Kui mitu meeskonda kasutavad klastrit ja kasutavad Helmi, on p\u00f5him\u00f5tteliselt v\u00f5imatu seadistada poliitikaid ja piirata nende juurdep\u00e4\u00e4su selles klastris, kuna on olemas teatud teenusekonto, mille alt Tiller t\u00f6\u00f6tab ja loovad tema alt k\u00f5ik ressursid klastris, mis on aeg-ajalt v\u00e4ga ebamugav. See on t\u00f5si \u2014 nagu binaarfail, nii ka protsess, <strong>Helm Tiller ei m\u00f5ista multitenantsust.<\/strong>.<\/p>\n<p>Siiski on suurep\u00e4rane viis, kuidas Tillerit klastris mitu korda k\u00e4ivitada. Sellega pole mingeid probleme, Tillerit saab k\u00e4ivitada igas nimespetsiifilises. Seega v\u00f5ite kasutada RBAC-d ja Kubeconfig'i kontekstina, et piirata juurdep\u00e4\u00e4su spetsiaalsele Helm'ile.<\/p>\n<p>See n\u00e4eb v\u00e4lja j\u00e4rgmiselt.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/eae922c7b5e1422fb51667364ed79e0a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e4iteks on kaks Kubeconfig'i konteksti erinevatele meeskondadele (kaks nimiruumi): X meeskond arendajatele ja administraatori klaster. Administraatoriklastril on laiem Tiller, mis asub Kube-system nimiruumi, seega edasij\u00f5udnud teenusekonto. Ja eraldi nimiruum arendajameeskonnale, kes saavad oma teenuseid spetsiaalsetesse nimiruumi juurutada.<\/p>\n<p>See on toimiv l\u00e4henemine, Tiller ei ole nii ressursimahukas, et see v\u00f5iks teie eelarvet oluliselt m\u00f5jutada. See on \u00fcks kiireid lahendusi.<\/p>\n<blockquote><p>\u00c4rge kartke seadistada Tiller eraldi ja anda Kubeconfig konteksti meeskonna jaoks, konkreetse arendaja jaoks v\u00f5i keskkonna jaoks: Dev, Staging, Production (kahtlane, et k\u00f5ik oleks \u00fches klastris, kuid see on v\u00f5imalik).<\/p><\/blockquote>\n<p>\nJ\u00e4tkates meie lugu, liigume RBAC'i juurest edasi ja r\u00e4\u00e4gime ConfigMap'idest.<\/p>\n<h3>ConfigMaps<\/h3>\n<p>\nHelm kasutab ConfigMap'e andmete salvestamiseks. Kui me r\u00e4\u00e4kisime arhitektuurist, siis seal ei olnud \u00fchtegi andmebaasi, kuhu oleks talletatud teavet v\u00e4ljalaskude, konfiguratsioonide, tagasiviikude jne kohta. Selleks kasutatakse ConfigMap'e.<\/p>\n<p>ConfigMap'idega on tuntud probleem \u2013 need ei ole p\u00f5him\u00f5tteliselt turvalised, need <strong>ei v\u00f5imalda salajaste andmete salvestamist<\/strong>. R\u00e4\u00e4gime k\u00f5igest, mis ei peaks liikuma kaugemale teenusest, n\u00e4iteks paroolid. Praegu on k\u00f5ige loomulikum viis Helm jaoks ConfigMap'ide kasutamise asemel liikuda saladuste suunas.<\/p>\n<p>Seda on v\u00e4ga lihtne teha. \u00dcksite Tilleri seade ja n\u00e4itate, et salvestuseks on saladused. Siis saate iga juurutuse jaoks mitte ConfigMap'i, vaid saladuse.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/7fd12bfbed5c6c8111a5126c2ab9f853.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00f5ite v\u00e4ita, et saladused endiselt \u2013 kummaline kontseptsioon ja see ei ole v\u00e4ga turvaline. Siiski tuleks m\u00f5ista, et sellega tegelevad ise Kubernetes'i arendajad. Alates versioonist 1.10, st juba piisavalt pikka aega, on v\u00e4hemalt avalikes pilvedes v\u00f5imalik liita \u00f5ige salvestus saladuste hoidmiseks. Praegu t\u00f6\u00f6tab meeskond selle nimel, et veelgi paremini jagada juurdep\u00e4\u00e4su saladustele, eraldi podidele v\u00f5i teistele \u00fcksustele.<\/p>\n<blockquote><p>Salvestuse Helm on parem \u00fcle viia saladustele ja need omakorda keskses kohas turvata.<\/p><\/blockquote>\n<p>\nKuid kindlasti j\u00e4\u00e4b <strong>andmete salvestamise limiit 1 MB<\/strong>. Helm kasutab siin etcd-d jaotatud salvestusruumina ConfigMap-ide jaoks. Seal arvati, et see on sobiv andmeplokk replikatsioonideks jne. Sellel teemal on huvitav arutelu Redditis, soovitan leida see p\u00f5nev lugemine n\u00e4dalavahetuseks v\u00f5i lugeda kokkuv\u00f5tet. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\/issues\/1413\">siit<\/a><\/noindex>.<\/p>\n<h3>Chart Repos<\/h3>\n<p>\nChart'ide osas on sotsiaalne haavatavus k\u00f5rge ja need v\u00f5ivad saada 'Man in the middle' r\u00fcnnakute allikaks, eriti kui kasutatakse vaikimisi lahendust. Eelk\u00f5ige r\u00e4\u00e4gime repositooriumidest, mis on v\u00e4ljas HTTP kaudu.<\/p>\n<blockquote><p>Kindlasti tuleks Helm Repo avaldada HTTPS-i kaudu \u2014 see on parim variant ja ei maksa palju.<\/p><\/blockquote>\n<p>\nPange t\u00e4hele <strong>chart'ide allkirjastamise mehhanism<\/strong>. Tehnoloogia on h\u00e4mmastavalt lihtne. See on sama, millega tegelete GitHubis, tavaline PGP-masina s\u00fcsteem, kus on avalikud ja privaatsed v\u00f5tmed. Seadistage see ja olge kindel, omades vajalikke v\u00f5tmeid ja allkirjastades k\u00f5ike, mis on t\u00f5esti teie chart.<\/p>\n<p>Lisaks, <strong>Helm klient toetab TLS-i<\/strong> (mitte serveri HTTP m\u00f5ttes, vaid vastastikune TLS). Saate kasutada serveri ja kliendi v\u00f5tmeid suhtlemiseks. Ausalt \u00f6eldes, ma ei kasuta sellist mehhanismi, kuna ma ei armasta vastastikuseid sertifikaate. \u00dcldiselt. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/chartmuseum\">chartmuseum<\/a><\/noindex> \u2014 peamine t\u00f6\u00f6riist Helm Repo avaldamiseks Helm 2 jaoks \u2014 toetab ka basic auth'i. Basic auth'i saab kasutada, kui see on mugavam ja kindlam.<\/p>\n<p>Veel on olemas plugin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hayorov\/helm-gcs\">helm-gcs<\/a><\/noindex>, mis v\u00f5imaldab Chart Reposid paigutada Google Cloud Storage'i. See on \u00fcsna mugav, t\u00f6\u00f6tab suurep\u00e4raselt ja on piisavalt turvaline, kuna kasutatakse k\u00f5iki eeltoodud mehhanisme.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/6a72bfd96c7eb0e2fdd7bcbf128e6433.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKui aktiveerida HTTPS v\u00f5i TLS, kasutada mTLS-i, aktiveerida basic auth'i, et veelgi riske v\u00e4hendada, saab luua turvalise suhtluse Helm CLI ja Chart Repo vahel.<\/p>\n<h3>gRPC API<\/h3>\n<p>\nJ\u00e4rgmine samm on v\u00e4ga vastutustundlik \u2014 Tilleri turvamine, mis asub klastris ja on \u00fchelt poolt server, teiselt poolt p\u00f6\u00f6rdub ta teiste komponentide poole ning \u00fcritab esitada end kellegi teise n\u00e4ol.<\/p>\n<p>Kuidas ma juba \u00fctlesin, Tiller on teenus, mis pakub gRPC-d, Helm klient p\u00f6\u00f6rdub tema poole gRPC kaudu. Vaikimisi, loomulikult, on TLS v\u00e4lja l\u00fclitatud. Miks see on nii \u2014 on arutelu k\u00fcsimus, mulle tundub, et see on algse seadistamise lihtsustamiseks.<\/p>\n<blockquote><p>Soovitan aktiveerida TLS gRPC jaoks tootmis- ja isegi staging keskkondades.<\/p><\/blockquote>\n<p>\nMinu arvates, erinevalt mTLS-ist chartide jaoks, on siin see asjakohane ja v\u00e4ga lihtne \u2014 genereerite PQI infrastruktuuri, loote sertifikaadi, k\u00e4ivitate Tilleri ja edastate sertifikaadi initsialiseerimise ajal. P\u00e4rast seda saate sooritada k\u00f5iki Helm-komande, esitledes genereeritud sertifikaadi ja privaatv\u00f5tmega.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/ed55b9a465ed1278b272c52c90b2b345.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSel moel kaitsete end k\u00f5ikide Tilleri v\u00e4lisklastri p\u00e4ringute eest.<\/p>\n<p>Nii oleme kaitsnud \u00fchenduste kanalit Tilleriga, arutanud RBAC-i ja reguleerinud Kubernetes apiserveri \u00f5igusi, v\u00e4hendanud domeeni, millega see saab suhelda.<\/p>\n<h2>Kaitstud Helm<\/h2>\n<p>\nVaadakem l\u00f5ppscheemi. See on sama arhitektuur samade nooled.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/6672e254ad93b917f57794e1619a572e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00f5ik \u00fchendused v\u00f5ib n\u00fc\u00fcd julgelt joonistada roheliseks:<\/p>\n<ul>\n<li>Chart Repo puhul kasutame TLS-i v\u00f5i mTLS-i ja p\u00f5hivolitusi;<\/li>\n<li>mTLS Tilleri jaoks, ja see on seatud gRPC-teenusena TLS-iga, kasutame sertifikaate;<\/li>\n<li>klastris kasutatakse spetsiaalset teenusekontot koos Rooli ja Rooli seondumisega.\u00a0<\/li>\n<\/ul>\n<p>\nOleme oluliselt kaitsnud klastrit, kuid keegi nutikas \u00fctles:<\/p>\n<blockquote><p>\"Absoluutselt turvaline lahendus v\u00f5ib olla ainult \u00fcks \u2014 v\u00e4lja l\u00fclitatud arvuti, mis asub betoonkastis ja mille \u00fcmber valvavad s\u00f5durid.\"<\/p><\/blockquote>\n<p>\nOn erinevaid viise andmete manipuleerimiseks ja uute r\u00fcnnakute suundade leidmiseks. Siiski olen kindel, et need soovitused v\u00f5imaldavad rakendada p\u00f5hieeskirjade industriaalset turvastandardit.<\/p>\n<h2>Boonus<\/h2>\n<p>\nSee osa ei ole otseselt seotud turvalisusega, kuid on samuti kasulik. N\u00e4itan m\u00f5ningaid huvitavaid asju, millest v\u00e4hesed teavad. N\u00e4iteks, kuidas otsida chart'e \u2014 ametlikke ja mitte ametlikke.<\/p>\n<p>Repositooriumis <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\">github.com\/helm\/charts<\/a><\/noindex> praegu on umbes 300 charti ja kaks voogu: stable ja incubator. Need, kes panustavad, teavad h\u00e4sti, kui raske on incubatorist stable'isse p\u00e4\u00e4seda ja kui lihtne on stable'ist v\u00e4lja kukkuda. Siiski, see ei ole parim t\u00f6\u00f6riist Prometheuse ja k\u00f5ike, mis teile meeldib, chartide otsimiseks \u00fchest lihtsast p\u00f5hjusest \u2014 see ei ole portaal, kus on mugav pakette otsida.<\/p>\n<p>Kuid on teenus <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.helm.sh\/\">hub.helm.sh<\/a><\/noindex>, millega chartide leidmine on palju mugavam. K\u00f5ige t\u00e4htsam on, et seal on palju rohkem v\u00e4liseid reposeid ja saadaval on peaaegu 800 charti. Pluss, saate lisada oma repoe, kui mingil p\u00f5hjusel ei soovi oma chart'e stable'isse saata.<\/p>\n<p>Proovige hub.helm.sh ja arendame seda koos. See teenus on Helm-projekti all ja saate panustada isegi selle UI-sse, kui olete frontend-arendaja ja soovite lihtsalt v\u00e4limust parandada.<\/p>\n<p>Soovin veel t\u00e4helepanu p\u00f6\u00f6rata <strong>Open Service Broker API integreerimine<\/strong>. See k\u00f5lab k\u00f6itvalt ja arusaamatult, kuid lahendab probleeme, millega k\u00f5ik kokku puutuvad. Selgitan seda lihtsa n\u00e4ite kaudu.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/3aeb7e0781e50a79b518f1056873f73a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOn olemas Kubernetesi klaster, kus soovime k\u00e4ivitada klassikalist rakendust - WordPressi. T\u00fc\u00fcpiliselt on selleks, et k\u00f5ik funktsioonid toimiksid, vajalik andmebaas. On palju erinevaid lahendusi, n\u00e4iteks v\u00f5ime k\u00e4ivitada oma statefull-teenuse. See pole v\u00e4ga mugav, kuid paljud teevad just nii.<\/p>\n<p>Teised, n\u00e4iteks meie Chainstack'is, kasutavad hallatavaid andmebaase, nagu MySQL v\u00f5i PostgreSQL, serverite jaoks. Seet\u00f5ttu on meil andmebaas kuskil pilves.<\/p>\n<p>Aga tekib probleem: peame \u00fchendama meie teenuse andmebaasiga, looma andmebaasile flavor'i, edastama credential'id ja neid haldama. K\u00f5ik see toimub tavaliselt k\u00e4sitsi s\u00fcsteemiadministraatori v\u00f5i arendaja poolt. Ja pole mingeid probleeme, kui rakendusi on v\u00e4he. Kui neid on palju, on vajalik kombain. Selline kombain on olemas - see on Service Broker. See v\u00f5imaldab kasutada spetsiaalset pluginit avaliku pilve klastri jaoks ja tellida teenuseid pakkujalt l\u00e4bi Brokeri, justkui oleks see API. Selleks saab kasutada Kubernetes'i natiivseid t\u00f6\u00f6riistu.<\/p>\n<p>See on v\u00e4ga lihtne. Saate taotleda n\u00e4iteks Azure'is hallatud MySQL-i algtasemel (seda saab konfigureerida). Azure'i API kasutades luuakse andmebaas, mis on kasutamiseks ette valmistatud. Te ei pea sellesse sekkuma, selle eest vastutab plugin. N\u00e4iteks OSBA (Azure'i plugin) annab credential'id teenusele, edastab need Helmile. Te saate kasutada WordPressi pilve MySQL-iga, ega pea muretsema hallatud andmebaaside v\u00f5i statefull-teenuste p\u00e4rast.<\/p>\n<blockquote><p>V\u00f5ib \u00f6elda, et Helm on liim, mis \u00fchelt poolt v\u00f5imaldab teenuste paigaldamist ja teiselt poolt - pilvepakkujate ressursside tarbimist.<\/p><\/blockquote>\n<p>\nSaate kirjutada oma plugina ja kasutada kogu seda lugu on-premise. Siis on teil lihtsalt oma plugin ettev\u00f5tte Cloud-pakkujale. Soovitan sellist l\u00e4henemist proovida, eriti kui teil on suur ulatus ja soovite kiiresti alustada dev-, staging- v\u00f5i kogu infrastruktuuri feature'i jaoks. See lihtsustab teie operations v\u00f5i DevOps'i elu.<\/p>\n<p>Veel \u00fcks leid, mida juba mainisin - see on <strong>helm-gcs plugin<\/strong>, mis v\u00f5imaldab kasutada Google'i bucket'e (objektide salvestusruum) Helm chartide salvestamiseks.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/30888c4f9b5dba14b87ba1e29e0ebed7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelle kasutuselev\u00f5tmiseks on vaja vaid nelja k\u00e4sku:<\/p>\n<ol>\n<li>installida plugin;<\/li>\n<li>alustada selle kasutamist;<\/li>\n<li>m\u00e4\u00e4ra tee bucket'ile, mis asub gcp-s;<\/li>\n<li>avalda chart'id tavalisel viisil.<\/li>\n<\/ol>\n<p>\nIlus on see, et autoriseerimiseks kasutatakse gcp originaalset viisi. Sa v\u00f5id kasutada teenusekonto, arendaja kontot \u2013 k\u00f5ike, mis tahad. See on v\u00e4ga mugav ja ei maksa midagi kasutamisel. Kui sa, nagu mina, propageerid opsless-filosoofiat, siis on see eriti mugav, eriti v\u00e4ikeste meeskondade jaoks.<\/p>\n<h2>Alternatiivid<\/h2>\n<p>\nHelm ei ole ainus lahendus teenuste haldamiseks. Selle kohta on palju k\u00fcsimusi, ilmselt seet\u00f5ttu tuli ka kiiresti v\u00e4lja kolmas versioon. Loomulikult on alternatiive.<\/p>\n<p>Need v\u00f5ivad olla nii spetsialiseeritud lahendused, n\u00e4iteks Ksonnet v\u00f5i Metaparticle. Sa v\u00f5id kasutada oma klassikalisi infrastruktuuri haldamise t\u00f6\u00f6riistu (Ansible, Terraform, Chef jne) samade eesm\u00e4rkide jaoks, millest ma r\u00e4\u00e4kisin.<\/p>\n<p>L\u00f5puks on lahendus <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/operator-framework\">Operator Framework<\/a><\/noindex>, mille populaarsus kasvab.<\/p>\n<blockquote><p>Operator Framework on peamine alternatiiv Helm'ile, millele tasub t\u00e4helepanu p\u00f6\u00f6rata.<\/p><\/blockquote>\n<p>\nSee on rohkem natiivne CNCF ja Kubernetes'i jaoks, <strong>aga sissep\u00e4\u00e4sutase on oluliselt k\u00f5rgem<\/strong>, tuleb rohkem programmeerida ja v\u00e4hem manifestide kirjeldada.<\/p>\n<p>On erinevaid lisandeid, nagu Draft, Scaffold. Need muudavad elu palju lihtsamaks, n\u00e4iteks arendajate jaoks lihtsustavad nad Helm'i saatmise ja k\u00e4ivitamise ts\u00fcklit testkeskkonna deploimiseks. Ma nimetaksin neid v\u00f5imaluste laienditeks.<\/p>\n<p>Siin on selge joonis, mis n\u00e4itab, kus mis asub.<\/p>\n<p><img decoding=\"async\" alt=\"Helmi turvalisus\" src=\"\/wp-content\/uploads\/2019\/08\/81a8236c975d5e1649acaaa7989c27ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRikkus teljel on sinu isiklik kontroll toimuvate \u00fcle, ordinaatide teljel \u2013 Kubernetes'e natiivsus. Helm versioon 2 asub kuskil keskel. Versioonis 3 ei ole tohutult muutunud, kuid kontroll ja natiivsus on paranenud. Ksonneti taseme lahendused j\u00e4\u00e4vad isegi Helmi 2-st maha. Siiski tasub neile pilk heita, et n\u00e4ha, mis veel selles maailmas olemas on. Loomulikult on sinu konfigureerimise haldur sul kontrolli all, kuid see ei ole absoluutselt natiivne Kubernetes'i jaoks.<\/p>\n<p>Operator Framework on t\u00e4iesti natiivne Kubernetes'i jaoks ja v\u00f5imaldab sellega hallata palju elegantsimalt ja hoolikamalt (kuid pidage meeles sissep\u00e4\u00e4sutaset). Pigem sobib see spetsialiseeritud rakendusele ja selle haldamise loomisele, kui tohutule rakenduste paketile Helm'i abil.<\/p>\n<p>Laiendajad lihtsalt parandavad veidi kontrolli, t\u00e4iustavad t\u00f6\u00f6voogu v\u00f5i k\u00e4rbivad CI\/CD torude nurki.<\/p>\n<h2>Helm'i tulevik<\/h2>\n<p>\nHea uudis on see, et Helm 3 on tulemas. On vabastatud Helm 3.0.0-alpha.2 alpha versioon, mida saate proovida. See on piisavalt stabiilne, kuid funktsionaalsus on hetkel piiratud.<\/p>\n<p>Miks on Helm 3 vajalik? Esiteks on see lugu <strong>Tilleri kadumisest<\/strong>, nagu osa. See, nagu te juba m\u00f5istate, on tohutu edasiminek, kuna arhitektuuri turvalisuse seisukohalt lihtsustab see k\u00f5ike.<\/p>\n<p>Kui Helm 2 loodi, mis toimus Kubernetes 1.8 ajal v\u00f5i isegi varem, siis paljud kontseptsioonid polnud veel k\u00fcpsed. N\u00e4iteks on CRD kontseptsioon praegu aktiivselt kasutusele v\u00f5etud ja Helm kavatseb <strong>kasutada CRD-d<\/strong>, et salvestada struktuure. Saate kasutada ainult klienti ja mitte pidada serveri osa. Seega on v\u00f5imalik kasutada native Kubernetes k\u00e4ske struktuuride ja ressursside haldamiseks. See on tohutu edasiminek.<\/p>\n<p>Tuleb <strong>toetamine natiivsetele OCI hoidlatele<\/strong> (Open Container Initiative). See on tohutu algatus ja Helm on sellele huvitav peamiselt oma chartide deploimiseks. Asi on isegi selles, et n\u00e4iteks Docker Hub toetab paljusid OCI standardeid. Ma ei ennusta, kuid on v\u00f5imalik, et klassikalised Docker hoidlate pakkujad hakkavad v\u00f5imaldama teil oma Helm chartide majutamist.<\/p>\n<p>Sellel on kahtlane t\u00e4hendus \u2014 <strong>Lua toetamine<\/strong>, nagu templating engine skriptide kirjutamiseks. Ma ei ole suur Lua f\u00e4nn, kuid see on t\u00e4iesti valikuline v\u00f5imalus. Olen seda 3 korda kontrollinud \u2014 Lua kasutamine ei ole kohustuslik. Seega, kes tahab, saab kasutada Lua-d, kellele meeldib Go \u2014 liituge meie suure laagri ja kasutage go-tmpl selle jaoks.<\/p>\n<p>L\u00f5 finally l\u00f5puks, mida ma kindlasti igatsesin \u2014 on <strong>skeemi ja andmet\u00fc\u00fcpide valideerimise kehtestamine<\/strong>. Ei tule rohkem probleeme int v\u00f5i string-iga, ei pea enam nulli topelt jutum\u00e4rkidesse panema. Ilmub JSONS skeem, mis v\u00f5imaldab seda v\u00e4\u00e4rtuste jaoks selgelt kirjeldada.<\/p>\n<p>Kavandatakse t\u00f5siseid muudatusi <strong>event-driven mudelis<\/strong>. See on juba kontseptuaalselt kirja pandud. Vaadake Helm 3 haru ja n\u00e4ete, kui palju s\u00fcndmusi, hook'e ja muud, mis oluliselt lihtsustavad ja teiselt poolt lisavad kontrolli deploy protsesside ja nende reaktsioonide \u00fcle.<\/p>\n<p>Helm 3 on lihtsam, turvalisem ja huvitavam mitte sellep\u00e4rast, et me ei armasta Helm 2, vaid seet\u00f5ttu, et Kubernetes muutub arenenumaks. Seega v\u00f5ib Helm kasutada Kubernetes'i arendusi ja luua selle p\u00f5hjal suurep\u00e4raseid Kubernetes'i haldurid.<\/p>\n<blockquote><p>Veel head uudiseid on selles, et <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\">DevOpsConf<\/a><\/noindex> Aleksandr Khayorov r\u00e4\u00e4gib, <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\/abstracts\/5564\">kas konteinerid v\u00f5ivad olla turvalised?<\/a><\/noindex> Tuletame meelde, et arenduse, testimise ja t\u00f6\u00f6protsesside integreerimise konverents toimub Moskvas <strong>30. septembril ja 1. oktoobril<\/strong>. Kuni 20. augustini on veel v\u00f5imalik <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.ontico.ru\/lectures\/propose\/?conference=dc2019-moscow\">esitama ettekannet<\/a><\/noindex> ja jagada oma kogemust probleemide lahendamisel <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\/articles\/917\">\u00fchest paljusid<\/a><\/noindex> DevOps l\u00e4henemise \u00fclesannetest.<\/p>\n<p>Konverentsi ja uudiste j\u00e4lgimiseks vaadake <noindex><a rel=\"nofollow\" href=\"http:\/\/eepurl.com\/bN_0E1\">the newsletter<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/DevOpsConfChannel\">telegrami kanalist<\/a><\/noindex>.<\/p><\/blockquote>\n<p>Allikas: <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.1.1 - 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\/et\/blog\/administrirovanie\/bezopasnost-helm\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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\udd47Helmi turvalisus | ProHoster","description":"Kubernetes\u2019e k\u00f5ige populaarsema paketihalduri loo v\u00f5iks kokku v\u00f5tta emotikonidega: kast \u2014 see on Helm (see on k\u00f5ige sobivam, mis viimases Emoji versioonis olemas on);","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/bezopasnost-helm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/36918","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=36918"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/36918\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/27661"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=36918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=36918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=36918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}