{"id":70954,"date":"2020-02-23T00:58:17","date_gmt":"2020-02-22T21:58:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ustrojstvo-helm-i-ego-podvodnye-kamni"},"modified":"2020-03-03T16:14:40","modified_gmt":"2020-03-03T13:14:40","slug":"ustrojstvo-helm-i-ego-podvodnye-kamni","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/ustrojstvo-helm-i-ego-podvodnye-kamni","title":{"rendered":"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/b825bfb312b883f5f9c1535036f0c6e8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.artstation.com\/artwork\/YaabJq\">Typhon teherhordoz\u00f3 koncepci\u00f3, Anton Swanepoel<\/a><\/noindex><\/p>\n<p>Az \u00e9n nevem Dmitrij Sugrobov, a \u201eLeroy Merlin\u201d fejleszt\u0151je vagyok. A cikkemben arr\u00f3l fogok besz\u00e9lni, mi\u00e9rt van sz\u00fcks\u00e9g Helmre, hogyan egyszer\u0171s\u00edti a Kubernetes-szel val\u00f3 munk\u00e1t, mi v\u00e1ltozott a harmadik verzi\u00f3ban, \u00e9s hogyan friss\u00edthetj\u00fck az alkalmaz\u00e1sokat a termel\u00e9sben le\u00e1ll\u00e1s n\u00e9lk\u00fcl.<\/p>\n<p>Ez egy \u00f6sszefoglal\u00f3 a konferenci\u00e1n elhangzott besz\u00e9d alapj\u00e1n <noindex><a rel=\"nofollow\" href=\"https:\/\/corp.mail.ru\/ru\/press\/events\/at-kubernetes-conference\/\">@Kubernetes Konferencia<\/a><\/noindex> szerz\u0151je <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\">Mail.ru Cloud Solutions<\/a><\/noindex> \u2014 ha nem szeretn\u00e9 olvasni, n\u00e9zze meg a vide\u00f3t.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\n<center><div class=\"youtube-placeholder\" data-id=\"w1PhTe9gnOI\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/w1PhTe9gnOI\/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><\/p>\n<h2>Mi\u00e9rt haszn\u00e1ljuk a Kubernetest a termel\u00e9sben<\/h2>\n<p>\nA \u201eLeroy Merlin\u201d a DIY kiskereskedelem vezet\u0151je Oroszorsz\u00e1gban \u00e9s Eur\u00f3p\u00e1ban. C\u00e9g\u00fcnkn\u00e9l t\u00f6bb mint 100 fejleszt\u0151 dolgozik, 33 000 bels\u0151 munkat\u00e1rsunk van, \u00e9s rengeteg ember l\u00e1togatja a hipermarketeinket \u00e9s a weboldalunkat. Annak \u00e9rdek\u00e9ben, hogy mindenki boldog legyen, \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy a szektorban standard megk\u00f6zel\u00edt\u00e9seket k\u00f6vet\u00fcnk. \u00daj alkalmaz\u00e1sokat fejleszt\u00fcnk mikroszolg\u00e1ltat\u00e1s-architekt\u00far\u00e1val; a k\u00f6rnyezetek elszigetel\u00e9s\u00e9re \u00e9s a helyes kisz\u00e1ll\u00edt\u00e1sra kont\u00e9nereket haszn\u00e1lunk; az orkhesztr\u00e1ci\u00f3hoz pedig a Kubernetest alkalmazzuk. Az orkhesztr\u00e1torok haszn\u00e1lat\u00e1nak \u00e1ra gyorsan cs\u00f6kken: a piacon n\u0151 a technol\u00f3gia ismeret\u00e9vel rendelkez\u0151 m\u00e9rn\u00f6k\u00f6k sz\u00e1ma, \u00e9s megjelennek a szolg\u00e1ltat\u00f3k, akik Kubernetes-t k\u00edn\u00e1lnak szolg\u00e1ltat\u00e1sk\u00e9nt.<\/p>\n<p>Mindent, amit a Kubernetes csin\u00e1l, term\u00e9szetesen el lehet v\u00e9gezni m\u00e1s m\u00f3dokon is, p\u00e9ld\u00e1ul ha az eg\u00e9sz folyamatot valamilyen Jenkins \u00e9s docker-compose seg\u00edts\u00e9g\u00e9vel scripteln\u00e9k, de mi\u00e9rt bonyol\u00edtsuk az \u00e9let\u00fcnket, ha van egy k\u00e9sz \u00e9s megb\u00edzhat\u00f3 megold\u00e1s? Ez\u00e9rt v\u00e1lasztottuk a Kubernetest, \u00e9s m\u00e1r egy \u00e9ve haszn\u00e1ljuk a termel\u00e9sben. Jelenleg huszonn\u00e9gy Kubernetes klaszter\u00fcnk van, a leg\u00f6regebb k\u00f6z\u00fcl\u00fck t\u00f6bb mint egy \u00e9ves, \u00e9s k\u00f6r\u00fclbel\u00fcl k\u00e9tsz\u00e1z pod tal\u00e1lhat\u00f3 benne.<\/p>\n<h2>A sok YAML-f\u00e1jl \u00e1tka a Kubernestes<\/h2>\n<p>\nEgy mikroszolg\u00e1ltat\u00e1s elind\u00edt\u00e1s\u00e1hoz a Kubernetesen legal\u00e1bb \u00f6t YAML-f\u00e1jlt kell l\u00e9trehoznunk: a Deploymenthoz, Szolg\u00e1ltat\u00e1shoz, Ingresshez, ConfigMaphez, Secretshez \u2014 \u00e9s el kell k\u00fclden\u00fcnk a klaszterbe. A k\u00f6vetkez\u0151 alkalmaz\u00e1s sz\u00e1m\u00e1ra meg\u00edrjuk ugyanazt a csomagot a YAML-f\u00e1jlokb\u00f3l, a harmadikhoz pedig megint egy m\u00e1sikat, \u00e9s \u00edgy tov\u00e1bb. A dokumentumok sz\u00e1m\u00e1t megszorozva a k\u00f6rnyezetek sz\u00e1m\u00e1val, m\u00e1r t\u00f6bb sz\u00e1z f\u00e1jlt kapunk, \u00e9s ez m\u00e9g a dinamikus k\u00f6rnyezeteket nem is sz\u00e1molja.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/c46c3f5ae49cbefa4851cbb388bfd051.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAdam Reese, a Helm f\u0151 karbantart\u00f3ja bevezette a \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/cZ1S2Gp47ng?t=323\">Fejleszt\u00e9si ciklus a Kubernetesen<\/a><\/noindex>\u201d, amely \u00edgy n\u00e9z ki:<\/p>\n<ol>\n<li>M\u00e1solj YAML \u2014 m\u00e1sold a YAML-f\u00e1jlt.<\/li>\n<li>Illeszd be YAML \u2014 illeszd be.<\/li>\n<li>Jav\u00edtsd az Indent\u00e1ci\u00f3t \u2014 jav\u00edtsd az eltol\u00e1sokat.<\/li>\n<li>Ism\u00e9teld \u2014 ism\u00e9teld meg.<\/li>\n<\/ol>\n<p>\nEz egy m\u0171k\u00f6d\u0151 v\u00e1ltozat, de sokszor kell m\u00e1solni a YAML-f\u00e1jlokat. E ciklus megv\u00e1ltoztat\u00e1s\u00e1ra tal\u00e1lt\u00e1k ki Helm-t.<\/p>\n<h3>Mi az a Helm<\/h3>\n<p>\nEls\u0151sorban, a Helm \u2014<strong> csomagkezel\u0151<\/strong>, amely seg\u00edt megtal\u00e1lni \u00e9s telep\u00edteni a sz\u00fcks\u00e9ges programokat. A MongoDB telep\u00edt\u00e9s\u00e9hez p\u00e9ld\u00e1ul nem kell ell\u00e1togatni a hivatalos weboldalra \u00e9s let\u00f6lteni a bin\u00e1ris f\u00e1jlokat, elegend\u0151 v\u00e9grehajtani a parancsot <code>helm install stable\/mongodb<\/code>.<\/p>\n<p>M\u00e1sodszor, a Helm \u2014 <strong>sablonkezel\u0151<\/strong>, amely seg\u00edt param\u00e9terezni a f\u00e1jlokat. T\u00e9rj\u00fcnk vissza a Kubernetes YAML-f\u00e1jlok helyzet\u00e9hez. K\u00f6nnyebb meg\u00edrni ugyanazt a YAML-f\u00e1jlt, \u00e9s hozz\u00e1adni n\u00e9h\u00e1ny helyettes\u00edt\u0151t, amelyet a Helm helyettes\u00edt \u00e9rt\u00e9kekkel. Teh\u00e1t a sok YAML-f\u00e1jl helyett sablonok (template) halmaz\u00e1t kapjuk, amelyekbe a megfelel\u0151 pillanatban a sz\u00fcks\u00e9ges \u00e9rt\u00e9kek ker\u00fclnek.<\/p>\n<p>Harmadszor, a Helm \u2014 <strong>telep\u00edt\u00e9si mester<\/strong>. Ezzel install\u00e1lhatunk, vissza\u00e1ll\u00edthatunk \u00e9s friss\u00edthet\u00fcnk alkalmaz\u00e1sokat. N\u00e9zz\u00fck meg, hogyan lehet ezt megtenni.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/8b517dbcf503ced229569fe3726418c8.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Hogyan haszn\u00e1ljuk a Helmet saj\u00e1t alkalmaz\u00e1saink telep\u00edt\u00e9s\u00e9re<\/h3>\n<p>\nTelep\u00edtj\u00fck a Helm klienst a sz\u00e1m\u00edt\u00f3g\u00e9pre, k\u00f6vetve a hivatalos <noindex><a rel=\"nofollow\" href=\"https:\/\/helm.sh\/docs\/intro\/install\/\">utas\u00edt\u00e1st<\/a><\/noindex>. Ezut\u00e1n l\u00e9trehozunk egy halom YAML-f\u00e1jlt. Ahelyett, hogy konkr\u00e9t \u00e9rt\u00e9keket adn\u00e1nk meg, helyettes\u00edt\u0151ket hagyunk, amelyeket a Helm a j\u00f6v\u0151ben felismer. Az ilyen f\u00e1jlok halmaz\u00e1t Helm chartnak nevezz\u00fck. A Helm konzol kliensnek h\u00e1rom m\u00f3don k\u00fcldhetj\u00fck el:<\/p>\n<ul>\n<li>megadni a sablonok mapp\u00e1j\u00e1t;<\/li>\n<li>becsomagolni .tar arch\u00edvumba \u00e9s hivatkozni r\u00e1;<\/li>\n<li>a sablont elhelyezni egy t\u00e1voli t\u00e1rol\u00f3ban, \u00e9s hivatkoz\u00e1st adni a t\u00e1rol\u00f3ra a Helm kliensben.<\/li>\n<\/ul>\n<p>\nSz\u00fcks\u00e9g van egy \u00e9rt\u00e9keket tartalmaz\u00f3 f\u00e1jlra is \u2014 values.yaml. Az onnan sz\u00e1rmaz\u00f3 adatok a sablonba ker\u00fclnek. Ezt is l\u00e9trehozzuk.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/c0fe24cc8186640147f95ce201794d96.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA Helm m\u00e1sodik verzi\u00f3j\u00e1ban egy tov\u00e1bbi szerveralkalmaz\u00e1s l\u00e9tezik \u2014 Tiller. Ez k\u00edv\u00fcl helyezkedik el a Kubernetesben, \u00e9s v\u00e1rja a Helm kliens k\u00e9r\u00e9s\u00e9t, a h\u00edv\u00e1skor pedig a sz\u00fcks\u00e9ges \u00e9rt\u00e9keket helyettes\u00edti a sablonban \u00e9s elk\u00fcldi a Kubernetesnek.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/6b821a0bb4680829d5ce9982d2bb4c55.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA Helm 3 egyszer\u0171bb: a sablonok feldolgoz\u00e1sa szerveroldalon helyett, az inform\u00e1ci\u00f3t most teljes eg\u00e9sz\u00e9ben a Helm-kliens oldal\u00e1n dolgozz\u00e1k fel \u00e9s k\u00f6zvetlen\u00fcl a Kubernetes API-ba k\u00fcldik. Ez az egyszer\u0171s\u00edt\u00e9s n\u00f6veli a klaszter biztons\u00e1g\u00e1t \u00e9s megk\u00f6nny\u00edti a kiegyens\u00falyoz\u00e1si s\u00e9m\u00e1t.<\/p>\n<p><strong>Hogyan m\u0171k\u00f6dik mindez<\/strong><\/p>\n<p>Futtatjuk a parancsot <code>helm install<\/code>. Megadjuk az alkalmaz\u00e1s kiad\u00e1s\u00e1nak nev\u00e9t, megadjuk az el\u00e9r\u00e9si utat a values.yaml-hoz. A v\u00e9g\u00e9n megnevezz\u00fck a t\u00e1rol\u00f3t, ahol a chart tal\u00e1lhat\u00f3 \u00e9s a chart nev\u00e9t. P\u00e9ld\u00e1ul ez 'lmru' \u00e9s 'bestchart'.<\/p>\n<pre><code class=\"plaintext\">helm install --name bestapp --values values.yaml lmru\/bestchart\n<\/code><\/pre>\n<p>\nA parancs v\u00e9grehajt\u00e1sa csak egyszer lehets\u00e9ges, a parancs ism\u00e9telt v\u00e9grehajt\u00e1sakor a <code>install<\/code> helyett <code>upgrade<\/code>. Az egyszer\u0171s\u00e9g kedv\u00e9\u00e9rt a k\u00e9t parancs helyett futtathatjuk a parancsot <code>upgrade<\/code> kieg\u00e9sz\u00edt\u0151 kulccsal <code>--install<\/code>El\u0151sz\u00f6r a Helm parancsot k\u00fcld az \u00faj verzi\u00f3 telep\u00edt\u00e9s\u00e9re, a tov\u00e1bbiakban pedig friss\u00edti azt.<\/p>\n<pre><code class=\"plaintext\">helm upgrade --install bestapp --values values.yaml lmru\/bestchart\n<\/code><\/pre>\n<p><\/p>\n<h2>\u00daj verzi\u00f3k telep\u00edt\u00e9si buktat\u00f3i a Helm haszn\u00e1lat\u00e1val<\/h2>\n<p>\n<i>E t\u00f6rt\u00e9net sor\u00e1n a 'Ki akar milliomos lenni?' j\u00e1t\u00e9kban j\u00e1tszom a k\u00f6z\u00f6ns\u00e9ggel, \u00e9s kider\u00edtj\u00fck, hogyan lehet friss\u00edteni a Helm seg\u00edts\u00e9g\u00e9vel az alkalmaz\u00e1s verzi\u00f3j\u00e1t. <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/w1PhTe9gnOI?list=PLQzTaxmOHjnv0tP_HDxsIvcuac2kkIJTQ&amp;t=778\"><i>Vide\u00f3 megtekint\u00e9se<\/i><\/a><\/noindex>.<\/p>\n<p>Amikor a Helm m\u0171k\u00f6d\u00e9s\u00e9t tanulm\u00e1nyoztam, meglepett az a furcsa viselked\u00e9s, amikor megpr\u00f3b\u00e1ltam friss\u00edteni a fut\u00f3 alkalmaz\u00e1sok verzi\u00f3it. Az alkalmaz\u00e1s k\u00f3dot friss\u00edtettem, a docker registry-be \u00faj k\u00e9pet t\u00f6lt\u00f6ttem fel, kiadtam a telep\u00edt\u00e9si parancsot \u2013 \u00e9s semmi nem t\u00f6rt\u00e9nt. Al\u00e1bb n\u00e9h\u00e1ny nem t\u00fal sikeres m\u00f3dszert ismertetek az alkalmaz\u00e1sok friss\u00edt\u00e9s\u00e9re. Mindegyiket alaposabban tanulm\u00e1nyozva kezdesz meg\u00e9rteni az eszk\u00f6z bels\u0151 m\u0171k\u00f6d\u00e9s\u00e9t \u00e9s az ilyen nem nyilv\u00e1nval\u00f3 viselked\u00e9s okait.<\/p>\n<p><strong>M\u00f3dszer 1. Ne m\u00f3dos\u00edtsd az inform\u00e1ci\u00f3t az utols\u00f3 ind\u00edt\u00e1s \u00f3ta<\/strong><\/p>\n<p>Ahogyan mondja <noindex><a rel=\"nofollow\" href=\"https:\/\/helm.sh\/docs\/intro\/using_helm\/#helm-upgrade-and-helm-rollback-upgrading-a-release-and-recovering-on-failure\">hivatalos weboldal<\/a><\/noindex> A Helm, 'A Kubernetes chartok nagyok \u00e9s bonyolultak, ez\u00e9rt a Helm t\u00f6rekszik arra, hogy ne m\u00f3dos\u00edtson feleslegesen semmit'. Ez\u00e9rt, ha friss\u00edted az alkalmaz\u00e1s legfrissebb k\u00e9pet a docker registry-ben \u00e9s v\u00e9grehajtod a parancsot <code>helm upgrade<\/code>, akkor semmi nem fog t\u00f6rt\u00e9nni. A Helm \u00fagy fogja gondolni, hogy semmi sem v\u00e1ltozott, \u00edgy nem sz\u00fcks\u00e9ges a Kubernetes sz\u00e1m\u00e1ra friss\u00edt\u00e9si parancsot k\u00fcldeni az alkalmaz\u00e1sra.<\/p>\n<blockquote><p>Itt \u00e9s a tov\u00e1bbiakban a latest c\u00edmke kiz\u00e1r\u00f3lag p\u00e9ldak\u00e9nt szerepel. A latest c\u00edmke megad\u00e1sa eset\u00e9n a Kubernetes minden alkalommal let\u00f6lti a k\u00e9pet a docker registry-b\u0151l, f\u00fcggetlen\u00fcl az imagePullPolicy param\u00e9tert\u0151l. A latest haszn\u00e1lata a gy\u00e1rt\u00e1sban nem aj\u00e1nlott \u00e9s mell\u00e9khat\u00e1sokat okozhat.<\/p><\/blockquote>\n<p>\n<strong>M\u00f3dszer 2. Friss\u00edtsd a LABEL-t a k\u00e9pen<\/strong><\/p>\n<p>Ahogy a k\u00f6vetkez\u0151ben is olvashat\u00f3 <noindex><a rel=\"nofollow\" href=\"https:\/\/helm.sh\/docs\/intro\/using_helm\/#helm-upgrade-and-helm-rollback-upgrading-a-release-and-recovering-on-failure\">dokument\u00e1ci\u00f3<\/a><\/noindex>, 'A Helm csak akkor friss\u00edti az alkalmaz\u00e1st, ha az az utols\u00f3 kiad\u00e1s \u00f3ta megv\u00e1ltozott.' Logikus l\u00e9p\u00e9snek t\u0171nik a LABEL friss\u00edt\u00e9se mag\u00e1ban a docker k\u00e9pen. Azonban a Helm nem n\u00e9z bele az alkalmaz\u00e1sokba, \u00e9s nincs tudom\u00e1sa a benn\u00fck bek\u00f6vetkezett v\u00e1ltoz\u00e1sokr\u00f3l. Ez\u00e9rt a c\u00edmk\u00e9k friss\u00edt\u00e9sekor a Helm nem \u00e9rtes\u00fcl r\u00f3luk, \u00e9s a friss\u00edt\u00e9si parancs nem fog eljutni a Kubernetes-hez.<\/p>\n<p><strong>M\u00f3dszer 3. Haszn\u00e1lj kulcsot <code>--force<\/code><\/strong><\/p>\n<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/4888cddfb7698b7044ab31b6f6070063.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nN\u00e9zz\u00fck meg a k\u00e9zik\u00f6nyveket, \u00e9s keress\u00fck meg a sz\u00fcks\u00e9ges kulcsot. A legjobban a k\u00f6vetkez\u0151 kulcs illik a helyzethez <code>--force<\/code>. A nev\u00e9b\u0151l ad\u00f3d\u00f3an a viselked\u00e9s elt\u00e9r az elv\u00e1rtt\u00f3l. A val\u00f3di c\u00e9lja a FAILED st\u00e1tusz\u00fa kiad\u00e1s helyre\u00e1ll\u00edt\u00e1sa, nem pedig az alkalmaz\u00e1s k\u00e9nyszer\u00edtett friss\u00edt\u00e9se. Ha ezt a kulcsot nem haszn\u00e1lj\u00e1k, a parancsok v\u00e9grehajt\u00e1s\u00e1t sorrendben kell elv\u00e9gezni. <code>helm delete &amp;&amp; helm install --replace<\/code>. Ehelyett javasolt a kulcsot haszn\u00e1lni, <code>--force<\/code>, amely automatiz\u00e1lja ezeknek a parancsoknak a sorrendbeli v\u00e9grehajt\u00e1s\u00e1t. Tov\u00e1bbi inform\u00e1ci\u00f3k tal\u00e1lhat\u00f3k ezen a <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\/pull\/3597\">pull request-en.<\/a><\/noindex>. Ahhoz, hogy a Helm v\u00e9g\u00fcl friss\u00edtse az alkalmaz\u00e1s verzi\u00f3j\u00e1t, sajnos ez a kulcs nem megfelel\u0151.<\/p>\n<p><strong>4. m\u00f3dszer. K\u00f6zvetlen\u00fcl a Kubernetes c\u00edmk\u00e9it m\u00f3dos\u00edtani.<\/strong><\/p>\n<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/0a35e7aaa7479685f07dd5b935c95eb1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA c\u00edmke k\u00f6zvetlen friss\u00edt\u00e9se a klaszterben a k\u00f6vetkez\u0151 paranccsal: <code>kubectl edit<\/code> \u2014 rossz \u00f6tlet. Ez az int\u00e9zked\u00e9s inkonzisztenci\u00e1hoz vezet a m\u0171k\u00f6d\u0151 alkalmaz\u00e1s \u00e9s a kezdetben telep\u00edtett inform\u00e1ci\u00f3 k\u00f6z\u00f6tt. A Helm viselked\u00e9se telep\u00edt\u00e9skor ebben az esetben elt\u00e9r a verzi\u00f3j\u00e1t\u00f3l: a Helm 2 nem csin\u00e1l semmit, m\u00edg a Helm 3 \u00faj verzi\u00f3t telep\u00edt az alkalmaz\u00e1sb\u00f3l. A probl\u00e9ma meg\u00e9rt\u00e9s\u00e9hez meg kell \u00e9rteni, hogyan m\u0171k\u00f6dik a Helm.<\/p>\n<h3>Hogyan m\u0171k\u00f6dik a Helm<\/h3>\n<p>\nA Helm meg\u00e1llap\u00edthatja, hogy v\u00e1ltozott-e az alkalmaz\u00e1s a legutols\u00f3 kiad\u00e1s \u00f3ta:<\/p>\n<ul>\n<li>futtatott alkalmaz\u00e1s a Kubernetesben;<\/li>\n<li>\u00faj values.yaml \u00e9s aktu\u00e1lis chart;<\/li>\n<li>a Helm bels\u0151 inform\u00e1ci\u00f3i a kiad\u00e1sokr\u00f3l.<\/li>\n<\/ul>\n<p><b class=\"spoiler_title\">A legk\u00edv\u00e1ncsibbaknak: hol t\u00e1rolja a Helm a kiad\u00e1sok bels\u0151 inform\u00e1ci\u00f3it?<\/b>A parancs v\u00e9grehajt\u00e1s\u00e1val, <code>helm history<\/code>, inform\u00e1ci\u00f3t kapunk a Helm \u00e1ltal telep\u00edtett verzi\u00f3kr\u00f3l.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/0bf3afeb9c4947220474af648a1fa1ad.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nTov\u00e1bbi r\u00e9szletes inform\u00e1ci\u00f3k \u00e1llnak rendelkez\u00e9sre a k\u00fcld\u00f6tt sablonokr\u00f3l \u00e9s \u00e9rt\u00e9kekr\u0151l. Ezt k\u00e9rhetj\u00fck:<\/p>\n<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/858560c0f4adf7375060cec339df7574.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA Helm m\u00e1sodik verzi\u00f3j\u00e1ban ezek az inform\u00e1ci\u00f3k ugyanazon a n\u00e9vt\u00e9rben tal\u00e1lhat\u00f3k, ahol a Tiller fut (alap\u00e9rtelmez\u00e9s szerint kube-system), a \"OWNER=TILLER\" c\u00edmk\u00e9vel ell\u00e1tott ConfigMap-ban:<\/p>\n<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/ba665a079ccddeb4ca7049822c42a498.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA Helm harmadik verzi\u00f3j\u00e1ban az inform\u00e1ci\u00f3 titkos\u00edt\u00e1sra ker\u00fclt, \u00e9s ugyanabban a n\u00e9vt\u00e9rben tal\u00e1lhat\u00f3, ahol az alkalmaz\u00e1s fut. Ennek k\u00f6sz\u00f6nhet\u0151en lehet\u0151v\u00e9 v\u00e1lt t\u00f6bb alkalmaz\u00e1s egyidej\u0171 futtat\u00e1sa k\u00fcl\u00f6nb\u00f6z\u0151 n\u00e9vterekben azonos kiad\u00e1si n\u00e9vvel. A m\u00e1sodik verzi\u00f3ban ez komoly fejf\u00e1j\u00e1st okozott, amikor a n\u00e9vterek elszigeteltek voltak, de hat\u00e1ssal lehettek egym\u00e1sra.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/b9b82b7c86320a0e3642e4265a1f0241.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nA m\u00e1sodik Helm, amikor megpr\u00f3b\u00e1lja meg\u00e9rteni, sz\u00fcks\u00e9ges-e a friss\u00edt\u00e9s, csak k\u00e9t inform\u00e1ci\u00f3forr\u00e1st haszn\u00e1l: azt, amit jelenleg kapott, \u00e9s a kiad\u00e1sokkal kapcsolatos bels\u0151 inform\u00e1ci\u00f3it, amely a ConfigMap-ban tal\u00e1lhat\u00f3.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/0550ba5f6ce7be1e7f666dfc65e639ad.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA harmadik Helm a h\u00e1romfok\u00fa \u00f6sszeolvad\u00e1si strat\u00e9gi\u00e1t alkalmazza: a kromatogr\u00e1f\u00e1hoz k\u00e9pest a Kubernetesben v\u00e9grehajtott alkalmaz\u00e1s adatait is figyelembe veszi.<\/p>\n<p><img decoding=\"async\" alt=\"A Helm eszk\u00f6z \u00e9s annak buktat\u00f3i\" src=\"\/wp-content\/uploads\/2020\/02\/252085adb83e097e01b4a0655706ede5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nEz\u00e9rt a r\u00e9gi Helm verzi\u00f3ja nem fog semmit tenni, mert nem veszi figyelembe az alkalmaz\u00e1s inform\u00e1ci\u00f3it a klaszterben, de a Helm 3 megkapja a v\u00e1ltoz\u00e1sokat \u00e9s \u00faj alkalmaz\u00e1st fog telep\u00edteni.<\/p>\n<p><strong>5. m\u00f3dszer: Haszn\u00e1ljon kulcsot &#8212;recreate-pods<\/strong><\/p>\n<p>A kulcs seg\u00edts\u00e9g\u00e9vel <code>--recreate-pods<\/code> el\u00e9rhetj\u00fck azt, amit eredetileg a kulcs seg\u00edts\u00e9g\u00e9vel szerett\u00fcnk volna kapni. <code>--force<\/code>A tart\u00e1lyok \u00fajraindulnak, \u00e9s a leg\u00fajabb c\u00edmk\u00e9hez tartoz\u00f3 imagePullPolicy: Always ir\u00e1nyelvekkel (err\u0151l a fentebbi l\u00e1bjegyzetben esett sz\u00f3) a Kubernetes let\u00f6lti \u00e9s elind\u00edtja az \u00faj k\u00e9p verzi\u00f3t. Ez nem a legjobb m\u00f3don fog megt\u00f6rt\u00e9nni: figyelmen k\u00edv\u00fcl hagyva a telep\u00edt\u00e9si StrategyType-t, hirtelen le\u00e1ll\u00edtja az \u00f6sszes r\u00e9gi alkalmaz\u00e1s p\u00e9ld\u00e1nyt \u00e9s \u00fajakat ind\u00edt el. Az \u00fajraind\u00edt\u00e1s sor\u00e1n a rendszer nem m\u0171k\u00f6dik, felhaszn\u00e1l\u00f3k szenvedni fognak.<\/p>\n<p>A Kubernetesben is l\u00e9tezett hasonl\u00f3 probl\u00e9ma hossz\u00fa ideig. \u00c9s \u00edme, n\u00e9gy \u00e9vvel a felfedez\u00e9se ut\u00e1n <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/13488\">Issue<\/a><\/noindex>, a probl\u00e9m\u00e1t jav\u00edtott\u00e1k, \u00e9s a Kubernetes 1.15-\u00f6s version\u00e1l kezdve lehet\u0151s\u00e9g lesz a podok rolling-restart-j\u00e1ra.<\/p>\n<p>A Helm pedig egyszer\u0171en le\u00e1ll\u00edt minden alkalmaz\u00e1st \u00e9s \u00faj kont\u00e9nereket ind\u00edt. A termel\u00e9si k\u00f6rnyezetben ezt nem szabad tenni, hogy ne id\u00e9zz\u00fcnk el\u0151 alkalmaz\u00e1sle\u00e1ll\u00e1st. Ezt csak fejleszt\u00e9si c\u00e9lokra sz\u00fcks\u00e9ges, csak stage-k\u00f6rnyezetekben v\u00e9gezhet\u0151 el.<\/p>\n<h2>Hogyan friss\u00edts\u00fck az alkalmaz\u00e1s verzi\u00f3j\u00e1t a Helm seg\u00edts\u00e9g\u00e9vel?<\/h2>\n<p>\nMeg fogjuk v\u00e1ltoztatni a Helm-nek elk\u00fcld\u00f6tt \u00e9rt\u00e9keket. \u00c1ltal\u00e1ban ezek az \u00e9rt\u00e9kek az image tag hely\u00e9re ker\u00fclnek. A 'latest', amelyet gyakran haszn\u00e1lnak a nem produkt\u00edv k\u00f6rnyezetekben, megv\u00e1ltoztathat\u00f3 inform\u00e1ci\u00f3k\u00e9nt az annot\u00e1ci\u00f3 szolg\u00e1l, amely a Kubernetes sz\u00e1m\u00e1ra haszontalan, de a Helm sz\u00e1m\u00e1ra friss\u00edt\u00e9si jelz\u00e9st ad. Az annot\u00e1ci\u00f3 \u00e9rt\u00e9k\u00e9nek kit\u00f6lt\u00e9si lehet\u0151s\u00e9gei:<\/p>\n<ol>\n<li><strong>V\u00e9letlenszer\u0171 \u00e9rt\u00e9k<\/strong> a standard f\u00fcggv\u00e9ny seg\u00edts\u00e9g\u00e9vel \u2014 <code>{{ randAlphaNum 6 }}<\/code>. <br \/>\nVan egy kis r\u00e9szlet: minden egyes telep\u00edt\u00e9s ut\u00e1n, amely ezt a v\u00e1ltoz\u00f3t tartalmaz\u00f3 chartot haszn\u00e1l, az annot\u00e1ci\u00f3 \u00e9rt\u00e9ke egyedi lesz, \u00e9s a Helm \u00fagy fogja mondani, hogy van v\u00e1ltoz\u00e1s. \u00cdgy mindig \u00fajraind\u00edtjuk az alkalmaz\u00e1st, m\u00e9g akkor is, ha nem v\u00e1ltoztattunk a verzi\u00f3n. Ez nem kritikus, mivel nem lesz le\u00e1ll\u00e1s, de mindenk\u00e9ppen kellemetlen.<\/li>\n<li>Beilleszteni a jelenlegi <strong>d\u00e1tumot \u00e9s id\u0151t<\/strong> \u2014 <code>{{ .Release.Date }}<\/code>. <br \/>\nEz a lehet\u0151s\u00e9g hasonl\u00f3 a v\u00e9letlenszer\u0171 \u00e9rt\u00e9khez, de folyamatosan egyedi v\u00e1ltoz\u00f3val rendelkezik.<\/li>\n<li>A helyesebb m\u00f3dszer \u2014 haszn\u00e1lni <strong>ellen\u0151rz\u0151 \u00f6sszegek<\/strong>. Ez a SHA k\u00e9pe vagy a legutols\u00f3 commit SHA-ja a gitben \u2014 <code>{{ .Values.sha }}<\/code>. <br \/>\nEzokat sz\u00e1molni kell, \u00e9s el kell k\u00fcldeni a Helm kliensnek a h\u00edv\u00f3 oldalon, p\u00e9ld\u00e1ul Jenkinsben. Ha az alkalmaz\u00e1s megv\u00e1ltozik, az ellen\u0151rz\u0151 \u00f6sszeg is megv\u00e1ltozik. K\u00f6vetkez\u00e9sk\u00e9ppen, a Helm csak akkor friss\u00edti az alkalmaz\u00e1st, amikor sz\u00fcks\u00e9ges.<\/li>\n<\/ol>\n<p><\/p>\n<h2>\u00d6sszefoglalva a pr\u00f3b\u00e1lkoz\u00e1sainkat<\/h2>\n<p><\/p>\n<ul>\n<li>A Helm a legkev\u00e9sb\u00e9 invaz\u00edv m\u00f3don hajtja v\u00e9gre a v\u00e1ltoztat\u00e1sokat, ez\u00e9rt b\u00e1rmilyen v\u00e1ltoztat\u00e1s a Docker Registry alkalmaz\u00e1sk\u00e9p\u00e9n nem vezet friss\u00edt\u00e9shez: a parancs v\u00e9grehajt\u00e1sa ut\u00e1n semmi sem fog t\u00f6rt\u00e9nni.<\/li>\n<li>Kulcs <code>--force<\/code> probl\u00e9m\u00e1s kiad\u00e1sok helyrehoz\u00e1s\u00e1ra haszn\u00e1lhat\u00f3, \u00e9s nem kapcsol\u00f3dik a k\u00e9nyszer\u00edtett friss\u00edt\u00e9shez.<\/li>\n<li>Kulcs <code>--recreate-pods<\/code> k\u00e9nyszer\u00edtve friss\u00edti az alkalmaz\u00e1sokat, de ezt vand\u00e1l m\u00f3don teszi: hirtelen lekapcsol minden kont\u00e9nert. Ez h\u00e1tr\u00e1nyosan \u00e9rinti a felhaszn\u00e1l\u00f3kat, a termel\u00e9sben ezt nem szabad \u00edgy csin\u00e1lni.<\/li>\n<li>K\u00f6zvetlen\u00fcl a Kubernetes klaszterben a parancs seg\u00edts\u00e9g\u00e9vel <code>kubectl edit<\/code> nem szabad: megs\u00e9rtj\u00fck a konzisztenci\u00e1t, \u00e9s a viselked\u00e9s az Helm verzi\u00f3j\u00e1t\u00f3l f\u00fcgg\u0151en elt\u00e9r\u0151 lesz.<\/li>\n<li>Az \u00faj Helm verzi\u00f3k megjelen\u00e9s\u00e9vel sok r\u00e9szlet ker\u00fclt el\u0151t\u00e9rbe. Az Issues a Helm t\u00e1rol\u00f3ban \u00e9rthet\u0151 nyelven van le\u00edrva, seg\u00edtenek eligibil\u00e1lni a r\u00e9szleteket.<\/li>\n<li>Egy m\u00f3dos\u00edthat\u00f3 annot\u00e1ci\u00f3 hozz\u00e1ad\u00e1sa a chart-hoz rugalmasabb\u00e1 teszi azt. Ez lehet\u0151v\u00e9 teszi az alkalmaz\u00e1s helyes kib\u0151v\u00edt\u00e9s\u00e9t, \u00e1ll\u00e1sid\u0151 n\u00e9lk\u00fcl.<\/li>\n<\/ul>\n<p>\nAz \u00f6tlet a \"b\u00e9ke a vil\u00e1gban\" kateg\u00f3ri\u00e1b\u00f3l, amely minden \u00e9letter\u00fcleten m\u0171k\u00f6dik: olvasd el az utas\u00edt\u00e1st haszn\u00e1lat el\u0151tt, ne ut\u00e1n. Csak a teljes inform\u00e1ci\u00f3 birtok\u00e1ban lehet megb\u00edzhat\u00f3 rendszereket \u00e9p\u00edteni \u00e9s boldogg\u00e1 tenni a felhaszn\u00e1l\u00f3kat.<\/p>\n<p><strong>Tov\u00e1bbi hivatkoz\u00e1sok a t\u00e9m\u00e1ban:<\/strong><\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/453734\/\">Megismertet\u00e9s a <i>Helm<\/i> 3<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/helm.sh\/\">A Helm hivatalos oldala<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\">A Helm t\u00e1rol\u00f3ja a GitHubon<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/425343\/\">25 hasznos Kubernetes eszk\u00f6z: telep\u00edt\u00e9s \u00e9s kezel\u00e9s<\/a><\/noindex><\/li>\n<\/ol>\n<p>\nEz a besz\u00e9d el\u0151sz\u00f6r hangzott el <noindex><a rel=\"nofollow\" href=\"https:\/\/corp.mail.ru\/ru\/press\/events\/at-kubernetes-conference\/\">@Kubernetes Konferencia<\/a><\/noindex> a Mail.ru Cloud Solutions \u00e1ltal. N\u00e9zd meg <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/playlist?list=PLQzTaxmOHjnv0tP_HDxsIvcuac2kkIJTQ\">vide\u00f3n<\/a><\/noindex> m\u00e1s el\u0151ad\u00e1sokat, \u00e9s iratkozz fel az esem\u00e9nyek \u00e9rtes\u00edt\u00e9seire a Telegramon <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/k8s_mail\">A Kubernetes k\u00f6r\u00fcl a Mail.ru Groupban<\/a><\/noindex>.<br \/>\n<br \/>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/488192\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Typhon freight hauler concept, Anton Swanepoel \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0414\u043c\u0438\u0442\u0440\u0438\u0439 \u0421\u0443\u0433\u0440\u043e\u0431\u043e\u0432, \u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0432 \u00ab\u041b\u0435\u0440\u0443\u0430 \u041c\u0435\u0440\u043b\u0435\u043d\u00bb. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u0437\u0430\u0447\u0435\u043c \u043d\u0443\u0436\u0435\u043d Helm, \u043a\u0430\u043a \u043e\u043d \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 Kubernetes, \u0447\u0442\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u043b\u043e\u0441\u044c \u0432 \u0442\u0440\u0435\u0442\u044c\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u0438 \u043a\u0430\u043a \u0441 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435 \u0431\u0435\u0437 \u043f\u0440\u043e\u0441\u0442\u043e\u044f. \u042d\u0442\u043e \u043a\u043e\u043d\u0441\u043f\u0435\u043a\u0442 \u043f\u043e \u043c\u043e\u0442\u0438\u0432\u0430\u043c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0438 @Kubernetes Conference by Mail.ru Cloud [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":70955,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-70954","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=\"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\/ustrojstvo-helm-i-ego-podvodnye-kamni\" \/>\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\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e Helm \u0438 \u0435\u0433\u043e \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0435 \u043a\u0430\u043c\u043d\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/ustrojstvo-helm-i-ego-podvodnye-kamni\" \/>\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=\"2020-02-22T21:58:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-03T13:14:40+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\udd47A Helm szerkezete \u00e9s buktat\u00f3i | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/ustrojstvo-helm-i-ego-podvodnye-kamni","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\u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e Helm \u0438 \u0435\u0433\u043e \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0435 \u043a\u0430\u043c\u043d\u0438 | ProHoster","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/ustrojstvo-helm-i-ego-podvodnye-kamni","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":"2020-02-22T21:58:17+00:00","article:modified_time":"2020-03-03T13:14:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"70954","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:11:23","updated":"2022-09-30 13:54:53","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\/70954","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=70954"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/70954\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/70955"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=70954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=70954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=70954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}