{"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\/hu\/blog\/administrirovanie\/bezopasnost-helm","title":{"rendered":"A Helm biztons\u00e1ga","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A Kubernetes legn\u00e9pszer\u0171bb csomagkezel\u0151j\u00e9r\u0151l sz\u00f3l\u00f3 t\u00f6rt\u00e9netet egy emoji seg\u00edts\u00e9g\u00e9vel lehetne illusztr\u00e1lni:<\/p>\n<ul>\n<li>doboz \u2013 ez a Helm (ez a legmegfelel\u0151bb a legut\u00f3bbi Emoji kiad\u00e1sban);<\/li>\n<li>z\u00e1r \u2013 biztons\u00e1g;<\/li>\n<li>emberke \u2013 a probl\u00e9ma megold\u00e1sa.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/91099b372fd73bce94268563c3ee2c50.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVal\u00f3j\u00e1ban azonban minden kicsit bonyolultabb lesz, \u00e9s a besz\u00e1mol\u00f3 tele van technikai r\u00e9szletekkel arr\u00f3l, <b>hogyan tehetj\u00fck biztons\u00e1goss\u00e1 a Helmet<\/b>.<\/p>\n<ul>\n<li>R\u00f6viden, mi az a Helm, ha nem tudta vagy elfelejtette. Milyen probl\u00e9m\u00e1kat old meg, \u00e9s hol helyezkedik el az \u00f6kosziszt\u00e9m\u00e1ban.<\/li>\n<li>N\u00e9zz\u00fck meg a Helm architekt\u00far\u00e1j\u00e1t. Egyetlen besz\u00e9lget\u00e9s sem lehet biztons\u00e1gr\u00f3l \u00e9s arr\u00f3l, hogyan tehetj\u00fck a szersz\u00e1mot vagy megold\u00e1st biztons\u00e1gosabb\u00e1, an\u00e9lk\u00fcl, hogy meg\u00e9rten\u00e9nk az \u00f6sszetev\u0151 architekt\u00far\u00e1j\u00e1t.<\/li>\n<li>Besz\u00e9lj\u00fcnk a Helm \u00f6sszetev\u0151ir\u0151l.<\/li>\n<li>A leg\u00e9get\u0151bb k\u00e9rd\u00e9s \u2013 a j\u00f6v\u0151 \u2013 az \u00faj Helm 3 verzi\u00f3.\u00a0<\/li>\n<\/ul>\n<p>\nMindez a cikk a Helm 2-r\u0151l sz\u00f3l. Ez a verzi\u00f3 jelenleg a termel\u00e9sben van, \u00e9s val\u00f3sz\u00edn\u0171leg ezt haszn\u00e1lja, \u00e9s \u00e9ppen ebben vannak biztons\u00e1gi fenyeget\u00e9sek.<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=\"Vide\u00f3 lej\u00e1tsz\u00e1sa\" 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>A sz\u00f3r\u00f3l:<\/strong> Alexander Khaeyrov (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/allexx\/\" class=\"user_link\">allexx<\/a><\/noindex>) 10 \u00e9ve foglalkozik fejleszt\u00e9ssel, seg\u00edt a tartalom jav\u00edt\u00e1s\u00e1ban <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.python.ru\/2019\">Moscow Python Conf++<\/a><\/noindex> \u00e9s csatlakozott a bizotts\u00e1ghoz <noindex><a rel=\"nofollow\" href=\"https:\/\/events.linuxfoundation.org\/events\/helm-summit-2019\/\">Helm Summit<\/a><\/noindex>. Jelenleg a Chainstack-n\u00e9l dolgozik fejleszt\u00e9si vezet\u0151i poz\u00edci\u00f3ban \u2013 ez egy hibrid az \u00fcgyvezet\u0151 \u00e9s a kiadott v\u00e9gterm\u00e9k\u00e9rt felel\u0151s szem\u00e9ly k\u00f6z\u00f6tt. Teh\u00e1t ott van a t\u0171zvonalban, ahol minden t\u00f6rt\u00e9nik a term\u00e9k l\u00e9trehoz\u00e1s\u00e1t\u00f3l kezdve a m\u0171k\u00f6dtet\u00e9s\u00e9ig.<\/p>\n<p>A Chainstack egy kis, akt\u00edvan n\u00f6vekv\u0151 startup, amelynek c\u00e9lja, hogy lehet\u0151s\u00e9get biztos\u00edtson a klienseknek, hogy elfelejts\u00e9k az infrastrukt\u00far\u00e1t \u00e9s a decentraliz\u00e1lt alkalmaz\u00e1sok kezel\u00e9s\u00e9nek neh\u00e9zs\u00e9geit, a fejleszt\u0151 csapat Szingap\u00farban tal\u00e1lhat\u00f3. Ne k\u00e9rje a Chainstack-t\u0151l, hogy adjon el vagy v\u00e1s\u00e1roljon kriptovalut\u00e1t, de aj\u00e1nlja fel, hogy besz\u00e9lgessen az enterprise blockchain kereteir\u0151l, \u00e9s sz\u00edvesen v\u00e1laszolnak \u00d6nnek.<\/p>\n<h2>Helm<\/h2>\n<p>\nEz egy csomagkezel\u0151 (chart) Kubernetes sz\u00e1m\u00e1ra. A leg\u00e9rthet\u0151bb \u00e9s leguniverz\u00e1lisabb m\u00f3dja az alkalmaz\u00e1sok Kubernetes klaszterbe val\u00f3 bejuttat\u00e1s\u00e1nak.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/30c0fc1cc1c6ebde97c6e8ec1886ce9f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEz term\u00e9szetesen struktur\u00e1ltabb \u00e9s ipari megk\u00f6zel\u00edt\u00e9st jelent, mint saj\u00e1t YAML-manifesztumok l\u00e9trehoz\u00e1sa \u00e9s kicsi eszk\u00f6z\u00f6k \u00edr\u00e1sa.<\/p>\n<blockquote><p>A Helm a legjobb, ami jelenleg el\u00e9rhet\u0151 \u00e9s n\u00e9pszer\u0171.<\/p><\/blockquote>\n<p>\nMi\u00e9rt Helm? Els\u0151sorban az\u00e9rt, mert t\u00e1mogatja a CNCF. A Cloud Native egy nagy szervezet, amely a Kubernetes, etcd, Fluentd \u00e9s m\u00e1s projektek sz\u00fcl\u0151c\u00e9ge.<\/p>\n<p>Egy m\u00e1sik fontos t\u00e9ny, hogy a Helm egy nagyon n\u00e9pszer\u0171 projekt. Amikor 2019 janu\u00e1rj\u00e1ban el\u0151sz\u00f6r elgondolkodtam azon, hogy hogyan lehet a Helmet biztonsoss\u00e1 tenni, a projektnek ezer csillagja volt a GitHub-on. M\u00e1jusra ez m\u00e1r 12 ezerre n\u0151tt.<\/p>\n<p>Sokan \u00e9rdekl\u0151dnek a Helm ir\u00e1nt, ez\u00e9rt m\u00e9g ha eddig nem is haszn\u00e1lta, a biztons\u00e1g\u00e1val kapcsolatos ismeretek hasznosak lehetnek. <strong>A biztons\u00e1g fontos.<\/strong><\/p>\n<p>A Helm f\u0151 csapat\u00e1t a Microsoft Azure t\u00e1mogatja, ez\u00e1ltal a projekt meglehet\u0151sen stabil, ellent\u00e9tben sok m\u00e1s projekttel. A Helm 3 Alpha 2 megjelen\u00e9se j\u00falius k\u00f6zep\u00e9n arra utal, hogy \u00e9ppen el\u00e9g ember dolgozik a projekten, \u00e9s szeretn\u00e9k tov\u00e1bb fejleszteni \u00e9s jav\u00edtani a Helmet.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/e53c8e64c3cf5eea3fbd9b0095b0f81e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA Helm t\u00f6bb alapvet\u0151 probl\u00e9m\u00e1t megold az alkalmaz\u00e1sok Kubernetes-ben val\u00f3 kezel\u00e9s\u00e9vel kapcsolatban.<\/p>\n<ul>\n<li>Alkalmaz\u00e1scsomagol\u00e1s. M\u00e9g egy \u201eHello, World\u201d t\u00edpus\u00fa alkalmaz\u00e1s WordPress-en is t\u00f6bb szolg\u00e1ltat\u00e1st k\u00e9pvisel, \u00e9s ezeket szeretn\u00e9nk egy csomagban tartani.<\/li>\n<li>A komplexit\u00e1s kezel\u00e9se, amely a menedzsmentb\u0151l ered.<\/li>\n<li>Az \u00e9letciklus, amely nem \u00e9r v\u00e9get az alkalmaz\u00e1s telep\u00edt\u00e9se vagy bevezet\u00e9se ut\u00e1n. Az alkalmaz\u00e1s tov\u00e1bb \u00e9l, friss\u00edteni kell, \u00e9s ebben a Helm seg\u00edt, \u00e9s igyekszik a megfelel\u0151 int\u00e9zked\u00e9seket \u00e9s politik\u00e1kat bevezetni.<\/li>\n<\/ul>\n<p>\n<strong>Csomagol\u00e1s<\/strong> \u00e9rthet\u0151 m\u00f3don van fel\u00e9p\u00edtve: metaadatok vannak a Linux, Windows vagy MacOS szok\u00e1sos csomagkezel\u0151j\u00e9vel val\u00f3 m\u0171k\u00f6d\u00e9s teljes megfelel\u00e9s\u00e9vel. Teh\u00e1t repository, k\u00fcl\u00f6nb\u00f6z\u0151 csomagokt\u00f3l val\u00f3 d\u00e9pendenci\u00e1k, metainform\u00e1ci\u00f3k az alkalmaz\u00e1sokr\u00f3l, be\u00e1ll\u00edt\u00e1sok, konfigur\u00e1ci\u00f3s saj\u00e1toss\u00e1gok, inform\u00e1ci\u00f3indexel\u00e9s, stb. Mindezt a Helm lehet\u0151v\u00e9 teszi, hogy megkapjuk \u00e9s haszn\u00e1ljuk az alkalmaz\u00e1sok sz\u00e1m\u00e1ra.<\/p>\n<p><strong>A komplexit\u00e1s kezel\u00e9se<\/strong>. Ha sok az egyforma alkalmaz\u00e1s, akkor param\u00e9terez\u00e9s sz\u00fcks\u00e9ges. Ebb\u0151l k\u00f6vetkeznek a sablonok, de hogy ne kelljen saj\u00e1t sablonk\u00e9sz\u00edt\u00e9si m\u00f3dszert kital\u00e1lni, haszn\u00e1lhatjuk a Helm \u00e1ltal el\u0151re biztos\u00edtottakat.<\/p>\n<p><strong>Az alkalmaz\u00e1s \u00e9letciklus\u00e1nak kezel\u00e9se<\/strong> \u2014 v\u00e9lem\u00e9nyem szerint ez a leg\u00e9rdekesebb \u00e9s megoldatlan k\u00e9rd\u00e9s. Ez az, ami\u00e9rt annak idej\u00e9n a Helmhez fordultam. Figyelemmel kellett k\u00eds\u00e9rn\u00fcnk az alkalmaz\u00e1s \u00e9letciklus\u00e1t, \u00e1t akartuk helyezni a CI\/CD-t \u00e9s az alkalmaz\u00e1s ciklusokat ebbe a paradigm\u00e1ba.<\/p>\n<p>A Helm lehet\u0151v\u00e9 teszi:<\/p>\n<ul>\n<li>kezelni a telep\u00edt\u00e9seket, bevezeti a konfigur\u00e1ci\u00f3 \u00e9s a rev\u00edzi\u00f3 fogalm\u00e1t;<\/li>\n<li>sikeresen v\u00e9grehajtani a rollbacket;<\/li>\n<li>haszn\u00e1lni a hookokat k\u00fcl\u00f6nb\u00f6z\u0151 esem\u00e9nyekhez;<\/li>\n<li>tov\u00e1bbi alkalmaz\u00e1sellen\u0151rz\u00e9seket hozz\u00e1adni, \u00e9s reag\u00e1lni azok eredm\u00e9nyeire.<\/li>\n<\/ul>\n<p>\nEzen k\u00edv\u00fcl <strong>A Helmn\u00e9l vannak \u201eakkumul\u00e1torok\u201d<\/strong> \u2014 hatalmas mennyis\u00e9g\u0171 finom dolog, amit pluginekk\u00e9nt be\u00e9p\u00edthet\u00fcnk, megk\u00f6nny\u00edtve ezzel az \u00e9let\u00fcnket. A plugineket saj\u00e1t kez\u0171leg is \u00edrhatjuk, el\u00e9g izol\u00e1ltak, \u00e9s nem ig\u00e9nyelnek komplex architekt\u00far\u00e1t. Ha valamit meg szeretn\u00e9l val\u00f3s\u00edtani, javaslom, hogy k\u00e9sz\u00edtsd el plugin form\u00e1j\u00e1ban, azt\u00e1n esetleg integr\u00e1lhatod az upstreambe.<\/p>\n<p>A Helm h\u00e1rom f\u0151 koncepci\u00f3ra \u00e9p\u00fcl:<\/p>\n<ul>\n<li><strong>Chart Repo<\/strong> \u2014 a manifesztusod le\u00edr\u00e1sa \u00e9s param\u00e9terez\u00e9si m\u00e1trixa.\u00a0<\/li>\n<li><strong>Konfigur\u00e1ci\u00f3<\/strong> \u2014ezek a ki\u00e9rt\u00e9kelt \u00e9rt\u00e9kek (sz\u00f6veg, sz\u00e1m\u00e9rt\u00e9kek stb.).<\/li>\n<li><strong>Kiad\u00e1s<\/strong> k\u00e9t fels\u0151 komponenst fog \u00f6ssze, \u00e9s egy\u00fctt Release-z\u00e9 alakulnak. A kiad\u00e1sok verzi\u00f3zhat\u00f3ak, \u00edgy megszervezhetj\u00fck az \u00e9letciklust: kicsi a telep\u00edt\u00e9skor, \u00e9s nagyobb a friss\u00edt\u00e9sek, visszamin\u0151s\u00edt\u00e9sek vagy visszag\u00f6rget\u00e9sek idej\u00e9n.<\/li>\n<\/ul>\n<p><\/p>\n<h2>A Helm architekt\u00far\u00e1ja<\/h2>\n<p>\nA diagram szeml\u00e9lteti a Helm magas szint\u0171 architekt\u00far\u00e1j\u00e1t.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/c5cf54890682a3d6ca7a45021b5006a1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNe feledd, hogy a Helm a Kuberneteshez kapcsol\u00f3dik. \u00cdgy elengedhetetlen a Kubernetes klaszter (t\u00e9glalap). A kube-apiserver komponens a mesterre ker\u00fcl. Helm n\u00e9lk\u00fcl van Kubeconfigunk. A Helm hoz egy kis bin\u00e1ris alkalmaz\u00e1st, ha \u00edgy lehet nevezni, Helm CLI n\u00e9ven, amely telep\u00edthet\u0151 sz\u00e1m\u00edt\u00f3g\u00e9pre, laptopra, mainframe-re \u2013 b\u00e1rhova.<\/p>\n<p>De ez nem el\u00e9g. A Helm rendelkezik egy szerveroldali komponenssel, a Tillerrel. Ez k\u00e9pviseli a Helm \u00e9rdekeit a klaszterben, ez ugyanolyan alkalmaz\u00e1s a Kubernetes klaszterben, mint b\u00e1rmely m\u00e1sik.<\/p>\n<p>A k\u00f6vetkez\u0151 komponens a Chart Repo - a chartek t\u00e1rol\u00f3ja. L\u00e9tezik hivatalos t\u00e1rol\u00f3, \u00e9s lehet priv\u00e1t t\u00e1rol\u00f3 is, v\u00e1llalatok vagy projektek sz\u00e1m\u00e1ra.<\/p>\n<h3>Interakci\u00f3<\/h3>\n<p>\nN\u00e9zz\u00fck meg, hogy a komponensek hogyan m\u0171k\u00f6dnek egy\u00fctt, amikor alkalmaz\u00e1st szeretn\u00e9nk telep\u00edteni a Helm seg\u00edts\u00e9g\u00e9vel.<\/p>\n<ul>\n<li>Mondjuk, <code>Helm install<\/code>, \u00e9s megkeress\u00fck a t\u00e1rol\u00f3t (Chart Repo), majd megkapjuk a Helm chartot.<\/li>\n<\/ul>\n<p><\/p>\n<ul>\n<li>A Helm-eszk\u00f6z (Helm CLI) interakci\u00f3ba l\u00e9p a Kubeconfiggal, hogy kider\u00edtse, melyik klaszterhez kell fordulnia.\u00a0<\/li>\n<li>Miut\u00e1n megkapta ezt az inform\u00e1ci\u00f3t, az eszk\u00f6z a Tillerhez fordul, amely a klaszter\u00fcnkben, mint alkalmaz\u00e1s tal\u00e1lhat\u00f3.\u00a0<\/li>\n<li>A Tiller a Kube-apiserverhez fordul, hogy v\u00e9grehajtson m\u0171veleteket a Kubernetesben, l\u00e9trehozzon valamilyen objektumokat (szolg\u00e1ltat\u00e1sok, podok, replik\u00e1k, titkok stb.).<\/li>\n<\/ul>\n<p>\nEzut\u00e1n bonyol\u00edtjuk a s\u00e9m\u00e1t, hogy l\u00e1ssuk a t\u00e1mad\u00e1si vektorokat, amelyekkel az eg\u00e9sz Helm architekt\u00fara szembeker\u00fclhet. Azt\u00e1n megpr\u00f3b\u00e1ljuk megv\u00e9deni.<\/p>\n<h3>T\u00e1mad\u00e1si vektor<\/h3>\n<p>\nAz els\u0151 potenci\u00e1lisan gyenge pont \u2014 <strong>a privilegiz\u00e1lt API<\/strong>\u2014<strong>a felhaszn\u00e1l\u00f3<\/strong>. A rendszer keretein bel\u00fcl egy hacker, aki adminisztr\u00e1tor hozz\u00e1f\u00e9r\u00e9ssel b\u00edr a Helm CLI-hez.<\/p>\n<p><strong>Nem privil\u00e9giz\u00e1lt API-felhaszn\u00e1l\u00f3<\/strong> szint\u00e9n vesz\u00e9lyt jelenthet, ha a k\u00f6zelben tart\u00f3zkodik. Ennek a felhaszn\u00e1l\u00f3nak m\u00e1s kontextusa lehet, p\u00e9ld\u00e1ul r\u00f6gz\u00edthetik egy namespace-ben a klaszterben a Kubeconfig be\u00e1ll\u00edt\u00e1sok alapj\u00e1n.<\/p>\n<p>A leg\u00e9rdekesebb t\u00e1mad\u00e1si ir\u00e1ny lehet egy folyamat, ami a klaszteren bel\u00fcl van valahol a Tiller mellett, \u00e9s kommunik\u00e1lni tud vele. Ez lehet egy webszerver vagy mikroszolg\u00e1ltat\u00e1s, ami l\u00e1tja a klaszter h\u00e1l\u00f3zati k\u00f6rnyezet\u00e9t.<\/p>\n<p>Exotikus, de egyre n\u00e9pszer\u0171bb t\u00e1mad\u00e1si lehet\u0151s\u00e9g a Chart Repo-hoz kapcsol\u00f3dik. Egy rossz sz\u00e1nd\u00e9k\u00fa szerz\u0151 \u00e1ltal l\u00e9trehozott chart biztons\u00e1gtalan er\u0151forr\u00e1st tartalmazhat, amit v\u00e9grehajtasz, mivel hiszel neki. Vagy helyettes\u00edtheti a chartot, amelyet az hivatalos t\u00e1rol\u00f3b\u00f3l t\u00f6ltesz le, \u00e9s p\u00e9ld\u00e1ul er\u0151forr\u00e1st hozhat l\u00e9tre politik\u00e1k form\u00e1j\u00e1ban, ezzel eszk\u00f6z\u00f6lve a hozz\u00e1f\u00e9r\u00e9s\u00e9nek fokoz\u00e1s\u00e1t.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/2828046feb9ba8413a1b0e8741b4c354.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPr\u00f3b\u00e1ljuk megv\u00e9deni magunkat minden n\u00e9gy ir\u00e1nyb\u00f3l, \u00e9s kider\u00edteni, hol vannak a probl\u00e9m\u00e1k a Helm architekt\u00far\u00e1j\u00e1ban, \u00e9s hol lehet, hogy nincsenek.<\/p>\n<p>T\u00e1g\u00edtsuk a rendszert, adjunk hozz\u00e1 t\u00f6bb elemet, de tartsuk meg az alapvet\u0151 tartalmakat.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/4110898e79619b8546408c668c48da0d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA Helm CLI kommunik\u00e1l a Chart Repo-val, interakci\u00f3ba l\u00e9p a Kubeconfig-gal, a munka a klaszterbe ker\u00fcl a Tiller komponensen kereszt\u00fcl.<\/p>\n<p>A Tiller k\u00e9t objektummal van k\u00e9pviselve:<\/p>\n<ul>\n<li>A Tiller-deploy svc, amely kiad egy szolg\u00e1ltat\u00e1st;<\/li>\n<li>A Tiller-deploy pod (a diagramon egyedi p\u00e9ld\u00e1nyban, egy replik\u00e1ban), amelyen az \u00f6sszes terhel\u00e9s fut, \u00e9s amely hozz\u00e1f\u00e9r a klaszterhez.<\/li>\n<\/ul>\n<p>\nK\u00fcl\u00f6nb\u00f6z\u0151 protokollokat \u00e9s s\u00e9m\u00e1kat haszn\u00e1lnak az interakci\u00f3hoz. Biztons\u00e1gi szempontb\u00f3l a leg\u00e9rdekesebb sz\u00e1munkra:<\/p>\n<ul>\n<li>A mechanizmus, amellyel a Helm CLI a chart repo-hoz kapcsol\u00f3dik: milyen protokoll van, van-e hiteles\u00edt\u00e9s, \u00e9s mit tehet\u00fcnk ezzel kapcsolatban.<\/li>\n<li>Az a protokoll, amelyen a Helm CLI a kubectl seg\u00edts\u00e9g\u00e9vel kommunik\u00e1l a Tiller-rel. Ez egy RPC-szerver, amely a klaszter belsej\u00e9ben van telep\u00edtve.<\/li>\n<li>A Tiller el\u00e9rhet\u0151 a klaszterben tal\u00e1lhat\u00f3 mikroszolg\u00e1ltat\u00e1sok sz\u00e1m\u00e1ra, \u00e9s egy\u00fcttm\u0171k\u00f6dik a Kube-apiserver-rel.<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/19e7e085567f3bbb49746e6402926bd6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBesz\u00e9lj\u00fcnk ezekr\u0151l az ir\u00e1nyokr\u00f3l egyes\u00e9vel.<\/p>\n<h2>RBAC<\/h2>\n<p><\/p>\n<blockquote><p>Haszontalan sz\u00f3ba hozni b\u00e1rmilyen biztons\u00e1got a Helm vagy m\u00e1s szolg\u00e1ltat\u00e1s kapcs\u00e1n a klaszterben, ha az RBAC nincs enged\u00e9lyezve.<\/p><\/blockquote>\n<p>\n\u00dagy t\u0171nik, nem a legfrissebb aj\u00e1nl\u00e1s, de biztos vagyok benne, hogy sokan m\u00e9g mindig nem aktiv\u00e1lt\u00e1k az RBAC-t m\u00e9g a termel\u00e9si k\u00f6rnyezetben sem, mert ez sok macer\u00e1val j\u00e1r, \u00e9s sok mindent be kell \u00e1ll\u00edtani. Ennek ellen\u00e9re buzd\u00edtom mindenkit, hogy tegye meg.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" 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 \u00fcgyv\u00e9d oldal az RBAC-hoz. Itt hatalmas mennyis\u00e9g\u0171 \u00e9rdekes anyagot gy\u0171jt\u00f6ttek \u00f6ssze, amelyek seg\u00edtenek az RBAC be\u00e1ll\u00edt\u00e1s\u00e1ban, megmutatj\u00e1k, mi\u00e9rt j\u00f3, \u00e9s hogyan lehet vele \u00e1ltal\u00e1ban \u00e9lni a termel\u00e9si k\u00f6rnyezetben.<\/p>\n<p>Megpr\u00f3b\u00e1lom elmagyar\u00e1zni, hogyan m\u0171k\u00f6dik a Tiller \u00e9s az RBAC. A Tiller a klaszterben m\u0171k\u00f6dik egy szolg\u00e1ltat\u00e1sfi\u00f3k alatt. \u00c1ltal\u00e1ban, ha az RBAC nincs be\u00e1ll\u00edtva, akkor ez szuperfelhaszn\u00e1l\u00f3 lesz. Az alap konfigur\u00e1ci\u00f3ban a Tiller adminisztr\u00e1tor. \u00c9ppen ez\u00e9rt mondj\u00e1k gyakran, hogy a Tiller egy SSH-alag\u00fat a klaszteredhez. Val\u00f3j\u00e1ban ez \u00edgy van, ez\u00e9rt egy k\u00fcl\u00f6n, specializ\u00e1lt szolg\u00e1ltat\u00e1sfi\u00f3kot lehet haszn\u00e1lni a fenti \u00e1br\u00e1n bemutatott Alap\u00e9rtelmezett Szolg\u00e1ltat\u00e1sfi\u00f3k helyett.<\/p>\n<p>Amikor inicializ\u00e1lod a Helm-et, teh\u00e1t el\u0151sz\u00f6r telep\u00edted a szerverre, megadhatsz egy szolg\u00e1ltat\u00e1sfi\u00f3kot a k\u00f6vetkez\u0151kkel: <code>--service-account<\/code>. Ez lehet\u0151v\u00e9 teszi, hogy a minim\u00e1lisan sz\u00fcks\u00e9ges jogosults\u00e1gokkal rendelkez\u0151 felhaszn\u00e1l\u00f3t haszn\u00e1ld. Igaz, hogy l\u00e9tre kell hozni egy ilyen \u201egirlandot\u201d: Szerep \u00e9s Szerepk\u00f6t\u00e9s.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/ec805cde756495cfd5c480ac40739c43.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSajnos a Helm ezt nem fogja megtenni helyetted. Neked vagy a Kubernetes klasztered adminisztr\u00e1tor\u00e1nak el\u0151re fel kell k\u00e9sz\u00edteni egy Szerep \u00e9s Szerepk\u00f6t\u00e9s k\u00e9szlet\u00e9t a szolg\u00e1ltat\u00e1sfi\u00f3k sz\u00e1m\u00e1ra, hogy \u00e1tadhasd a Helm-nek.<\/p>\n<p>Felmer\u00fcl a k\u00e9rd\u00e9s \u2014 mi a k\u00fcl\u00f6nbs\u00e9g a Szerep \u00e9s a Klaszter Szerep k\u00f6z\u00f6tt? A k\u00fcl\u00f6nbs\u00e9g az, hogy a Klaszter Szerep minden namespace-re \u00e9rv\u00e9nyes, m\u00edg a szok\u00e1sos Szerep \u00e9s Szerepk\u00f6t\u00e9s csak egy adott namespace-ra vonatkozik. A politik\u00e1k be\u00e1ll\u00edthat\u00f3k az eg\u00e9sz klaszterre \u00e9s minden namespace-re, valamint szem\u00e9lyre szabottan minden egyes namespace-ra.<\/p>\n<p>\u00c9rdemes megeml\u00edteni, hogy az RBAC egy m\u00e1sik nagy probl\u00e9m\u00e1t is megold. Sokan panaszkodnak, hogy a Helm sajnos nem multitenancy (nem t\u00e1mogatja a t\u00f6bbr\u00e9teg\u0171 b\u00e9rbead\u00e1st). Ha t\u00f6bb csapat haszn\u00e1lja a klasztert \u00e9s a Helm-et, alapvet\u0151en lehetetlen a politik\u00e1k be\u00e1ll\u00edt\u00e1sa \u00e9s a hozz\u00e1f\u00e9r\u00e9s elk\u00fcl\u00f6n\u00edt\u00e9se ennek a klaszternak a keretein bel\u00fcl, mivel van egy szolg\u00e1ltat\u00e1sfi\u00f3k, amivel a Helm m\u0171k\u00f6dik, \u00e9s ez al\u00f3l minden er\u0151forr\u00e1st l\u00e9trehoz a klaszterben, ami n\u00e9ha nagyon k\u00e9nyelmetlen. Ez igaz \u2014 mint maga a bin\u00e1ris f\u00e1jl, mint folyamat, <strong>A Helm Tiller nem rendelkezik multitenancy fogalm\u00e1val.<\/strong>.<\/p>\n<p>Azonban van egy nagyszer\u0171 m\u00f3dszer, amely lehet\u0151v\u00e9 teszi, hogy a Tiller-t t\u00f6bbsz\u00f6r ind\u00edtsd el a klaszterben. Ezzel nincs semmif\u00e9le probl\u00e9ma, a Tillert minden namespace-ben el lehet ind\u00edtani. Ezzel kihaszn\u00e1lhatod az RBAC-ot, a Kubeconfig-ot mint kontextust, \u00e9s korl\u00e1tozhatod a hozz\u00e1f\u00e9r\u00e9st egy speci\u00e1lis Helm-re.<\/p>\n<p>Ez \u00edgy n\u00e9z ki.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/eae922c7b5e1422fb51667364ed79e0a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00e9ld\u00e1ul van k\u00e9t Kubeconfig a kontextussal, k\u00fcl\u00f6nb\u00f6z\u0151 csapatok sz\u00e1m\u00e1ra (k\u00e9t namespace): X Team a fejleszt\u0151i csapat sz\u00e1m\u00e1ra \u00e9s egy admin cluster. Az admin clusternek sz\u00e9les Tillerje van, amely a Kube-system namespace-ben tal\u00e1lhat\u00f3, ennek megfelel\u0151en fejlett service-account. \u00c9s k\u00fcl\u00f6n namespace a fejleszt\u0151i csapat sz\u00e1m\u00e1ra, \u0151k a saj\u00e1t szolg\u00e1ltat\u00e1saikat tudj\u00e1k telep\u00edteni egy speci\u00e1lis namespace-be.<\/p>\n<p>Ez egy m\u0171k\u00f6d\u0151 megk\u00f6zel\u00edt\u00e9s, a Tiller nem annyira k\u00f6lts\u00e9ges, hogy ez jelent\u0151sen befoly\u00e1soln\u00e1 a k\u00f6lts\u00e9gvet\u00e9s\u00e9t. Ez az egyik gyors megold\u00e1s.<\/p>\n<blockquote><p>Ne habozzon k\u00fcl\u00f6n be\u00e1ll\u00edtani a Tillert, \u00e9s Kubeconfigot biztos\u00edtani a csapathoz, egy adott fejleszt\u0151h\u00f6z vagy k\u00f6rnyezethez: Dev, Staging, Production (nem val\u00f3sz\u00edn\u0171, hogy minden egy kluszt\u00e9rben lenne, de meg lehet csin\u00e1lni).<\/p><\/blockquote>\n<p>\nFolytatva a t\u00f6rt\u00e9net\u00fcnket, v\u00e1ltogassunk az RBAC-r\u00f3l a ConfigMap-ekre.<\/p>\n<h3>ConfigMap-ek<\/h3>\n<p>\nA Helm a ConfigMap-eket haszn\u00e1lja adatb\u00e1zisk\u00e9nt. Amikor az architekt\u00far\u00e1r\u00f3l besz\u00e9lt\u00fcnk, nem voltam sz\u00f3 adatb\u00e1zisr\u00f3l, amely a kiad\u00e1sok, konfigur\u00e1ci\u00f3k, rollbackek stb. inform\u00e1ci\u00f3it t\u00e1roln\u00e1. Ehhez haszn\u00e1ljuk a ConfigMap-eket.<\/p>\n<p>A ConfigMap-ekkel kapcsolatos alapvet\u0151 probl\u00e9ma ismert \u2013 alapvet\u0151en nem biztons\u00e1gosak. <strong>Nem lehet \u00e9rz\u00e9keny adatokat t\u00e1rolni benn\u00fck.<\/strong>Ez minden olyan dologra vonatkozik, ami nem ker\u00fclhet ki a szolg\u00e1ltat\u00e1son k\u00edv\u00fcl, p\u00e9ld\u00e1ul jelszavak. A Helm legnemesebb m\u00f3dja jelenleg a ConfigMap-ek haszn\u00e1lat\u00e1nak \u00e1t\u00e1ll\u00e1sa titkokra.<\/p>\n<p>Ez nagyon egyszer\u0171en elv\u00e9gezhet\u0151. \u00c1t\u00e1ll\u00edtja a Tiller be\u00e1ll\u00edt\u00e1sait, \u00e9s megadja, hogy a t\u00e1rol\u00f3 titkok lesznek. Akkor minden telep\u00edt\u00e9skor nem ConfigMap-et, hanem titkot fog kapni.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/7fd12bfbed5c6c8111a5126c2ab9f853.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEllenkezhet azzal, hogy a titkok furcsa koncepci\u00f3, \u00e9s nem t\u00fal biztons\u00e1gos. azonban \u00e9rdemes meg\u00e9rteni, hogy ezt maguk a Kubernetes fejleszt\u0151k v\u00e9gzik. 1.10-es verzi\u00f3t\u00f3l kezdve, teh\u00e1t m\u00e1r r\u00e9gen, lehet\u0151s\u00e9g van legal\u00e1bb a nyilv\u00e1nos felh\u0151kben a megfelel\u0151 t\u00e1rol\u00f3 csatlakoztat\u00e1s\u00e1ra a titkok t\u00e1rol\u00e1s\u00e1ra. Jelenleg a csapat azon dolgozik, hogy m\u00e9g jobban el\u00e9rhet\u0151v\u00e9 tegye a titkokat, k\u00fcl\u00f6n egyes podok vagy m\u00e1s entit\u00e1sok sz\u00e1m\u00e1ra.<\/p>\n<blockquote><p>A Helm t\u00e1rol\u00e1s\u00e1t jobban kell \u00e1tkonfigur\u00e1lni titkokra, \u00e9s azok k\u00f6zpontilag biztons\u00e1gosabb\u00e1 tehet\u0151k.<\/p><\/blockquote>\n<p>\nTerm\u00e9szetesen maradni fog <strong>az adatok t\u00e1rol\u00e1s\u00e1nak 1 MB-os korl\u00e1tja.<\/strong>. A Helm itt az etcd-t haszn\u00e1lja elosztott t\u00e1rol\u00f3k\u00e9nt a ConfigMap-ekhez. Ott \u00fagy \u00edt\u00e9lik meg, hogy ez egy megfelel\u0151 adathalmaz a replik\u00e1ci\u00f3khoz \u00e9s hasonl\u00f3khoz. Ezzel kapcsolatban \u00e9rdekes besz\u00e9lget\u00e9s folyik a Redditen, aj\u00e1nlom, hogy tal\u00e1lj r\u00e1 erre a sz\u00f3rakoztat\u00f3 olvasm\u00e1nyra a h\u00e9tv\u00e9g\u00e9re, vagy olvasd el a kivonatot. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\/issues\/1413\">itt<\/a><\/noindex>.<\/p>\n<h3>Chart Repos<\/h3>\n<p>\nA chartok a legnagyobb m\u00e9rt\u00e9kben t\u00e1rsadalmi szempontb\u00f3l sebezhet\u0151k, \u00e9s forr\u00e1sai lehetnek a \u201eman in the middle\u201d t\u00e1mad\u00e1soknak, k\u00fcl\u00f6n\u00f6sen, ha alap\u00e9rtelmezett megold\u00e1st haszn\u00e1lnak. Els\u0151sorban azokr\u00f3l a t\u00e1rol\u00f3kr\u00f3l van sz\u00f3, amelyek HTTP-n kereszt\u00fcl el\u00e9rhet\u0151k.<\/p>\n<blockquote><p>Hat\u00e1rozottan \u00e9rdemes a Helm Repo-t HTTPS-en kereszt\u00fcl el\u00e9rhet\u0151v\u00e9 tenni - ez a legjobb megold\u00e1s, \u00e9s nem dr\u00e1ga.<\/p><\/blockquote>\n<p>\nK\u00e9rj\u00fck, vegye figyelembe <strong>a chartok al\u00e1\u00edr\u00e1si mechanizmusa<\/strong>. A technol\u00f3gia roppant egyszer\u0171. Ugyanaz, amit a GitHub-on haszn\u00e1lsz, a szok\u00e1sos PGP g\u00e9pezettel, nyilv\u00e1nos \u00e9s priv\u00e1t kulcsokkal. \u00c1ll\u00edtsd be, \u00e9s biztos lehetsz benne, hogy a megfelel\u0151 kulcsok birtok\u00e1ban minden al\u00e1\u00edr\u00e1sod val\u00f3ban a te chartod.<\/p>\n<p>Ezen k\u00edv\u00fcl, <strong>A Helm-kliens t\u00e1mogatja a TLS-t<\/strong> (nem a szerver oldal\u00e1r\u00f3l, hanem k\u00f6lcs\u00f6n\u00f6s TLS). Haszn\u00e1lhatod a szerver- \u00e9s kliens kulcsokat a kommunik\u00e1ci\u00f3hoz. \u0150szint\u00e9n sz\u00f3lva, \u00e9n nem haszn\u00e1lom ezt a mechanizmust a k\u00f6lcs\u00f6n\u00f6s tan\u00fas\u00edtv\u00e1nyokkal kapcsolatos vonz\u00f3d\u00e1s hi\u00e1nya miatt. Elvileg, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/chartmuseum\">chartmuseum<\/a><\/noindex> \u2014 a Helm Repo kihelyez\u00e9s\u00e9nek alapvet\u0151 eszk\u00f6ze a Helm 2-h\u00f6z \u2014 t\u00e1mogatja a basic auth-ot is. Haszn\u00e1lhatsz basic auth-ot, ha ez k\u00e9nyelmesebb \u00e9s nyugodtabb.<\/p>\n<p>M\u00e9g van egy plugin <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/hayorov\/helm-gcs\">helm-gcs<\/a><\/noindex>, amely lehet\u0151v\u00e9 teszi a Chart Repos elhelyez\u00e9s\u00e9t a Google Cloud Storage-ban. Ez nagyon k\u00e9nyelmes, sz\u00e9pen m\u0171k\u00f6dik, \u00e9s el\u00e9g biztons\u00e1gos, mert minden le\u00edrt mechanizmust figyelembe vesz.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/6a72bfd96c7eb0e2fdd7bcbf128e6433.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHa enged\u00e9lyezed a HTTPS-t vagy TLS-t, haszn\u00e1lsz mTLS-t, \u00e9s basic auth-ot is bevezetve, hogy m\u00e9g ink\u00e1bb cs\u00f6kkentsd a kock\u00e1zatokat, egy biztons\u00e1gos kommunik\u00e1ci\u00f3s csatorn\u00e1t kapsz a Helm CLI \u00e9s a Chart Repo k\u00f6z\u00f6tt.<\/p>\n<h3>gRPC API<\/h3>\n<p>\nA k\u00f6vetkez\u0151 l\u00e9p\u00e9s nagyon felel\u0151ss\u00e9gteljes - megv\u00e9deni a Tiller-t, amely a klaszterben tal\u00e1lhat\u00f3, \u00e9s egyr\u00e9szt szerver, m\u00e1sr\u00e9szt pedig hozz\u00e1f\u00e9r m\u00e1s komponensekhez, \u00e9s pr\u00f3b\u00e1lja mag\u00e1t valakik\u00e9nt bemutatni.<\/p>\n<p>Ahogy m\u00e1r mondtam, a Tiller az a szolg\u00e1ltat\u00e1s, amely gRPC-t k\u00edn\u00e1l, a Helm-kliens gRPC-n kereszt\u00fcl csatlakozik hozz\u00e1. Alap\u00e9rtelmez\u00e9s szerint term\u00e9szetesen a TLS ki van kapcsolva. Hogy ez mi\u00e9rt van, az vitatott k\u00e9rd\u00e9s; szerintem az\u00e9rt, hogy megk\u00f6nny\u00edtse a kezdeti be\u00e1ll\u00edt\u00e1st.<\/p>\n<blockquote><p>Production \u00e9s m\u00e9g staging k\u00f6rnyezethez is aj\u00e1nlom a TLS bekapcsol\u00e1s\u00e1t a gRPC-n.<\/p><\/blockquote>\n<p>\nV\u00e9lem\u00e9nyem szerint, ellent\u00e9tben az mTLS-sel a chartok eset\u00e9ben, itt ez hely\u00e9nval\u00f3 \u00e9s nagyon egyszer\u0171en megval\u00f3s\u00edthat\u00f3 \u2014 gener\u00e1lsz egy PQI infrastrukt\u00far\u00e1t, l\u00e9trehozol egy tan\u00fas\u00edtv\u00e1nyt, elind\u00edtod a Tiller-t, \u00e9s \u00e1tadod a tan\u00fas\u00edtv\u00e1nyt az inicializ\u00e1l\u00e1s sor\u00e1n. Ezt k\u00f6vet\u0151en m\u00e1r minden Helm-parancsot v\u00e9grehajthatsz a gener\u00e1lt tan\u00fas\u00edtv\u00e1nnyal \u00e9s priv\u00e1t kulccsal.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/ed55b9a465ed1278b272c52c90b2b345.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEzzel megv\u00e9ded magad a Tiller fel\u00e9 ir\u00e1nyul\u00f3 minden k\u00fcls\u0151 k\u00e9r\u00e9st\u0151l a klaszteren k\u00edv\u00fcl.<\/p>\n<p>Teh\u00e1t biztons\u00e1goss\u00e1 tett\u00fck a kapcsolatot a Tiller-rel, m\u00e1r megvitattuk az RBAC-ot \u00e9s be\u00e1ll\u00edtottuk a Kubernetes apiserver jogait, cs\u00f6kkentett\u00fck a domaint, amellyel interakci\u00f3ba l\u00e9phet.<\/p>\n<h2>Biztons\u00e1gos Helm<\/h2>\n<p>\nN\u00e9zz\u00fck meg a v\u00e9gs\u0151 s\u00e9m\u00e1t. Ez ugyanaz az architekt\u00fara ugyanazokkal a nyilakkal.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/6672e254ad93b917f57794e1619a572e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMost m\u00e1r b\u00e1tran z\u00f6lddel rajzolhatunk minden kapcsolatot:<\/p>\n<ul>\n<li>a Chart Repo eset\u00e9n TLS-t vagy mTLS-t \u00e9s alapvet\u0151 hiteles\u00edt\u00e9st haszn\u00e1lunk;<\/li>\n<li>mTLS a Tillerhez, amelyet gRPC-szolg\u00e1ltat\u00e1sk\u00e9nt TLS-sel \u00e1ll\u00edtanak be, tan\u00fas\u00edtv\u00e1nyokat haszn\u00e1lunk;<\/li>\n<li>a klaszterben speci\u00e1lis szolg\u00e1ltat\u00e1s-fi\u00f3kot haszn\u00e1lunk szereppel \u00e9s RoleBinding-gal.\u00a0<\/li>\n<\/ul>\n<p>\nL\u00e1that\u00f3an biztons\u00e1gosabb\u00e1 tett\u00fck a klasztert, de valaki b\u00f6lcsen mondta:<\/p>\n<blockquote><p>\u201eTeljesen biztons\u00e1gos megold\u00e1s csak egy lehet \u2014 a kikapcsolt sz\u00e1m\u00edt\u00f3g\u00e9p, amely beton dobozban van \u00e9s katon\u00e1k \u0151rzik.\u201d<\/p><\/blockquote>\n<p>\nK\u00fcl\u00f6nb\u00f6z\u0151 m\u00f3dok l\u00e9teznek az adatok manipul\u00e1l\u00e1s\u00e1ra \u00e9s \u00faj t\u00e1mad\u00e1si vektorok felkutat\u00e1s\u00e1ra. De biztos vagyok benne, hogy ezek az aj\u00e1nl\u00e1sok lehet\u0151v\u00e9 teszik a biztons\u00e1g alapvet\u0151 ipari szabv\u00e1ny\u00e1nak megval\u00f3s\u00edt\u00e1s\u00e1t.<\/p>\n<h2>B\u00f3nusz<\/h2>\n<p>\nEz a r\u00e9sz nem kapcsol\u00f3dik k\u00f6zvetlen\u00fcl a biztons\u00e1ghoz, de hasznos lesz. Megmutatom n\u00e9h\u00e1ny \u00e9rdekes dolgot, amir\u0151l kevesen tudnak. P\u00e9ld\u00e1ul, hogyan keresd a chartokat \u2014 hivatalosakat \u00e9s nem hivatalosakat.<\/p>\n<p>A t\u00e1rol\u00f3ban <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/charts\">github.com\/helm\/charts<\/a><\/noindex> jelenleg k\u00f6r\u00fclbel\u00fcl 300 chart \u00e9s k\u00e9t stream: stable \u00e9s incub\u00e1tor. Aki hozz\u00e1j\u00e1rul, az j\u00f3l tudja, mennyire neh\u00e9z beker\u00fclni az incub\u00e1torb\u00f3l a stable-be, \u00e9s mennyire k\u00f6nny\u0171 kiesni a stable-b\u00f3l. Azonban ez nem a legjobb eszk\u00f6z, hogy chartokat keress Prometheushoz \u00e9s b\u00e1rmi m\u00e1shoz, egy egyszer\u0171 okb\u00f3l kifoly\u00f3lag \u2014 ez nem egy port\u00e1l, ahol k\u00f6nnyen kereshetsz csomagokat.<\/p>\n<p>De van egy szolg\u00e1ltat\u00e1s <noindex><a rel=\"nofollow\" href=\"https:\/\/hub.helm.sh\/\">hub.helm.sh<\/a><\/noindex>, amellyel sokkal k\u00e9nyelmesebben tal\u00e1lhatsz chartokat. A legfontosabb, hogy ott sokkal t\u00f6bb k\u00fcls\u0151 rep\u00f3 \u00e1ll rendelkez\u00e9sre, \u00e9s majdnem 800 chart \u00e9rhet\u0151 el. Plusz, csatlakoztathatod a saj\u00e1t rep\u00f3dat, ha valamilyen okb\u00f3l nem szeretn\u00e9d elk\u00fcldeni a chartjaidat a stable-be.<\/p>\n<p>Pr\u00f3b\u00e1lja ki a hub.helm.sh-t, \u00e9s fejlessz\u00fck k\u00f6z\u00f6sen. Ez a szolg\u00e1ltat\u00e1s a Helm-projekt alatt m\u0171k\u00f6dik, \u00e9s \u00d6n hozz\u00e1j\u00e1rulhat a felhaszn\u00e1l\u00f3i fel\u00fclet\u00e9hez is, ha front-end fejleszt\u0151, \u00e9s szeretn\u00e9 jav\u00edtani a megjelen\u00e9st.<\/p>\n<p>Tov\u00e1bb\u00e1 szeretn\u00e9m felh\u00edvni a figyelm\u00e9t <strong>Open Service Broker API integr\u00e1ci\u00f3ra<\/strong>. Nagyon hangzatosnak \u00e9s \u00e9rthetetlennek t\u0171nik, de megoldja azokat a probl\u00e9m\u00e1kat, amelyekkel mindannyian szembes\u00fcl\u00fcnk. Egy egyszer\u0171 p\u00e9ld\u00e1n kereszt\u00fcl elmagyar\u00e1zom.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/3aeb7e0781e50a79b518f1056873f73a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVan egy Kubernetes klaszter\u00fcnk, amelyben egy klasszikus alkalmaz\u00e1st szeretn\u00e9nk futtatni \u2013 WordPress-t. \u00c1ltal\u00e1ban a teljes funkcionalit\u00e1shoz adatb\u00e1zisra van sz\u00fcks\u00e9g. Sok k\u00fcl\u00f6nb\u00f6z\u0151 megold\u00e1s l\u00e9tezik, p\u00e9ld\u00e1ul elind\u00edthatunk egy stateful szolg\u00e1ltat\u00e1st. Ez nem t\u00fal k\u00e9nyelmes, de sokan \u00edgy tesznek.<\/p>\n<p>M\u00e1sok, mint p\u00e9ld\u00e1ul mi a Chainstack-n\u00e9l, kezelhet\u0151 adatb\u00e1zisokat haszn\u00e1lnak, p\u00e9ld\u00e1ul MySQL-t vagy PostgreSQL-t, a szerverekhez. Ez\u00e9rt az adatb\u00e1zisunk valahol a felh\u0151ben tal\u00e1lhat\u00f3.<\/p>\n<p>De felmer\u00fcl a probl\u00e9ma: \u00f6ssze kell kapcsolnunk a szolg\u00e1ltat\u00e1sunkat az adatb\u00e1zissal, l\u00e9tre kell hoznunk az adatb\u00e1zis flavor-t, \u00e1t kell adnunk a hiteles\u00edt\u0151 adatokat, \u00e9s valahogyan kezelni kell \u0151ket. Mindezt \u00e1ltal\u00e1ban a rendszergazda vagy a fejleszt\u0151 v\u00e9gzi manu\u00e1lisan. Nincs is probl\u00e9ma, ha kev\u00e9s alkalmaz\u00e1s van. Ha azonban sok van, sz\u00fcks\u00e9g van egy kombin\u00e1l\u00f3ra. Ilyen kombin\u00e1l\u00f3 a Service Broker. Ez lehet\u0151v\u00e9 teszi, hogy k\u00fcl\u00f6nleges plugint haszn\u00e1ljunk a nyilv\u00e1nos felh\u0151 klaszterhez, \u00e9s rendelhet\u00fcnk forr\u00e1sokat a szolg\u00e1ltat\u00f3t\u00f3l Broker-en kereszt\u00fcl, mintha ez egy API lenne. Erre a Kubernetes nat\u00edv eszk\u00f6zei is haszn\u00e1lhat\u00f3k.<\/p>\n<p>Ez nagyon egyszer\u0171. K\u00e9rhet p\u00e9ld\u00e1ul Managed MySQL-t az Azure-ban alap szinten (ezt be lehet \u00e1ll\u00edtani). Az Azure API-j\u00e1nak haszn\u00e1lat\u00e1val az adatb\u00e1zis l\u00e9trej\u00f6n \u00e9s k\u00e9szen \u00e1ll a haszn\u00e1latra. Ehhez nem kell beavatkoznia, a plugin felel \u00e9rte. P\u00e9ld\u00e1ul az OSBA (Azure plugin) visszaadja a hiteles\u00edt\u0151 adatokat a szolg\u00e1ltat\u00e1snak, \u00e9s \u00e1tadja ezt a Helm-nek. \u00cdgy haszn\u00e1lhatja a WordPress-t a felh\u0151beli MySQL-lal, an\u00e9lk\u00fcl, hogy foglalkoznia kellene a kezelt adatb\u00e1zisokkal vagy a stateful szolg\u00e1ltat\u00e1sokkal.<\/p>\n<blockquote><p>Mondhatjuk, hogy a Helm a ragaszt\u00f3, amely egyr\u00e9szt lehet\u0151v\u00e9 teszi a szolg\u00e1ltat\u00e1sok telep\u00edt\u00e9s\u00e9t, m\u00e1sr\u00e9szt pedig a felh\u0151szolg\u00e1ltat\u00f3k er\u0151forr\u00e1sainak fogyaszt\u00e1s\u00e1t.<\/p><\/blockquote>\n<p>\n\u00cdrhat saj\u00e1t plugint, \u00e9s haszn\u00e1lhatja ezt az eg\u00e9sz t\u00f6rt\u00e9netet on-premise. Akkor egyszer\u0171en lesz saj\u00e1t plug-in az ipari Cloud szolg\u00e1ltat\u00f3j\u00e1hoz. Javaslom, hogy pr\u00f3b\u00e1lja ki ezt a megk\u00f6zel\u00edt\u00e9st, k\u00fcl\u00f6n\u00f6sen, ha nagy a m\u00e9ret \u00e9s gyorsan szeretn\u00e9 ki\u00e9p\u00edteni a fejleszt\u00e9si, tesztel\u00e9si vagy eg\u00e9sz infrastrukt\u00far\u00e1t egy funkci\u00f3 k\u00f6r\u00e9. Ez megk\u00f6nny\u00edti az \u00e9let\u00e9t az \u00fczemeltet\u0151inknek vagy a DevOps-nak.<\/p>\n<p>M\u00e9g egy felfedez\u00e9s, amit m\u00e1r eml\u00edtettem \u2014 ez a <strong>helm-gcs plugin<\/strong>, amely lehet\u0151v\u00e9 teszi a Google-bucketek (objektumt\u00e1rol\u00e1s) haszn\u00e1lat\u00e1t Helm-diagramok t\u00e1rol\u00e1s\u00e1ra.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/30888c4f9b5dba14b87ba1e29e0ebed7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCsak n\u00e9gy parancsra van sz\u00fcks\u00e9g az ind\u00edt\u00e1s\u00e1hoz:<\/p>\n<ol>\n<li>a plug-in telep\u00edt\u00e9se;<\/li>\n<li>kezdem\u00e9nyez\u00e9se;<\/li>\n<li>megadni a gcp-n tal\u00e1lhat\u00f3 bucket el\u00e9r\u00e9si \u00fatj\u00e1t;<\/li>\n<li>a diagramok publik\u00e1l\u00e1sa a szok\u00e1sos m\u00f3don.<\/li>\n<\/ol>\n<p>\nA sz\u00e9ps\u00e9ge az, hogy a gcp nat\u00edv m\u00f3dj\u00e1t fogja haszn\u00e1lni az azonos\u00edt\u00e1shoz. Haszn\u00e1lhat szolg\u00e1ltat\u00f3i fi\u00f3kot, fejleszt\u0151i fi\u00f3kot \u2014 b\u00e1rmi megteszi. Nagyon k\u00e9nyelmes \u00e9s nem ker\u00fcl semmibe a fenntart\u00e1s. Ha \u00d6n, mint \u00e9n, az opsless filoz\u00f3fi\u00e1t hirdeti, akkor ez rendk\u00edv\u00fcl k\u00e9nyelmes lesz, k\u00fcl\u00f6n\u00f6sen a kis csapatok sz\u00e1m\u00e1ra.<\/p>\n<h2>Alternat\u00edv\u00e1k<\/h2>\n<p>\nA Helm nem az egyetlen megold\u00e1s a szolg\u00e1ltat\u00e1sok kezel\u00e9s\u00e9re. Sok k\u00e9rd\u00e9s mer\u00fclt fel vele kapcsolatban, lehet, hogy ez\u00e9rt jelent meg olyan gyorsan a harmadik verzi\u00f3. Term\u00e9szetesen vannak alternat\u00edv\u00e1k.<\/p>\n<p>Ezek lehetnek olyan speci\u00e1lis megold\u00e1sok, mint p\u00e9ld\u00e1ul a Ksonnet vagy a Metaparticle. Haszn\u00e1lhatja a klasszikus infrastrukt\u00fara-kezel\u0151 eszk\u00f6zeit (Ansible, Terraform, Chef stb.) ugyanazokhoz a c\u00e9lokhoz, amelyeket eml\u00edtettem.<\/p>\n<p>V\u00e9g\u00fcl itt egy megold\u00e1s <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/operator-framework\">Operator Framework<\/a><\/noindex>, amelynek n\u00e9pszer\u0171s\u00e9ge folyamatosan n\u00f6vekszik.<\/p>\n<blockquote><p>Az Operator Framework a Helm legfontosabb alternat\u00edv\u00e1ja, amelyre \u00e9rdemes figyelni.<\/p><\/blockquote>\n<p>\nEz nat\u00edvabb a CNCF \u00e9s a Kubernetes sz\u00e1m\u00e1ra, <strong>de a bel\u00e9p\u00e9si k\u00fcsz\u00f6b sokkal magasabb<\/strong>, t\u00f6bbet kell programozni \u00e9s kevesebbet kell le\u00edrni a manifestumokat.<\/p>\n<p>Sz\u00e1mos k\u00fcl\u00f6nb\u00f6z\u0151 kieg\u00e9sz\u00edt\u0151 \u00e9rhet\u0151 el, mint p\u00e9ld\u00e1ul a Draft, Scaffold. Ezek nagyon megk\u00f6nny\u00edtik az \u00e9letet, p\u00e9ld\u00e1ul a fejleszt\u0151knek egyszer\u0171s\u00edtik a Helm k\u00fcld\u0151 \u00e9s \u00fczembe helyez\u00e9si ciklus\u00e1t a tesztk\u00f6rnyezet telep\u00edt\u00e9s\u00e9hez. \u00c9n kiterjeszt\u0151 lehet\u0151s\u00e9geknek nevezn\u00e9m \u0151ket.<\/p>\n<p>Itt van egy szeml\u00e9ltet\u0151 grafikon arr\u00f3l, hogy hol tal\u00e1lhat\u00f3ak azok a dolgok.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm biztons\u00e1ga\" src=\"\/wp-content\/uploads\/2019\/08\/81a8236c975d5e1649acaaa7989c27ba.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAz x-tengely a kez\u00e9ben l\u00e9v\u0151 szem\u00e9lyes ellen\u0151rz\u00e9s szintje, az y-tengely pedig a Kubernetes nat\u00edv szintje. A Helm 2 valahol a k\u00f6z\u00e9pen helyezkedik el. A 3. verzi\u00f3ban nem hatalmas a k\u00fcl\u00f6nbs\u00e9g, de mind az ellen\u0151rz\u00e9s, mind a nat\u00edv szint javult. A Ksonnet szint\u0171 megold\u00e1sok m\u00e9g a Helm 2-t is alulm\u00falj\u00e1k. De \u00e9rdemes megn\u00e9zni \u0151ket, hogy tudjuk, mi m\u00e1s l\u00e9tezik e vil\u00e1gban. Term\u00e9szetesen a konfigur\u00e1ci\u00f3s menedzser az \u00d6n ellen\u0151rz\u00e9se alatt marad, de teljesen nem nat\u00edv a Kubernetes sz\u00e1m\u00e1ra.<\/p>\n<p>Az Operator Framework teljesen nat\u00edv Kubernetes sz\u00e1m\u00e1ra k\u00e9sz\u00fclt, lehet\u0151v\u00e9 t\u00e9ve, hogy sokkal eleg\u00e1nsabban \u00e9s gondosabban kezelj\u00fck (de ne feledkezz\u00fcnk meg a bel\u00e9p\u00e9si szintr\u0151l). Ink\u00e1bb speci\u00e1lis alkalmaz\u00e1sokra \u00e9s menedzsmentj\u00fck l\u00e9trehoz\u00e1s\u00e1ra alkalmas, mintsem egy t\u00f6meges megold\u00e1s \u00f3ri\u00e1si mennyis\u00e9g\u0171 alkalmaz\u00e1s Helm \u00e1ltali csomagol\u00e1s\u00e1ra.<\/p>\n<p>A kiterjeszt\u0151k csak kiss\u00e9 jav\u00edtj\u00e1k az ellen\u0151rz\u00e9st, kieg\u00e9sz\u00edtik a munkafolyamatokat, vagy ler\u00f6vid\u00edtik a CI\/CD cs\u00f6veket.<\/p>\n<h2>A Helm j\u00f6v\u0151je<\/h2>\n<p>\nA j\u00f3 h\u00edr az, hogy meg\u00e9rkezett a Helm 3. M\u00e1r el\u00e9rhet\u0151 a Helm 3.0.0-alpha.2 alfa verzi\u00f3ja, meg lehet pr\u00f3b\u00e1lni. El\u00e9g stabil, de a funkcionalit\u00e1sa m\u00e9g korl\u00e1tozott.<\/p>\n<p>Mi\u00e9rt van sz\u00fcks\u00e9g a Helm 3-ra? Mindenekel\u0151tt ez egy t\u00f6rt\u00e9net a <strong>Tiller elt\u0171n\u00e9s\u00e9r\u0151l<\/strong>, mint komponens. Ez, ahogy m\u00e1r \u00e9rted, hatalmas el\u0151rel\u00e9p\u00e9s, mert a biztons\u00e1gi architekt\u00fara szempontj\u00e1b\u00f3l minden egyszer\u0171s\u00f6dik.<\/p>\n<p>Amikor a Helm 2-t kifejlesztett\u00e9k, ez a Kubernetes 1.8 idej\u00e9ben, vagy m\u00e9g kor\u00e1bban t\u00f6rt\u00e9nt, sok koncepci\u00f3 \u00e9retlen volt. P\u00e9ld\u00e1ul a CRD koncepci\u00f3j\u00e1t most akt\u00edvan bevezetj\u00fck, \u00e9s a Helm <strong>a CRD-t fogja haszn\u00e1lni<\/strong>, hogy t\u00e1rolja a strukt\u00far\u00e1kat. Lehet\u0151v\u00e9 v\u00e1lik csak a kliens haszn\u00e1lata, \u00e9s nem sz\u00fcks\u00e9ges a szerveroldali r\u00e9sz. Ennek megfelel\u0151en a Kubernetes nat\u00edv parancsait haszn\u00e1lhatjuk a strukt\u00far\u00e1kkal \u00e9s er\u0151forr\u00e1sokkal val\u00f3 munk\u00e1hoz. Ez hatalmas el\u0151rel\u00e9p\u00e9s.<\/p>\n<p>Meg\u00e9rkezik <strong>a nat\u00edv OCI t\u00e1rol\u00f3k t\u00e1mogat\u00e1sa<\/strong> (Open Container Initiative). Ez egy hatalmas kezdem\u00e9nyez\u00e9s, \u00e9s a Helm sz\u00e1m\u00e1ra els\u0151sorban az, hogy a saj\u00e1t chartjait elhelyezze. Olyan messzire jutottunk, hogy p\u00e9ld\u00e1ul a Docker Hub sok OCI szabv\u00e1nyt t\u00e1mogat. Nem j\u00f3solok m\u00e9rf\u00f6ldk\u00f6veket, de lehet, hogy a klasszikus Docker-t\u00e1rol\u00f3k szolg\u00e1ltat\u00f3i lehet\u0151s\u00e9get fognak adni a saj\u00e1t Helm chartok t\u00e1rol\u00e1s\u00e1ra.<\/p>\n<p>Sz\u00e1momra ellentmond\u00e1sos t\u00f6rt\u00e9net \u2013 ez <strong>a Lua t\u00e1mogat\u00e1s<\/strong>, mint templating engine a szkriptek \u00edr\u00e1s\u00e1hoz. Nem vagyok nagy rajong\u00f3ja a Lu\u00e1nak, de ez teljesen opcion\u00e1lis lehet\u0151s\u00e9g lesz. H\u00e1romszor ellen\u0151riztem \u2013 a Lua haszn\u00e1lata nem k\u00f6telez\u0151. Ez\u00e9rt aki szeretn\u00e9, haszn\u00e1lhatja a Lu\u00e1t, aki pedig a Go-t szereti \u2013 csatlakozzon a mi hatalmas t\u00e1borunkhoz, \u00e9s haszn\u00e1lja a go-tmpl-et ehhez.<\/p>\n<p>V\u00e9gre meg\u00e9rkezik az, amire nekem m\u00e1r nagyon sz\u00fcks\u00e9gem volt \u2013 a <strong>s\u00e9ma megjelen\u00e9se \u00e9s az adat t\u00edpusa valid\u00e1l\u00e1sa<\/strong>. T\u00f6bb\u00e9 nem lesz probl\u00e9ma az int vagy string t\u00edpussal, nem sz\u00fcks\u00e9ges a null\u00e1t dupla id\u00e9z\u0151jelekbe tenni. Meg\u00e9rkezik egy JSON schema, amely lehet\u0151v\u00e9 teszi, hogy ezt egy\u00e9rtelm\u0171en le\u00edrjuk az \u00e9rt\u00e9kek sz\u00e1m\u00e1ra.<\/p>\n<p>Nagyon \u00e1tdolgozz\u00e1k <strong>az esem\u00e9nyek vez\u00e9relt modellj\u00e9t<\/strong>. M\u00e1r konceptu\u00e1lisan le van \u00edrva. N\u00e9zze meg a Helm 3 sz\u00e1lat, \u00e9s l\u00e1thatja, mennyi esem\u00e9ny \u00e9s hook lett hozz\u00e1adva, ami jelent\u0151sen leegyszer\u0171s\u00edti, ugyanakkor nagyobb kontrollt ad a telep\u00edt\u00e9si folyamatok felett \u00e9s azok reakci\u00f3i felett.<\/p>\n<p>A Helm 3 egyszer\u0171bb, biztons\u00e1gosabb \u00e9s izgalmasabb lesz, nem az\u00e9rt, mert nem szeretj\u00fck a Helm 2-t, hanem mert a Kubernetes egyre fejlettebb\u00e9 v\u00e1lik. Ennek megfelel\u0151en a Helm kihaszn\u00e1lhatja a Kubernetes fejleszt\u00e9seit, \u00e9s nagyszer\u0171 menedzsereket k\u00e9sz\u00edthet a Kuberneteshez.<\/p>\n<blockquote><p>M\u00e9g egy j\u00f3 h\u00edr, hogy a <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\">DevOpsConf<\/a><\/noindex> Alekszandr Haj\u00f3rov fog besz\u00e9lni arr\u00f3l, <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\/abstracts\/5564\">lehetnek-e biztons\u00e1gosak a kont\u00e9nerek?<\/a><\/noindex> Eml\u00e9keztetj\u00fck, hogy a fejleszt\u00e9si, tesztel\u00e9si \u00e9s \u00fczemeltet\u00e9si folyamatok integr\u00e1ci\u00f3j\u00e1r\u00f3l sz\u00f3l\u00f3 konferencia Moszkv\u00e1ban <strong>szeptember 30-\u00e1n \u00e9s okt\u00f3ber 1-j\u00e9n<\/strong>. Augusztus 20-\u00e1ig m\u00e9g lehet <noindex><a rel=\"nofollow\" href=\"https:\/\/conf.ontico.ru\/lectures\/propose\/?conference=dc2019-moscow\">beny\u00fajtani egy el\u0151ad\u00e1st<\/a><\/noindex> \u00e9s mes\u00e9lni a saj\u00e1t tapasztalatair\u00f3l <noindex><a rel=\"nofollow\" href=\"https:\/\/devopsconf.io\/moscow\/2019\/articles\/917\">az egyik sok k\u00f6z\u00fcl<\/a><\/noindex> a DevOps megk\u00f6zel\u00edt\u00e9s feladatainak.<\/p>\n<p>A konferencia m\u00e9rf\u00f6ldk\u00f6veivel \u00e9s h\u00edreivel k\u00f6vetheti a <noindex><a rel=\"nofollow\" href=\"http:\/\/eepurl.com\/bN_0E1\">h\u00edrlev\u00e9lben<\/a><\/noindex> \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/DevOpsConfChannel\">telegram-csatorn\u00e1n<\/a><\/noindex>.<\/p><\/blockquote>\n<p>Forr\u00e1s: <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.3 - 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\/hu\/blog\/administrirovanie\/bezopasnost-helm\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\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\/hu\/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\udd47Helm biztons\u00e1g | ProHoster","description":"A Kubernetes legn\u00e9pszer\u0171bb csomagkezel\u0151j\u00e9r\u0151l sz\u00f3l\u00f3 besz\u00e1mol\u00f3 l\u00e9nyeg\u00e9t emoji-k seg\u00edts\u00e9g\u00e9vel is lehetne \u00e1br\u00e1zolni: a doboz a Helm (ez a legjobban illik az utols\u00f3 Emoji kiad\u00e1shoz);.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/bezopasnost-helm","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/36918","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=36918"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/36918\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/27661"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=36918"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=36918"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=36918"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}