{"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>Lugu k\u00f5ige populaarsema paketihalduri Kubernetes'e jaoks v\u00f5iks kirjeldada emoji-de abil:<\/p>\n<ul>\n<li>kast \u2014 see on Helm (see on k\u00f5ige sobivam emoji viimasest v\u00e4ljaandest);<\/li>\n<li>lukk \u2014 turvalisus;<\/li>\n<li>inimene \u2014 probleemide lahendamine.<\/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 \/>\nTegelikkuses on k\u00f5ik natuke keerulisem, ning jutt on t\u00e4is tehnilisi \u00fcksikasju sellest, <b>kuidas teha Helm turvaliseks<\/b>.<\/p>\n<ul>\n<li>L\u00fchidalt, mis on Helm, kui te ei teadnud v\u00f5i olete unustanud. Milliseid probleeme see lahendab ja kus see ekos\u00fcsteemis asub.<\/li>\n<li>Vaadakem Helmi arhitektuuri. \u00dckski vestlus turvalisusest ja sellest, kuidas muuta t\u00f6\u00f6riist v\u00f5i lahendus turvalisemaks, ei saa m\u00f6\u00f6da minna komponendi arhitektuuri m\u00f5istmisest.<\/li>\n<li>Arutame Helmi komponente.<\/li>\n<li>K\u00f5ige p\u00f5letavam k\u00fcsimus \u2014 tulevik \u2014 uus versioon Helm 3.\u00a0<\/li>\n<\/ul>\n<p>\nKogu see artikkel puudutab Helm 2. See versioon on hetkel tootmises ja t\u00f5en\u00e4oliselt just seda te kasutate, ning just selles on turvariskid.<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=\"Vaata 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 Khayorov (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/allexx\/\" class=\"user_link\">allexx<\/a><\/noindex>) on arendusega seotud olnud 10 aastat, aitab parandada sisu <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.python.ru\/2019\">Moscow Python Conf++<\/a><\/noindex> ja liitus <noindex><a rel=\"nofollow\" href=\"https:\/\/events.linuxfoundation.org\/events\/helm-summit-2019\/\">Helm Summit<\/a><\/noindex>. Praegu t\u00f6\u00f6tab Chainstackis arenduse juhtimispositsioonil, mis on h\u00fcbriid arendusjuhi ja final release delivery inimese vahel. See t\u00e4hendab, et ollakse seal, kus toimub k\u00f5ik toote loomise ja k\u00e4itamise vahel.<\/p>\n<p>Chainstack on v\u00e4ike, kiiresti kasvav idufirma, mille eesm\u00e4rk on anda klientidele v\u00f5imalus unustada infrastruktuuri ja keerukused, mis on seotud detsentraliseeritud rakenduste haldamisega. Arendustiim asub Singapuris. \u00c4rge paluge Chainstackil m\u00fc\u00fca v\u00f5i osta kr\u00fcptovaluutat, vaid pakkuge v\u00f5imalust arutada ettev\u00f5tte blockchain raamistikke, ja neile vastatakse r\u00f5\u00f5muga.<\/p>\n<h2>Helm<\/h2>\n<p>\nSee on pakihaldur (chart) Kubernetes jaoks. K\u00f5ige arusaadavam ja universaalsem viis rakenduste toomiseks Kubernetes 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 selgelt struktureerituma ja t\u00f6\u00f6stuslikuma l\u00e4henemise poole, mitte ainult oma YAML-manifestide loomise ja v\u00e4ikeste utiliitide kirjutamise suunas.<\/p>\n<blockquote><p>Helm on hetkel parim ja populaarne valik, mis on kergesti k\u00e4ttesaadav.<\/p><\/blockquote>\n<p>\nMiks Helm? Esiteks seet\u00f5ttu, et seda toetab CNCF. Cloud Native on suur organisatsioon, mis on Kubernetes, etcd, Fluentd ja teiste projektide emafirma.<\/p>\n<p>Teine oluline fakt on see, et Helm on v\u00e4ga populaarne projekt. Kui ma jaanuaris 2019 alles m\u00f5tlesin, kuidas Helm'i turvaliseks muuta, oli projektil GitHub'is tuhat t\u00e4hte. Maiks oli neid juba 12 tuhat.<\/p>\n<p>Paljud inimesed on huvitatud Helm'ist, seega, isegi kui te pole seda veel kasutanud, on teadmised selle turvalisusest kasulikud. <strong>Turvalisus on oluline.<\/strong><\/p>\n<p>Helm'i peamist meeskonda toetab Microsoft Azure, mist\u00f5ttu on see \u00fcsna stabiilne projekt, erinevalt paljusid teistest. Helm 3 Alpha 2 v\u00e4ljalaskmine juuli keskpaiku t\u00f5endab, et projekti kallal t\u00f6\u00f6tab piisavalt palju inimesi, kes soovivad ja suudavad Helmi arendada ja t\u00e4iustada.<\/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 mitu p\u00f5hihalduse probleemi Kubernetes'is rakenduste haldamisel.<\/p>\n<ul>\n<li>Rakenduse paketiseerimine. I isegi \"Hello, World\" t\u00fc\u00fcp rakendus WordPressis koosneb mitmest teenusest, mida tahaks kokku pakendada.<\/li>\n<li>Keskendumine keerukuse haldamisele, mis tuleneb nende rakenduste juhtimisest.<\/li>\n<li>Eluts\u00fckli ei l\u00f5ppe p\u00e4rast rakenduse installimist v\u00f5i juurutamist. See j\u00e4tkab elu, vajab v\u00e4rskendamist, ning selles aitab Helm, tuues \u00f5igeid meetmeid ja poliitikaid.<\/li>\n<\/ul>\n<p>\n<strong>Pakendamine<\/strong> on korraldatud arusaadavalt: metainformatsioon on t\u00e4ielikus koosk\u00f5las tavap\u00e4raste Linuxi, Windowsi v\u00f5i MacOSi pakendihaldurite t\u00f6\u00f6l. See t\u00e4hendab, et on olemas hoidla, s\u00f5ltuvused erinevatest pakettidest, rakenduste metainformatsioon, seadistused, konfiguratsiooni erip\u00e4rad, informatsiooni indekseerimine jne. K\u00f5ik see on Helmiga saadaval ja rakenduste jaoks kasutatav.<\/p>\n<p><strong>Kasutusmugavuse juhtimine<\/strong>. Kui teil on palju sarnaseid rakendusi, on vajalik parameetriseerimine. Sellest tulenevad mallid, kuid et mitte leiutada omi mallide loomise meetodeid, saab kasutada seda, mida Helm pakub.<\/p>\n<p><strong>Rakenduste eluts\u00fckli haldamine<\/strong> \u2014 minu arvates on see k\u00f5ige huvitavam ja lahendamatu k\u00fcsimus. Just seet\u00f5ttu tulin ma Helm\u2019i juurde. Me peame j\u00e4lgima rakenduse eluts\u00fcklit, soovisime viia oma CI\/CD ja rakenduste ts\u00fcklid sellesse paradigmasse.<\/p>\n<p>Helm v\u00f5imaldab:<\/p>\n<ul>\n<li>deploide hallata, toob sisse konfiguratsiooni ja revisjoni m\u00f5isted;<\/li>\n<li>edukalt teostada rollback;<\/li>\n<li>kasutada erinevate s\u00fcndmuste jaoks hook'e;<\/li>\n<li>lisada rakendustele t\u00e4iendavaid kontrollpunkte ja reageerida nende tulemustele.<\/li>\n<\/ul>\n<p>\nLisaks <strong>on Helm'il \"aku\"<\/strong> \u2014 tohutu hulk maitsvaid asju, mida saab pluginatena sisse l\u00fclitada, muutes elu lihtsamaks. Pluginaid on v\u00f5imalik iseseisvalt kirjutada, need on piisavalt isoleeritud ega n\u00f5ua keerulist arhitektuuri. Kui soovite midagi ellu viia, soovitan teha seda pluginana 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 manifestile 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 need muutuvad Release'iks. V\u00e4ljalaskeid saab versioonida, saavutades seel\u00e4bi eluts\u00fckli korralduse: v\u00e4ike paigaldamise hetkel ja suur v\u00e4rskendamise, allapoole viimise v\u00f5i rollback'i hetkel.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Helmi arhitektuur<\/h2>\n<p>\nScheemil on kontseptuaalselt esitatud Helmi 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 \/>\nTulet meelde, et Helm on seotud Kubernetesega. Seet\u00f5ttu vajame Kubernetes-klassi (ristk\u00fclikut). Komponent kube-apiserver asub masteris. Ilma Helmita on meil Kubeconfig. Helm toob endaga kaasa v\u00e4ikese binaarse utiliidi, mida nimetatakse Helm CLI, mis installitakse arvutisse, s\u00fclearvutisse, peamisse v\u00f5i kuhu iganes.<\/p>\n<p>Kuid sellest ei piisa. Helmil on serveri komponent Tiller. See esindab Helmi klastris, olles rakendus, mis asub Kubernetes-klastris, nagu iga teinegi.<\/p>\n<p>J\u00e4rgmine komponent on Chart Repo \u2013 chartide hoidla. On ametlik hoidla ja v\u00f5ib olla ka ettev\u00f5tte v\u00f5i projekti privaatne hoidla.<\/p>\n<h3>Koostoime<\/h3>\n<p>\nVaadakem, kuidas arhitektuuri komponendid omavahel suhtlevad, kui soovime rakendust Helmiga installida.<\/p>\n<ul>\n<li>Me \u00fctlem <code>Helm install<\/code>, \u00fchendame hoidla (Chart Repo) ja saame Helm-charti.<\/li>\n<\/ul>\n<p><\/p>\n<ul>\n<li>Helmi utiliit (Helm CLI) suhtleb Kubeconfigiga, 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, rakendusena.\u00a0<\/li>\n<li>Tiller suunab Kube-apiserverile, et teostada toiminguid Kuberneteses, luua erinevaid objekte (teenuseid, pod'e, replikaid, salajasi jne).<\/li>\n<\/ul>\n<p>\nSeej\u00e4rel keerame skeemi keerulisemaks, et n\u00e4ha r\u00fcnnakusuundi, millega kogu Helm arhitektuur kokku puutub. Ja siis p\u00fc\u00fcame seda kaitsta.<\/p>\n<h3>R\u00fcnnakusuund<\/h3>\n<p>\nEsimene potentsiaalselt n\u00f5rk koht \u2014 <strong>privileegitud API<\/strong>&#8212;<strong>kasutaja<\/strong>. Skeemi kohaselt on see h\u00e4kker, kes on saanud administraatori juurdep\u00e4\u00e4su Helm CLI-le.<\/p>\n<p><strong>Privileegita API-kasutaja<\/strong> v\u00f5ib samuti ohtuda, kui ta on kuskil l\u00e4heduses. Sellisel kasutajal on erinev kontekst, n\u00e4iteks v\u00f5ib ta olla seotud teatud namespace'iga klastris Kubeconfigi seadetes.<\/p>\n<p>K\u00f5ige huvitavam r\u00fcnnakusuund v\u00f5ib olla protsess, mis asub klastris kuskil l\u00e4hedal Tillerile ja saab sellele juurdep\u00e4\u00e4su. See v\u00f5ib olla veebiserver v\u00f5i mikroteenus, mis n\u00e4eb klastriv\u00f5rgu keskkonda.<\/p>\n<p>Eksootiline, kuid kiiresti populaarsust koguv r\u00fcnne on seotud Chart Repo'ga. V\u00e4\u00e4rkasutaja loodud chart v\u00f5ib sisaldada ebaturvalisi ressursse, ja te v\u00f5ite selle t\u00f5siselt v\u00f5tta. V\u00f5i siis v\u00f5ib see asendada chart'i, mille te laadite alla ametlikust hoidlast, ja n\u00e4iteks luua ressurssi poliitikate n\u00e4ol ning endale juurdep\u00e4\u00e4su suurendada.<\/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 \/>\nP\u00fc\u00fcame kaitsta end r\u00fcnnakute eest k\u00f5igist neljast suunast ja anal\u00fc\u00fcsida, kus on Helmi arhitektuuris probleemid ning kus v\u00f5ib-olla neid pole.<\/p>\n<p>Suurendame skeemi, lisame rohkem komponente, kuid s\u00e4ilitame k\u00f5ik p\u00f5hielemendid.<\/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 suhtub Chart Repo'sse, suhtleb Kubeconfig'i kaudu, t\u00f6\u00f6 edastatakse klastrisse komponendi Tiller kaudu.<\/p>\n<p>Tiller on esindatud kahe objektiga:<\/p>\n<ul>\n<li>Tiller-deploy svc, mis pakub teatud teenust;<\/li>\n<li>Tiller-deploy pod (skeemil \u00fches eksemplaris \u00fches replikas), kus koormus t\u00f6\u00f6tab 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, millega Helm CLI p\u00f6\u00f6rdub chart repo'sse: milline on protokoll, kas on olemas autentimine ja mida sellega teha saab.<\/li>\n<li>Protokoll, mille kaudu Helm CLI suhtleb Tilleriga, kasutades kubectl'i. See on RPC-server, mis on paigaldatud klastrisse.<\/li>\n<li>Ise Tiller on ligip\u00e4\u00e4setav mikroteenustele, mis asuvad klastris, 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 neid k\u00f5iki suundi j\u00e4rjekorras.<\/p>\n<h2>RBAC<\/h2>\n<p><\/p>\n<blockquote><p>Pole m\u00f5tet r\u00e4\u00e4kida Helm'i v\u00f5i muu teenuse turvalisusest klastris, kui RBAC ei ole lubatud.<\/p><\/blockquote>\n<p>\nTundub, et see ei ole k\u00f5ige v\u00e4rskem soovitus, kuid olen kindel, et paljud pole RBAC'i isegi tootmises lubanud, kuna see on suur vaev ja n\u00f5uab palju seadistamist. Siiski 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 veebileht RBAC'i kohta. Seal on kogutud tohutul hulgal huvitavat materjali, mis aitab RBAC'i seadistada, n\u00e4itab, miks see on hea ja kuidas sellega tootmises elada.<\/p>\n<p>P\u00fc\u00fcan selgitada, kuidas Tiller ja RBAC t\u00f6\u00f6tavad. Tiller t\u00f6\u00f6tab klastri sees mingi teenusekonto alt. Reeglina, kui RBAC pole seadistatud, on see superkasutaja. Algses konfiguratsioonis on Tiller administraator. Just seet\u00f5ttu r\u00e4\u00e4gitakse sageli, et Tiller on SSH-tunnel teie klastrisse. Tegelikult on see nii, seega on v\u00f5imalik kasutada eraldi spetsialiseeritud teenusekontot Default Service Account'i asemel \u00fclaltoodud skeemis.<\/p>\n<p>Kui te algatate Helm'i, installides seda esmakordselt serverisse, saate m\u00e4\u00e4rata teenusekonto, kasutades <code>--service-account<\/code>. See v\u00f5imaldab kasutada kasutajat, kellel on minimaalne vajalik \u00f5iguste paket. T\u00f5si, peate looma sellise \"p\u00e4rja\": 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 klastri administraator peab eelnevalt ette valmistama Role'd ja RoleBinding'i teenusekonto jaoks, et edastada Helm'ile.<\/p>\n<p>K\u00fcsimus on \u2014 milles seisneb erinevus Role ja ClusterRole vahel? Erinevus on selles, et ClusterRole kehtib k\u00f5igi namespaces, erinevalt tavalisest Role ja RoleBinding'ist, mis t\u00f6\u00f6tab ainult spetsialiseeritud namespace'is. Poliitikaid saab seadistada nii kogu klastri kui ka individuaalselt iga namespace'i jaoks.<\/p>\n<p>Tasub mainida, et RBAC lahendab veel \u00fche suure probleemi. Paljud kurdavad, et Helm ei toeta multitenancy't (mitme\u00fc\u00fcrilisust). Kui mitu meeskonda kasutavad klastri ja Helm'i, ei ole v\u00f5imalik seadistada poliitikaid ega piirata nende ligip\u00e4\u00e4su selle klastri piires, kuna helm t\u00f6\u00f6tab teenusekonto kaudu ja loob sellest k\u00f5ik ressursid klastri sees, mis m\u00f5nikord on v\u00e4ga ebamugav. See on t\u00f5si \u2014 nagu binaarfail, nagu protsess. <strong>Helm Tiller ei m\u00f5ista multitenancy't.<\/strong>.<\/p>\n<p>Kuid on olemas suurep\u00e4rane v\u00f5imalus, mis v\u00f5imaldab Tillerit klastris mitu korda k\u00e4ivitada. Sellega ei ole mingeid probleeme, Tillerit saab k\u00e4ivitada igas namespace'is. Nii saate kasutada RBAC-d, Kubeconfig'i konteksti ja piirata juurdep\u00e4\u00e4su spetsiaalsele Helmile.<\/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 erinevate meeskondade jaoks (kaks namespace'i): X Team arendajate meeskonnale ja administraatori klaster. Administratiivsel klastril on oma laiem Tiller, mis asub Kube-system namespace'is, seega edasij\u00f5udnud teenusekontoga. Ja eraldi namespace arendajate meeskonnale, kes saavad oma teenuseid eraldi namespace'is deployida.<\/p>\n<p>See on t\u00f5hus l\u00e4henemine, Tiller ei ole nii ressursin\u00f5udlik, et see v\u00f5iks teie eelarvet t\u00f5siselt m\u00f5jutada. See on \u00fcks kiiremaid lahendusi.<\/p>\n<blockquote><p>\u00c4rge kartke seadistada Tiller eraldi ja anda Kubeconfig koos konteksti meeskonnale, konkreetsele arendajale v\u00f5i keskkonnale: Dev, Staging, Production (on ebat\u00f5en\u00e4oline, et k\u00f5ik oleks \u00fches klastris, kuid seda on v\u00f5imalik teha).<\/p><\/blockquote>\n<p>\nJ\u00e4tkates meie lugu, liigume edasi RBAC-lt ja r\u00e4\u00e4gime ConfigMapsist.<\/p>\n<h3>ConfigMaps<\/h3>\n<p>\nHelm kasutab ConfigMaps andmete salvestamiseks. Kui me r\u00e4\u00e4kisime arhitektuurist, siis seal ei olnud andmebaasi, kus hoida teavet v\u00e4ljaannete, konfiguratsioonide, tagasi v\u00f5tmiseks ja muu kohta. Selle jaoks kasutatakse ConfigMaps'i.<\/p>\n<p>ConfigMaps'iga seonduv peamine probleem on tuntud \u2014 need ei ole p\u00f5him\u00f5tteliselt turvalised, neis <strong>ei saa hoida tundlikke andmeid<\/strong>. See puudutab k\u00f5ike, mis ei peaks minema kaugemale teenusest, n\u00e4iteks paroole. Helm jaoks on k\u00f5ige loomulikum viis praegu liikuda ConfigMaps'i kasutamiselt saladuste (secrets) suunas.<\/p>\n<p>Seda on v\u00e4ga lihtne teha. \u00dcmberdefineerite Tilleri seadistuse ja m\u00e4\u00e4rate, et salvestamiseks on saladused. Siis saate igal juurutamisel mitte ConfigMap'i, vaid salajase (secret).<\/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 ise on kummaline kontseptsioon ja see ei ole eriti turvaline. Siiski, tuleb m\u00f5ista, et sellega tegelevad Kubernetes'i arendajad ise. Alates versioonist 1.10, st \u00fcsna ammu, on v\u00e4hemalt avalikes pilvedes olemas v\u00f5imalus \u00fchendada \u00f5ige salvestus ruum saladuste hoidmiseks. Praegu t\u00f6\u00f6tab meeskond selle nimel, et veelgi paremini jagada juurdep\u00e4\u00e4su saladustele, eraldi podidele v\u00f5i muudele \u00fcksustele.<\/p>\n<blockquote><p>Storage Helm on parem t\u00f5lkida saladusteks, mis omakorda tuleb tsentraliseeritult kaitsta.<\/p><\/blockquote>\n<p>\nLoomulikult j\u00e4\u00e4b <strong>andmete salvestuslimiit 1 MB<\/strong>. Helm kasutab siin etcd-d jaotatud salvestusena ConfigMapide jaoks. Seal arvati, et see on sobiv andmechunk replikatsioonideks ja nii edasi. Selle kohta on huvitav arutelu Redditis, soovitan leida see m\u00f5nus lugemine n\u00e4dalavahetuseks v\u00f5i lugeda kokkuv\u00f5tet. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\/issues\/1413\">siin<\/a><\/noindex>.<\/p>\n<h3>Chart Repos<\/h3>\n<p>\nChardid on k\u00f5ige sotsiaalselt haavatavad ja v\u00f5ivad saada \"mehe keset\" r\u00fcnnaku allikaks, eriti kui kasutada default lahendust. Esiteks r\u00e4\u00e4gime HTTP kaudu eksponeeritud repositooriumidest.<\/p>\n<blockquote><p>Selgelt tuleb Helm Repo eksponeerida HTTPS-i kaudu \u2014 see on parim variant ja ei maksa palju.<\/p><\/blockquote>\n<p>\nPange t\u00e4hele <strong>chartide allkirjastamise mehhanismi<\/strong>. Tehnoloogia on \u00fcllatavalt lihtne. See on sama, mida kasutate GitHubis, tavaline PGP mehhanism avalike ja privaatsete v\u00f5tmetega. Seadistage see ja saate olla kindel, et omades \u00f5igeid v\u00f5tmeid allkirjastate k\u00f5ik, mis on t\u00f5epoolest teie chart.<\/p>\n<p>Lisaks toetab <strong>Helm-klient TLS-i.<\/strong> (mitte HTTP serveri poolt, vaid vastastikune TLS). Saate kasutada serveri ja kliendi v\u00f5tmeid suhtlemiseks. Pean ausalt \u00fctlema, et ma ei kasuta sellist mehhanismi, kuna ei care vastastikute sertifikaatide vastu. \u00dches\u00f5naga, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/chartmuseum\">chartmuseum<\/a><\/noindex> \u2014 peamine t\u00f6\u00f6riist Helm Repo eksponeerimiseks Helm 2 jaoks \u2014 toetab ka baasauthentimist. Baasauthentimist saab kasutada, kui see on mugavam ja rahulikum.<\/p>\n<p>On ka plugin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hayorov\/helm-gcs\">helm-gcs<\/a><\/noindex>, mis v\u00f5imaldab paigutada Chart Repos Google Cloud Storage'isse. See on \u00fcsna mugav, t\u00f6\u00f6tab h\u00e4sti ja on piisavalt \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e, kuna k\u00f5ik kirjeldatud mehhanismid on aktiveeritud.<\/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, sisse l\u00fclitada baasauthentimine, et veelgi v\u00e4hendada riske, saab turvalise suhtluskanaali Helm CLI ja Chart Repo vahel.<\/p>\n<h3>gRPC API<\/h3>\n<p>\nJ\u00e4rgmine samm on v\u00e4ga vastutustundlik \u2014 kaitsta Tilleri, mis asub klastris ja on \u00fchelt poolt server, teiselt poolt \u2014 p\u00f6\u00f6rdub ta teiste komponentide poole ja proovib esindada kedagi.<\/p>\n<p>Nagu ma juba \u00fctlesin, Tiller on teenus, mis pakub gRPC-d, Helm-klient p\u00e4\u00e4seb sellele gRPC kaudu juurde. Vaikimisi on TLS loomulikult v\u00e4lja l\u00fclitatud. Miks see nii on \u2014 see on vaieldav k\u00fcsimus, kuid arvan, et see lihtsustab algse seadistamise protsessi.<\/p>\n<blockquote><p>Soovitan anga\u017eerluse ja isegi staging\u2019i jaoks TLS gRPC-s sisse l\u00fclitada.<\/p><\/blockquote>\n<p>\nMinu arvates, erinevalt mTLS-ist chartide puhul, on see siin asjakohane ning teostatakse v\u00e4ga lihtsalt \u2014 genereerite PQI infrastruktuuri, loote sertifikaadi, k\u00e4ivitate Tilleri, edastate sertifikaadi initsialiseerimise k\u00e4igus. P\u00e4rast seda saab t\u00e4ita k\u00f5ik Helm-k\u00e4sud, kasutades genereeritud sertifikaati ja privaatv\u00f5tmen.<\/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 \/>\nNii kaitsete end k\u00f5ikide Tilleri v\u00e4lisklusteri p\u00e4ringute eest.<\/p>\n<p>Nii oleme kaitsnud \u00fchenduskanali Tilleriga, arutanud RBAC-i ja seadnud Kubernetes apiserveri \u00f5igused korda, v\u00e4hendanud domeeni, millega see suudab suhelda.<\/p>\n<h2>Kaitstud Helm<\/h2>\n<p>\nVaatame l\u00f5ppskeemi. See on sama arhitektuur sama noolekujuga.<\/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 kujutada rohelisega:<\/p>\n<ul>\n<li>Chart Repo puhul kasutame TLS-i v\u00f5i mTLS-i ja basic auth'i;<\/li>\n<li>mTLS Tilleri jaoks, ja see on gRPC teenusena v\u00e4lja pakutud koos TLS-iga, kasutame sertifikaate;<\/li>\n<li>klassis kasutatakse spetsiaalset teenusekontot koos Rolli ja Rolli sidumisega.\u00a0<\/li>\n<\/ul>\n<p>\nOleme m\u00e4rkimisv\u00e4\u00e4rselt turvanud klastri, kuid keegi tark \u00fctles:<\/p>\n<blockquote><p>\u201eAinus t\u00e4iesti ohutu lahendus on v\u00e4lja l\u00fclitatud arvuti, mis asub betoonkastis ja mida kaitsevad s\u00f5durid.\u201d<\/p><\/blockquote>\n<p>\nAndmete manipuleerimiseks ja uute r\u00fcnnakuvektorite leidmiseks on erinevaid viise. Kuid ma olen kindel, et need soovitused v\u00f5imaldavad rakendada p\u00f5hitasemel t\u00f6\u00f6stuslikku 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 paljud ei tea. N\u00e4iteks, kuidas otsida graafikuid \u2013 ametlikke ja mitte ametlikke.<\/p>\n<p>Repo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\">github.com\/helm\/charts<\/a><\/noindex> on praegu umbes 300 graafikut ja kaks voogu: stable ja incubator. Need, kes panustavad, teavad h\u00e4sti, kui raske on incubator'ist stable'i j\u00f5uda ja kui lihtne on stable'ist v\u00e4lja kukkuda. Kuid see ei ole parim t\u00f6\u00f6riist, et otsida graafikuid Prometheus'e ja k\u00f5ike muud, mis sulle meeldib, \u00fche lihtsa p\u00f5hjuse t\u00f5ttu \u2013 see ei ole portaal, kus oleks mugav pakette otsida.<\/p>\n<p>Kuid on teenus <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.helm.sh\/\">hub.helm.sh<\/a><\/noindex>, millega on graafikute leidmine palju mugavam. Peamine, et seal on palju rohkem v\u00e4liseid hoidlaid ja saadaval on peaaegu 800 graafikut. Lisaks saate oma hoidla \u00fchendada, kui te mingil p\u00f5hjusel ei soovi oma graafikuid stable'i saata.<\/p>\n<p>Proovige hub.helm.sh ja arendame seda koos. See teenus on Helm-projekti all ja saate panustada isegi selle kasutajaliidesesse, kui olete frontend arendaja ja soovite lihtsalt v\u00e4limust parandada.<\/p>\n<p>Soovin veel teie t\u00e4helepanu juhtida <strong>Open Service Broker API integratsioon<\/strong>. See v\u00f5ib tunduda keeruline ja arusaamatu, kuid lahendab probleeme, millega k\u00f5ik silmitsi seisavad. Selgitan lihtsa n\u00e4itega.<\/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 Kubernetes klaster, kus soovime k\u00e4ivitada klassikalist rakendust - WordPressi. \u00dcldiselt on t\u00e4ie\u00f5iguslikkuseks vajalik andmebaas. On palju erinevaid lahendusi, n\u00e4iteks saate k\u00e4ivitada oma statefull-teenuse. See ei ole v\u00e4ga mugav, kuid paljud teevad seda.<\/p>\n<p>Teised, n\u00e4iteks meie Chainstackis, kasutavad hallatavaid andmebaase, nagu MySQL v\u00f5i PostgreSQL, serverite jaoks. Seega on meie andmebaasid kuskil pilves.<\/p>\n<p>Kuid problema on see, et meie teenus tuleb \u00fchendada andmebaasiga, luua andmebaasi flavor, edastada volitused ja hallata neid kuidagi. K\u00f5ik see tehakse tavaliselt k\u00e4sitsi s\u00fcsteemiadministraatori v\u00f5i arendaja poolt. Ja probleemi ei ole, kui rakendusi on v\u00e4he. Kui neid on palju, on vaja kombaini. Selline kombain on olemas \u2014 see on Service Broker. See v\u00f5imaldab kasutada spetsiaalset plugina avaliku pilve klastrile ja tellida ressursse teenusepakkujalt Brokeri kaudu, nagu oleks see API. Selleks v\u00f5ib kasutada Kubernetes'e natiivseid t\u00f6\u00f6riistu.<\/p>\n<p>See on v\u00e4ga lihtne. N\u00e4iteks saab taotleda Azure'is Hallatud MySQL p\u00f5hitasemel (seda saab seadistada). Azure'i API abil luuakse ja valmistatakse andmebaas kasutamiseks ette. Te ei pea sekkuma, selle eest vastutab plugin. N\u00e4iteks OSBA (Azure'i plugin) tagastab volitused teenusele ja edastab need Helm'ile. Saate kasutada WordPressi koos pilvep\u00f5hise MySQL'iga, tegelemata hallatud andmebaasidega ja muretsemata stateful teenuste \u00fcle.<\/p>\n<blockquote><p>V\u00f5ib \u00f6elda, et Helm toimib liimina, mis \u00fchest k\u00fcljest v\u00f5imaldab teenuseid juurutada ja teisest k\u00fcljest tarbida pilveteenuse pakkujate ressursse.<\/p><\/blockquote>\n<p>\nSaate kirjutada oma plugina ja kasutada kogu seda infrastruktuuri on-premise. Siis on teil lihtsalt oma plugin ettev\u00f5tte pilveteenuse pakkujaga. Soovitan proovida sellist l\u00e4henemist, eriti kui teie ulatus on suur ja soovite kiiresti h\u00e4\u00e4lestada dev, staging v\u00f5i kogu infrastruktuuri funktsiooni jaoks. See lihtsustab teie operations v\u00f5i DevOpsi elu.<\/p>\n<p>Veel \u00fcks leid, millest olen juba r\u00e4\u00e4kinud \u2014 see on <strong>plugin helm-gcs<\/strong>, mis v\u00f5imaldab kasutada Google'i bucket'e (objekthoidlat), et salvestada Helm'i graafikud.<\/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 kasutamise alustamiseks on vaja ainult nelja k\u00e4sku:<\/p>\n<ol>\n<li>paigaldada plugin;<\/li>\n<li>algatada see;<\/li>\n<li>m\u00e4\u00e4rata tee bucket'ile, mis asub gcp-s;<\/li>\n<li>avalikustada graafikud standardsel viisil.<\/li>\n<\/ol>\n<p>\nIlus on see, et GCP autoriseerimiseks kasutatakse natiivset meetodit. Saate kasutada teenusekontot, arendajate kontot \u2014 k\u00f5ike, mis sobib. See on v\u00e4ga mugav ja ei maksa midagi kasutuses. Kui te, nagu mina, toetate opsless filosoofiat, siis on see v\u00e4ga 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 ja t\u00f5en\u00e4oliselt seet\u00f5ttu on kiiresti ilmunud kolmas versioon. Loomulikult on ka alternatiive.<\/p>\n<p>Need v\u00f5ivad olla nii spetsialiseeritud lahendused, nagu Ksonnet v\u00f5i Metaparticle, kui ka teie klassikalised infrastruktuuri haldamise t\u00f6\u00f6riistad (Ansible, Terraform, Chef jne), et saavutada samu eesm\u00e4rke, millest ma r\u00e4\u00e4kisin.<\/p>\n<p>L\u00f5puks on olemas 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 Helmile, millele tasub t\u00e4helepanu p\u00f6\u00f6rata.<\/p><\/blockquote>\n<p>\nSee on CNCF ja Kubernetesiga palju loomulikum, <strong>aga sisenemisk\u00fcnnis on oluliselt k\u00f5rgem<\/strong>, vajab rohkem programmeerimist ja v\u00e4hem manifeste kirjeldamist.<\/p>\n<p>On erinevaid lisasid, nagu Draft, Scaffold. Need muudavad elu oluliselt lihtsamaks, n\u00e4iteks arendajatele, v\u00e4hendades Helm'i saatmise ja testkeskkonna k\u00e4ivitamise ts\u00fcklit. Nimetaksin neid v\u00f5imaluste laiendajateks.<\/p>\n<p>Siin on selge diagramm, kus on esitatud erinevad asukohad.<\/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 \/>\nX-teljel on teie isikliku kontrolli tase, Y-teljel on Kubernetes'i natiivsuse tase. Helm versioon 2 asub kuskil keskel. Versioonis 3 pole suuri muutusi, kuid nii kontroll kui natiivsuse tase on paranenud. Ksonneti taseme lahendused j\u00e4\u00e4vad siiski isegi Helm 2-le alla. Siiski tasub neid vaadata, et n\u00e4ha, mida veel selles maailmas leidub. Loomulikult on teie konfiguratsioonihaldur teie kontrolli all, kuid see pole Kubernetes'ile t\u00e4iesti natiivne.<\/p>\n<p>Operator Framework on t\u00e4iesti natiivne Kubernetes'ile ning v\u00f5imaldab seda hallata palju elegantselt ja t\u00e4pselt (aga pidage meeles sisenemistaset). Pigem sobib see spetsialiseeritud rakenduste haldamiseks, mitte massiliseks rakenduste pakendamise kombinatsiooniks Helmiga.<\/p>\n<p>T\u00e4psemad laiendused parandavad lihtsalt veidi kontrolli, t\u00e4iendavad t\u00f6\u00f6voogu v\u00f5i v\u00e4hendavad CI\/CD pipeline'ide nurki.<\/p>\n<h2>Helmi tulevik<\/h2>\n<p>\nHea uudis on see, et on saabumas Helm 3. Helm 3.0.0-alpha.2 beetaversioon on juba v\u00e4lja antud ja seda saab proovida. See on piisavalt stabiilne, kuid funktsionaalsus on hetkel piiratud.<\/p>\n<p>Miks on vajalik Helm 3? Esiteks on see lugu <strong>Tilleri kadumisest<\/strong>, kui komponendi. See, nagu te juba aru saanud olete, on suur edasimineku samm, kuna arhitektuuri turvalisuse vaates muutub k\u00f5ik lihtsamaks.<\/p>\n<p>Helm 2 loomise ajal, mis toimus Kubernetes 1.8 v\u00f5i isegi varem, olid paljud kontseptsioonid veel arendamata. N\u00e4iteks on CRD kontseptsioon praegu aktiivselt juurutamisel, ja Helm hakkab <strong>kasutama CRD<\/strong>, et hoida struktuure. On v\u00f5imalik kasutada ainult klienti ja mitte hoida serveripoolset osa. Vastavalt sellele saavad kasutada natiivseid Kubernetes'i k\u00e4ske struktuuride ja ressurssidega t\u00f6\u00f6tamiseks. See on suur edasiminek.<\/p>\n<p>Ilmub <strong>natiivsete OCI repositooriumide<\/strong> (Open Container Initiative) tugi. See on suur algatus ja Helm on sellest huvitatud eesk\u00e4tt selleks, et paigutada oma chart'id. Seda toetab isegi Docker Hub, mis toetab paljusid OCI standardeid. Ma ei \u00fctle, et see kindlasti juhtub, aga v\u00f5ib-olla klassikalised Docker repositooriumide pakkujad hakkavad v\u00f5imaldama teil oma Helm chart'e paigutada.<\/p>\n<p>Minu jaoks on vaieldav teema \u2014 see on <strong>Lua toimetamine<\/strong>, kui templating engine skriptide kirjutamiseks. Ma ei ole v\u00e4ga suur Lua f\u00e4nn, kuid see on t\u00e4iesti valikuline v\u00f5imalus. Olen seda kolm korda kontrollinud \u2014 Lua kasutamine ei ole kohustuslik. Seega, kes soovib, v\u00f5ib kasutada Lua, kes armastab Go \u2014 liituge meie suure laagriga ja kasutage go-tmpl selleks.<\/p>\n<p>L\u00f5puks, mida ma t\u00f5eliselt igatsesin \u2014 see on <strong>skeemide ilmumine ja andmet\u00fc\u00fcpide valideerimine<\/strong>. Probleemid int v\u00f5i stringiga on kadunud, ei ole enam vaja nulli topeltjutum\u00e4rkidesse panna. Tekib JSONS-skeem, mis v\u00f5imaldab seda v\u00e4\u00e4rtuste selgelt kirjeldada.<\/p>\n<p>Seda <strong>s\u00fcndmustep\u00f5hist mudelit<\/strong>on tugevasti \u00fcmber t\u00f6\u00f6tatud. See on juba kontseptuaalselt kirjeldatud. Vaadake Helm 3 haru ja n\u00e4ete, kui palju s\u00fcndmusi ja haake on lisatud, mis oluliselt lihtsustab ja samas annab rohkem kontrolli juurutamise protsesside ja nende reageerimise \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 areneb edasi. Vastavalt sellele saab Helm kasutada Kubernetes'i arendusi ja luua selle p\u00f5hjal suurep\u00e4raseid juhte Kubernetes'i jaoks.<\/p>\n<blockquote><p>Veel \u00fcks hea uudis on see, 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 ohutud?<\/a><\/noindex> Tuletame meelde, et arengute, testimise ja kasutuselemise protsesside 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\">esituda ettekanne<\/a><\/noindex> ja jagada oma kogemusi <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\/articles\/917\">\u00fche paljude<\/a><\/noindex> DevOps l\u00e4henemise probleemide lahendamisega.<\/p>\n<p>Konverentsi ja uudiste j\u00e4lgimiseks liitu <noindex><a rel=\"nofollow\" href=\"http:\/\/eepurl.com\/bN_0E1\">uudiskirjaga<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/DevOpsConfChannel\">telegrami kanaliga<\/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 4.9.10 - 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); \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.\" \/>\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) 4.9.10\" \/>\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); \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.\" \/>\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":"Sisu jutustamisest k\u00f5ige populaarsema pakihalduri kohta Kuberneteses v\u00f5iks visualiseerida emod\u017ei abil: kast \u2014 see on Helm (see on k\u00f5ige sobivam, mis viimasel Emoji versioonil on); lukk \u2014 turvalisus; inimene \u2014 probleemi lahendamine. Tegelikult on k\u00f5ik natuke keerulisem ning jutt on t\u00e4is tehnilisi detaile selle kohta, kuidas Helm turvaliseks muuta.","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); \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.","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"},"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}]}}