{"id":34735,"date":"2019-10-31T22:00:06","date_gmt":"2019-10-31T19:00:06","guid":{"rendered":"https:\/\/prohoster.info\/blog\/znakomstvo-s-helm-3\/"},"modified":"2019-10-31T22:00:06","modified_gmt":"2019-10-31T19:00:06","slug":"znakomstvo-s-helm-3","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/znakomstvo-s-helm-3","title":{"rendered":"Sezn\u00e1men\u00ed s Helm 3.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Sezn\u00e1men\u00ed s Helm 3.\" src=\"\/wp-content\/uploads\/2019\/05\/6de0e2887ddcc802f1dd71c902325401.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i><b>Pozn. p\u0159ek.<\/b>: 16. kv\u011btna tohoto roku \u2013 v\u00fdznamn\u00fd miln\u00edk v rozvoji bal\u00ed\u010dkov\u00e9ho mana\u017eera pro Kubernetes \u2013 Helm. V tento den byl p\u0159edstaven prvn\u00ed alfa release budouc\u00ed velk\u00e9 verze projektu \u2013 3.0. Jej\u00ed vyd\u00e1n\u00ed p\u0159inese do Helmu v\u00fdznamn\u00e9 a dlouho o\u010dek\u00e1van\u00e9 zm\u011bny, na kter\u00e9 mnoz\u00ed v Kubernetes komunit\u011b vkl\u00e1daj\u00ed velk\u00e9 nad\u011bje. Mezi n\u011b se po\u010d\u00edt\u00e1me i my, proto\u017ee aktivn\u011b pou\u017e\u00edv\u00e1me Helm pro nasazen\u00ed aplikac\u00ed: integrujeme ho do na\u0161eho n\u00e1stroje pro realizaci CI\/CD. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/werf\">werf<\/a><\/noindex> a p\u0159\u00edle\u017eitostn\u011b p\u0159isp\u00edv\u00e1me sv\u00fdm d\u00edlem k rozvoji upstreamu. Tento p\u0159eklad spojuje 7 pozn\u00e1mek z ofici\u00e1ln\u00edho blogu Helmu, kter\u00e9 se v\u00e1\u017e\u00ed k prvn\u00edmu alfa release Helmu 3 a vypr\u00e1v\u00ed o historii projektu a hlavn\u00edch vlastnostech Helmu 3. Jejich autorem je Matt \u201ebacongobbler\u201c Fisher, zam\u011bstnanec Microsoftu a jeden z kl\u00ed\u010dov\u00fdch udr\u017eovatel\u016f Helmu.<\/i><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>15. \u0159\u00edjna 2015 se zrodil projekt, nyn\u00ed zn\u00e1m\u00fd jako Helm. Jen rok po sv\u00e9m zalo\u017een\u00ed se komunita Helmu p\u0159ipojila k Kubernetes a aktivn\u011b pracovala na Helmu 2. V \u010dervnu 2018 se Helm <noindex><a rel=\"nofollow\" href=\"https:\/\/www.cncf.io\/blog\/2018\/06\/01\/cncf-to-host-helm\/\">stal sou\u010d\u00e1st\u00ed CNCF<\/a><\/noindex> jako vyv\u00edjej\u00edc\u00ed se (incubating) projekt. P\u0159enesme se do sou\u010dasnosti \u2013 a ji\u017e se bl\u00ed\u017e\u00ed prvn\u00ed alfa release nov\u00e9ho Helmu 3 <i>(tento release <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\/releases\/tag\/v3.0.0-alpha.1\">u\u017e prob\u011bhl<\/a><\/noindex> v polovin\u011b kv\u011btna \u2013 pozn. p\u0159ekladatele)<\/i>.<\/p>\n<p>V tomto materi\u00e1lu v\u00e1m pov\u00edm o tom, jak to v\u0161echno za\u010dalo, jak jsme se dostali k sou\u010dasn\u00e9mu stadiu, p\u0159edstav\u00edm n\u011bkter\u00e9 unik\u00e1tn\u00ed vlastnosti dostupn\u00e9 v prvn\u00edm alfa release Helmu 3 a vysv\u011btl\u00edm, jak pl\u00e1nujeme d\u00e1l vyv\u00edjet.<\/p>\n<p>Shrnut\u00ed:<\/p>\n<ul>\n<li>historie vzniku Helmu;<\/li>\n<li>n\u011b\u017en\u00e9 rozlou\u010den\u00ed s Tillerem;<\/li>\n<li>repozit\u00e1\u0159e chart\u016f;<\/li>\n<li>spr\u00e1va release;<\/li>\n<li>zm\u011bny v z\u00e1vislostech chart\u016f;<\/li>\n<li>library charts;<\/li>\n<li>co d\u00e1l?<\/li>\n<\/ul>\n<p><\/p>\n<h2>Historie vzniku Helmu<\/h2>\n<p><\/p>\n<h3>Narozen\u00ed<\/h3>\n<p>\nHelm 1 za\u010d\u00ednal jako Open Source projekt, kter\u00fd vytvo\u0159ila spole\u010dnost Deis. Byli jsme mal\u00fd startup, <noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.microsoft.com\/blog\/2017\/04\/10\/microsoft-acquire-deis-help-companies-innovate-containers\/\">kter\u00fd byl pohlcen<\/a><\/noindex> Microsoftem na ja\u0159e 2017. N\u00e1\u0161 dal\u0161\u00ed Open Source projekt, tak\u00e9 naz\u00fdvan\u00fd Deis, m\u011bl n\u00e1stroj <code>deisctl<\/code>, kter\u00fd se pou\u017e\u00edv\u00e1 (mimo jin\u00e9) k instalaci a provozu platformy Deis v <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/coreos\/fleet\">klastru Fleet<\/a><\/noindex>. V t\u00e9 dob\u011b byl Fleet jednou z prvn\u00edch platforem pro orchestraci kontejner\u016f.<\/p>\n<p>V polovin\u011b roku 2015 jsme se rozhodli zm\u011bnit kurz a p\u0159evedli jsme Deis (v t\u00e9 dob\u011b p\u0159ejmenovan\u00fd na Deis Workflow) z Fleet na Kubernetes. Jedn\u00edm z prvn\u00edch n\u00e1stroj\u016f, kter\u00fd pro\u0161el reviz\u00ed, byl instala\u010dn\u00ed n\u00e1stroj. <code>deisctl<\/code>Pou\u017eili jsme ho k instalaci a spr\u00e1v\u011b Deis Workflow v klastru Fleet.<\/p>\n<p>Helm 1 byl vytvo\u0159en na z\u00e1klad\u011b zn\u00e1m\u00fdch bal\u00ed\u010dkov\u00fdch mana\u017eer\u016f, jako jsou Homebrew, apt a yum. Jeho hlavn\u00edm c\u00edlem bylo zjednodu\u0161en\u00ed \u00fakol\u016f, jako je balen\u00ed a instalace aplikac\u00ed v Kubernetes. Ofici\u00e1ln\u011b byl Helm p\u0159edstaven v roce 2015 na konferenci KubeCon v San Franciscu.<\/p>\n<p>N\u00e1\u0161 prvn\u00ed pokus s Helmem fungoval, av\u0161ak nebylo to bez v\u00e1\u017en\u00fdch omezen\u00ed. Bral sadu manifest\u016f Kubernetes, obohacen\u00fdch gener\u00e1tory jako vstupn\u00edmi YAML bloky <i>(front-matter)<\/i>*, a nahr\u00e1val v\u00fdsledky do Kubernetes.<\/p>\n<p><i>* <b>Pozn. p\u0159ek.<\/b>: Od prvn\u00ed verze Helmu byl pro popis zdroj\u016f Kubernetes vybr\u00e1n syntaktick\u00fd jazyk YAML a p\u0159i psan\u00ed konfigurac\u00ed byly podporov\u00e1ny \u0161ablony Jinja a Python skripty. O tom, a tak\u00e9 o struktu\u0159e prvn\u00ed verze Helmu, jsme psali v kapitole \u201eKr\u00e1tk\u00e1 historie Helmu\u201c <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/417079\/\">tohoto materi\u00e1lu<\/a><\/noindex>.<\/i><\/p>\n<p>Nap\u0159\u00edklad, abyste nahradili pole v YAML souboru, bylo pot\u0159eba p\u0159idat do manifestu n\u00e1sleduj\u00edc\u00ed konstrukci:<\/p>\n<pre><code class=\"plaintext\">#helm:generate sed -i -e s|ubuntu-debootstrap|fluffy-bunny| my\/pod.yaml<\/code><\/pre>\n<p>\nJe skv\u011bl\u00e9, \u017ee dnes existuj\u00ed \u0161abloniz\u00e1tory, vi\u010fte?<\/p>\n<p>Z mnoha d\u016fvod\u016f tento ran\u00fd instala\u010dn\u00ed program Kubernetes vy\u017eadoval pevn\u011b definovan\u00fd seznam manifestov\u00fdch soubor\u016f a prov\u00e1d\u011bl pouze malou pevn\u011b stanovenou sekvenci ud\u00e1lost\u00ed. Bylo s n\u00edm tak slo\u017eit\u00e9 zach\u00e1zet, \u017ee R&amp;D t\u00fdm Deis Workflow m\u011bl probl\u00e9m, kdy\u017e se pokusil p\u0159ev\u00e9st sv\u016fj produkt na tuto platformu \u2014 p\u0159esto v\u0161ak byly zasety semena my\u0161lenky. N\u00e1\u0161 prvn\u00ed pokus byl skv\u011blou p\u0159\u00edle\u017eitost\u00ed k u\u010den\u00ed: uv\u011bdomili jsme si, \u017ee n\u00e1s skute\u010dn\u011b bav\u00ed vytv\u00e1\u0159et pragmatick\u00e9 n\u00e1stroje, kter\u00e9 \u0159e\u0161\u00ed ka\u017edodenn\u00ed probl\u00e9my na\u0161ich u\u017eivatel\u016f.<\/p>\n<p>Na z\u00e1klad\u011b zku\u0161enost\u00ed z minul\u00fdch chyb jsme se pustili do v\u00fdvoje Helmu 2.<\/p>\n<h3>Vytvo\u0159en\u00ed Helmu 2<\/h3>\n<p>\nNa konci roku 2015 n\u00e1s kontaktoval t\u00fdm Google. Pracovali na podobn\u00e9m n\u00e1stroji pro Kubernetes. Deployment Manager pro Kubernetes byl portem st\u00e1vaj\u00edc\u00edho n\u00e1stroje, kter\u00fd se pou\u017e\u00edval pro Google Cloud Platform. \u201eNecht\u011bli bychom, \u2014 ptali se, \u2014 str\u00e1vit p\u00e1r dn\u00ed diskus\u00ed o podobnostech a rozd\u00edlech?\u201c<\/p>\n<p>V lednu 2016 se t\u00fdmy Helm a Deployment Manager se\u0161ly v Seattlu, aby si vym\u011bnily my\u0161lenky. Jedn\u00e1n\u00ed vy\u00fastila v ambici\u00f3zn\u00ed pl\u00e1n: spojit oba projekty, aby vytvo\u0159ily Helm 2. Spolu s Deis a Google se t\u00fdmu v\u00fdvoj\u00e1\u0159\u016f p\u0159ipojili kluci z <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/skippbox\">SkippBox<\/a><\/noindex> <i>(nyn\u00ed sou\u010d\u00e1st Bitnami \u2014 pozn. red.)<\/i>, a pustili jsme se do pr\u00e1ce na Helmu 2.<\/p>\n<p>Cht\u011bli jsme zachovat jednoduchost pou\u017e\u00edv\u00e1n\u00ed Helmu, ale p\u0159idat n\u00e1sleduj\u00edc\u00ed:<\/p>\n<ul>\n<li> \u0161ablony chart\u016f pro p\u0159izp\u016fsoben\u00ed;<\/li>\n<li> vnit\u0159n\u00ed \u0159\u00edzen\u00ed pro t\u00fdmy;<\/li>\n<li> prvot\u0159\u00eddn\u00ed repozit\u00e1\u0159 chart\u016f;<\/li>\n<li> stabiln\u00ed form\u00e1t bal\u00ed\u010dk\u016f s mo\u017enost\u00ed podpisu;<\/li>\n<li> pevn\u00e9 odhodl\u00e1n\u00ed k semantick\u00e9mu verzov\u00e1n\u00ed a zachov\u00e1n\u00ed zp\u011btn\u00e9 kompatibility mezi verzemi.<\/li>\n<\/ul>\n<p>\nK dosa\u017een\u00ed t\u011bchto c\u00edl\u016f byl do ekosyst\u00e9mu Helmu p\u0159id\u00e1n druh\u00fd prvek. Tento vnit\u0159n\u00ed komponent byl nazv\u00e1n Tiller a zab\u00fdval se instalac\u00ed Helm chart\u016f a jejich \u0159\u00edzen\u00edm.<\/p>\n<p>Od vyd\u00e1n\u00ed Helmu 2 v roce 2016 Kubernetes z\u00edskalo n\u011bkolik v\u00fdznamn\u00fdch novinek. Objevilo se \u0159\u00edzen\u00ed p\u0159\u00edstupu na z\u00e1klad\u011b rol\u00ed (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/422801\/\">RBAC<\/a><\/noindex>), kter\u00e9 nakonec nahradilo \u0159\u00edzen\u00ed p\u0159\u00edstupu na z\u00e1klad\u011b atribut\u016f (ABAC). Byly p\u0159edstaveny nov\u00e9 typy zdroj\u016f (Deployments tehdy st\u00e1le z\u016fst\u00e1valy v beta verzi). Byly vynalezeny Vlastn\u00ed definice zdroj\u016f (p\u016fvodn\u011b nazvan\u00e9 T\u0159et\u00ed strany zdroje nebo TPR). A co je nejd\u016fle\u017eit\u011bj\u0161\u00ed - vznikla sada osv\u011bd\u010den\u00fdch postup\u016f.<\/p>\n<p>Na pozad\u00ed v\u0161ech t\u011bchto zm\u011bn Helm nad\u00e1le slou\u017eil u\u017eivatel\u016fm Kubernetes. Po t\u0159ech letech a mnoha nov\u00fdch dodatc\u00edch se stalo jasn\u00fdm, \u017ee je \u010das prov\u00e9st z\u00e1sadn\u00ed zm\u011bny v k\u00f3dov\u00e9 z\u00e1kladn\u011b, aby Helm i nad\u00e1le uspokojoval rostouc\u00ed po\u017eadavky vyv\u00edjej\u00edc\u00edho se ekosyst\u00e9mu.<\/p>\n<h2>N\u011b\u017en\u00e9 rozlou\u010den\u00ed s Tillerem<\/h2>\n<p>\nB\u011bhem v\u00fdvoje Helmu 2 jsme p\u0159edstavili Tiller jako sou\u010d\u00e1st na\u0161\u00ed integrace s Google Deployment Managerem. Tiller hr\u00e1l d\u016fle\u017eitou roli pro t\u00fdmy pracuj\u00edc\u00ed v r\u00e1mci spole\u010dn\u00e9ho clusteru: umo\u017e\u0148oval r\u016fzn\u00fdm specialist\u016fm vyu\u017e\u00edvaj\u00edc\u00edm infrastrukturu interagovat se stejnou sadou releas\u016f.<\/p>\n<p>Proto\u017ee kontrola p\u0159\u00edstupu zalo\u017een\u00e1 na rol\u00edch (RBAC) byla ve v\u00fdchoz\u00edm nastaven\u00ed povolena v Kubernetes 1.6, pr\u00e1ce s Tillerem v produk\u010dn\u00edm prost\u0159ed\u00ed se stala slo\u017eit\u011bj\u0161\u00ed. Vzhledem k obrovsk\u00e9mu po\u010dtu mo\u017en\u00fdch bezpe\u010dnostn\u00edch politik jsme se rozhodli nab\u00edzet povolovac\u00ed konfiguraci jako v\u00fdchoz\u00ed. To umo\u017enilo nov\u00e1\u010dk\u016fm experimentovat s Helm a Kubernetes, ani\u017e by museli nejprve pronikat do bezpe\u010dnostn\u00edho nastaven\u00ed. Bohu\u017eel tato povolovac\u00ed konfigurace mohla ud\u011blit u\u017eivateli p\u0159\u00edli\u0161 \u0161irok\u00fd rozsah opr\u00e1vn\u011bn\u00ed, kter\u00e1 pot\u0159eboval. In\u017een\u00fd\u0159i DevOps a SRE se museli nau\u010dit dal\u0161\u00ed provozn\u00ed kroky, jak nainstalovat Tiller do v\u00edcetenantn\u00edho clusteru.<\/p>\n<p>Zjistiv\u0161\u00ed, jak \u010dlenov\u00e9 komunity pou\u017e\u00edvaj\u00ed Helm v konkr\u00e9tn\u00edch situac\u00edch, jsme si uv\u011bdomili, \u017ee syst\u00e9m spr\u00e1vy releas\u016f Tillera nemus\u00ed z\u00e1viset na intraklastrov\u00e9 komponent\u011b, aby udr\u017eoval stavy nebo fungoval jako centr\u00e1ln\u00ed uzel s informacemi o releasu. M\u00edsto toho jsme mohli jednodu\u0161e z\u00edsk\u00e1vat informace z API serveru Kubernetes, generovat chart na stran\u011b klienta a uchov\u00e1vat z\u00e1znam o instalaci v Kubernetes.<\/p>\n<p>Hlavn\u00ed \u00fakol Tillera bylo mo\u017en\u00e9 splnit i bez Tillera, proto jedn\u00edm z na\u0161ich prvn\u00edch rozhodnut\u00ed ohledn\u011b Helmu 3 byl \u00fapln\u00fd odstup od Tillera.<\/p>\n<p>S odchodem Tillera se model bezpe\u010dnosti Helmu radik\u00e1ln\u011b zjednodu\u0161il. Helm 3 nyn\u00ed podporuje v\u0161echny modern\u00ed zp\u016fsoby zabezpe\u010den\u00ed, identifikace a autorizace sou\u010dasn\u00e9ho Kubernetes. Opr\u00e1vn\u011bn\u00ed Helmu jsou definov\u00e1na pomoc\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/organize-cluster-access-kubeconfig\/\">souboru kubeconfig<\/a><\/noindex>. Spr\u00e1vci clusteru mohou omezit pr\u00e1va u\u017eivatel\u016f s jakoukoliv \u00farovn\u00ed podrobnosti. Vyd\u00e1n\u00ed st\u00e1le z\u016fst\u00e1vaj\u00ed v r\u00e1mci clusteru, a ostatn\u00ed funkce Helmu z\u016fst\u00e1vaj\u00ed.<\/p>\n<h2>Repozit\u00e1\u0159e chart\u016f<\/h2>\n<p>\nNa vysok\u00e9 \u00farovni je repozit\u00e1\u0159 chart\u016f m\u00edstem pro ukl\u00e1d\u00e1n\u00ed a sd\u00edlen\u00ed chart\u016f. Klient Helmu bal\u00ed a odes\u00edl\u00e1 chart do repozit\u00e1\u0159e. Jin\u00fdmi slovy, repozit\u00e1\u0159 chart\u016f je primitivn\u00ed HTTP server s souborem index.yaml a n\u011bkter\u00fdmi zabalen\u00fdmi charty.<\/p>\n<p>I kdy\u017e existuj\u00ed ur\u010dit\u00e9 v\u00fdhody v tom, \u017ee API repozit\u00e1\u0159e chart\u016f spl\u0148uje z\u00e1kladn\u00ed po\u017eadavky na \u00falo\u017ei\u0161t\u011b, m\u00e1 tak\u00e9 n\u011bkolik nev\u00fdhod:<\/p>\n<ul>\n<li> Repozit\u00e1\u0159e chart\u016f jsou \u0161patn\u011b kompatibiln\u00ed s v\u011bt\u0161inou implementac\u00ed zabezpe\u010den\u00ed, kter\u00e9 jsou pot\u0159ebn\u00e9 v produk\u010dn\u00edm prost\u0159ed\u00ed. M\u00edt standardn\u00ed API pro autentizaci a autorizaci je v produk\u010dn\u00edch sc\u00e9n\u00e1\u0159\u00edch z\u00e1sadn\u00ed.<\/li>\n<li> N\u00e1stroje Helmu pro sledov\u00e1n\u00ed p\u016fvodu chartu, pou\u017e\u00edvan\u00e9 pro podepisov\u00e1n\u00ed, kontrolu integrity a p\u016fvodu chartu, jsou nepovinnou sou\u010d\u00e1st\u00ed procesu publikace chartu.<\/li>\n<li> V mnohopou\u017eivatelsk\u00fdch sc\u00e9n\u00e1\u0159\u00edch m\u016f\u017ee b\u00fdt stejn\u00fd chart nahr\u00e1n jin\u00fdm u\u017eivatelem, co\u017e zdvojn\u00e1sobuje objem prostoru pot\u0159ebn\u00e9ho pro uchov\u00e1n\u00ed stejn\u00e9ho obsahu. Pro vy\u0159e\u0161en\u00ed tohoto probl\u00e9mu byly vyvinuty inteligentn\u011bj\u0161\u00ed repozit\u00e1\u0159e, av\u0161ak nejsou sou\u010d\u00e1st\u00ed form\u00e1ln\u00ed specifikace.<\/li>\n<li> Pou\u017eit\u00ed jednotn\u00e9ho indexov\u00e9ho souboru pro vyhled\u00e1v\u00e1n\u00ed, uchov\u00e1v\u00e1n\u00ed metadat a z\u00edsk\u00e1v\u00e1n\u00ed chart\u016f zt\u00ed\u017eilo v\u00fdvoj bezpe\u010dn\u00fdch mnohopou\u017eivatelsk\u00fdch implementac\u00ed.<\/li>\n<\/ul>\n<p>\nProjekt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/docker\/distribution\">Docker Distribution<\/a><\/noindex> (tak\u00e9 zn\u00e1m\u00fd jako Docker Registry v2) je n\u00e1stupcem Docker Registry a vlastn\u011b se jedn\u00e1 o sadu n\u00e1stroj\u016f pro balen\u00ed, odes\u00edl\u00e1n\u00ed, ukl\u00e1d\u00e1n\u00ed a dod\u00e1v\u00e1n\u00ed obraz\u016f Dockeru. Mnoho velk\u00fdch cloudov\u00fdch slu\u017eeb nab\u00edz\u00ed produkty zalo\u017een\u00e9 na Distribution. D\u00edky tomuto zv\u00fd\u0161en\u00e9mu z\u00e1jmu projekt Distribution t\u011b\u017eil z let vylep\u0161en\u00ed, nejlep\u0161\u00edch praktik v oblasti bezpe\u010dnosti a testov\u00e1n\u00ed v \"bojov\u00fdch\" podm\u00ednk\u00e1ch, co\u017e ho prom\u011bnilo v jednoho z nej\u00fasp\u011b\u0161n\u011bj\u0161\u00edch nedocen\u011bn\u00fdch hrdin\u016f sv\u011bta Open Source.<\/p>\n<p>Ale v\u00edte, \u017ee projekt Distribution byl navr\u017een pro distribuci jak\u00e9hokoli typu obsahu, a ne jen obraz\u016f kontejner\u016f?<\/p>\n<p>D\u00edky \u00fasil\u00ed <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opencontainers.org\/\">Open Container Initiative<\/a><\/noindex> (nebo OCI) mohou b\u00fdt Helm chart\u016f um\u00edst\u011bny na libovoln\u00e9m instance Distribution. Dosud je tento proces experiment\u00e1ln\u00ed. Pr\u00e1ce na podpo\u0159e p\u0159ihl\u00e1\u0161en\u00ed a dal\u0161\u00edch funkcionalit nezbytn\u00fdch pro plnohodnotn\u00fd Helm 3 je\u0161t\u011b nen\u00ed dokon\u010dena, ale velmi se t\u011b\u0161\u00edme na mo\u017enost u\u010dit se z objev\u016f, kter\u00e9 t\u00fdmy OCI a Distribution u\u010dinily za ta l\u00e9ta. A d\u00edky jejich mentoringu a veden\u00ed se u\u010d\u00edme, co obn\u00e1\u0161\u00ed provozov\u00e1n\u00ed vysoce dostupn\u00e9 slu\u017eby ve velk\u00e9m m\u011b\u0159\u00edtku.<\/p>\n<p>Podrobn\u011bj\u0161\u00ed popis n\u011bkter\u00fdch nadch\u00e1zej\u00edc\u00edch zm\u011bn v repozit\u00e1\u0159\u00edch Helm chart\u016f je k dispozici <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.bacongobbler.com\/post\/2019-01-25-distributing-with-distribution\/\">na odkazu<\/a><\/noindex>.<\/p>\n<h2>Spr\u00e1va verz\u00ed<\/h2>\n<p>\nV Helmu 3 je stav aplikace sledov\u00e1n uvnit\u0159 clusteru pomoc\u00ed dvou objekt\u016f:<\/p>\n<ul>\n<li> release object \u2014 p\u0159edstavuje instanci aplikace;<\/li>\n<li> release verze secret \u2014 p\u0159edstavuje \u017e\u00e1douc\u00ed stav aplikace v konkr\u00e9tn\u00edm okam\u017eiku (nap\u0159\u00edklad uveden\u00ed nov\u00e9 verze).<\/li>\n<\/ul>\n<p>\nZavol\u00e1n\u00ed <code>helm install<\/code> vytv\u00e1\u0159\u00ed release objekt a release version secret. Vol\u00e1n\u00ed <code>helm upgrade<\/code> vy\u017eaduje existenci release objektu (kter\u00fd m\u016f\u017ee m\u011bnit) a vytv\u00e1\u0159\u00ed nov\u00fd release version secret, kter\u00fd obsahuje nov\u00e9 hodnoty a p\u0159ipraven\u00fd manifest.<\/p>\n<p>Objekt release obsahuje informace o vyd\u00e1n\u00ed, kde vyd\u00e1n\u00ed je konkr\u00e9tn\u00ed instalace pojmenovan\u00e9ho chartu a hodnot. Tento objekt popisuje metadata na vy\u0161\u0161\u00ed \u00farovni o vyd\u00e1n\u00ed. Objekt release je uchov\u00e1v\u00e1n po celou dobu \u017eivotn\u00edho cyklu aplikace a je vlastn\u00edkem v\u0161ech tajemstv\u00ed verze vyd\u00e1n\u00ed, stejn\u011b jako v\u0161ech objekt\u016f, kter\u00e9 jsou p\u0159\u00edmo vytvo\u0159eny chartem Helm.<\/p>\n<p>Release version secret spojuje release s \u0159adou reviz\u00ed (instalace, aktualizace, n\u00e1vraty, odstran\u011bn\u00ed).<\/p>\n<p>V Helm 2 byly revize v\u00fdhradn\u011b sekven\u010dn\u00ed. Vol\u00e1n\u00ed <code>helm install<\/code> vytvo\u0159il v1, dal\u0161\u00ed aktualizace (upgrade) \u2014 v2, a tak d\u00e1le. Objekt release a tajemstv\u00ed verze vyd\u00e1n\u00ed byly slou\u010deny do jedin\u00e9ho objektu, zn\u00e1m\u00e9ho jako revision. Revisiony byly uchov\u00e1v\u00e1ny ve stejn\u00e9m prostoru n\u00e1zv\u016f jako Tiller, co\u017e znamenalo, \u017ee ka\u017ed\u00e9 vyd\u00e1n\u00ed bylo \u201eglob\u00e1ln\u00ed\u201c co do prostoru n\u00e1zv\u016f; v d\u016fsledku toho bylo mo\u017en\u00e9 pou\u017e\u00edt pouze jeden exempl\u00e1\u0159 n\u00e1zvu.<\/p>\n<p>V Helm 3 je ka\u017ed\u00e9 vyd\u00e1n\u00ed spojeno s jedn\u00edm nebo n\u011bkolika tajemstv\u00edmi verze vyd\u00e1n\u00ed. Objekt release v\u017edy popisuje aktu\u00e1ln\u00ed vyd\u00e1n\u00ed nasazen\u00e9 v Kubernetes. Ka\u017ed\u00e9 tajemstv\u00ed verze vyd\u00e1n\u00ed popisuje pouze jednu verzi tohoto vyd\u00e1n\u00ed. Aktualizace (upgrade) nap\u0159\u00edklad vytvo\u0159\u00ed nov\u00e9 tajemstv\u00ed verze vyd\u00e1n\u00ed a pot\u00e9 zm\u011bn\u00ed objekt release, aby ukazoval na tuto novou verzi. V p\u0159\u00edpad\u011b n\u00e1vratu (rollback) lze pou\u017e\u00edt p\u0159edchoz\u00ed tajemstv\u00ed verze vyd\u00e1n\u00ed k n\u00e1vratu vyd\u00e1n\u00ed do p\u0159edchoz\u00edho stavu.<\/p>\n<p>Po odstran\u011bn\u00ed Tillera Helm 3 uchov\u00e1v\u00e1 data o vyd\u00e1n\u00ed v jednom prostoru n\u00e1zv\u016f spole\u010dn\u00e9m s vyd\u00e1n\u00edm. Tento krok umo\u017e\u0148uje nainstalovat chart se stejn\u00fdm n\u00e1zvem vyd\u00e1n\u00ed do jin\u00e9ho prostoru n\u00e1zv\u016f a data se uchov\u00e1vaj\u00ed mezi aktualizacemi\/restarty clusteru v etcd. Nap\u0159\u00edklad lze nainstalovat WordPress do prostoru n\u00e1zv\u016f \u201efoo\u201c a pot\u00e9 do prostoru n\u00e1zv\u016f \u201ebar\u201c, a ob\u011b vyd\u00e1n\u00ed mohou b\u00fdt nazv\u00e1na \u201ewordpress\u201c.<\/p>\n<h2>Zm\u011bny v z\u00e1vislostech chart\u016f<\/h2>\n<p>\nChart, zabalen\u00e9 (pomoc\u00ed <code>helm package<\/code>) pro pou\u017eit\u00ed s Helm 2, lze nainstalovat s Helmem 3, av\u0161ak pracovn\u00ed postup v\u00fdvoje chart\u016f byl zcela p\u0159epracov\u00e1n, a proto je t\u0159eba prov\u00e9st n\u011bkter\u00e9 zm\u011bny, aby bylo mo\u017en\u00e9 pokra\u010dovat ve v\u00fdvoji chart\u016f s Helmem 3. Zejm\u00e9na se zm\u011bnil syst\u00e9m spr\u00e1vy z\u00e1vislost\u00ed chart\u016f.<\/p>\n<p>Syst\u00e9m spr\u00e1vy z\u00e1vislost\u00ed chartu p\u0159e\u0161el z <code>requirements.yaml<\/code> a <code>requirements.lock<\/code> na <code>Chart.yaml<\/code> a <code>Chart.lock<\/code>. To znamen\u00e1, \u017ee chart, kter\u00fd pou\u017e\u00edval p\u0159\u00edkaz <code>helm dependency<\/code>, vy\u017eaduje ur\u010dit\u00e9 \u00fapravy, aby fungoval v Helmu 3.<\/p>\n<p>Pod\u00edvejme se na p\u0159\u00edklad. P\u0159id\u00e1me z\u00e1vislost k chartu v Helmu 2 a pod\u00edv\u00e1me se, co se zm\u011bn\u00ed p\u0159i p\u0159echodu na Helm 3.<\/p>\n<p>V Helmu 2 <code>requirements.yaml<\/code> vypadal n\u00e1sledovn\u011b:<\/p>\n<pre><code class=\"plaintext\">dependencies:\n- name: mariadb\n  version: 5.x.x\n  repository: https:\/\/kubernetes-charts.storage.googleapis.com\/\n  condition: mariadb.enabled\n  tags:\n    - database<\/code><\/pre>\n<p>\nV Helmu 3 bude stejn\u00e1 z\u00e1vislost odra\u017eena ve va\u0161em <code>Chart.yaml<\/code>:<\/p>\n<pre><code class=\"plaintext\">dependencies:\n- name: mariadb\n  version: 5.x.x\n  repository: https:\/\/kubernetes-charts.storage.googleapis.com\/\n  condition: mariadb.enabled\n  tags:\n    - database<\/code><\/pre>\n<p>\nChart\u016f se st\u00e1le na\u010d\u00edtaj\u00ed a umis\u0165uj\u00ed do adres\u00e1\u0159e <code>charts\/<\/code>, tak\u017ee subcharts <i>(subcharts)<\/i>, le\u017e\u00edc\u00ed v adres\u00e1\u0159i <code>charts\/<\/code>, budou nad\u00e1le fungovat beze zm\u011bny.<\/p>\n<h2>P\u0159edstavujeme Library Charts<\/h2>\n<p>\nHelm 3 podporuje typ chart\u016f, kter\u00fd byl nazv\u00e1n chartami-knihovnami <i>(library chart)<\/i>. Tento chart je pou\u017e\u00edv\u00e1n jin\u00fdmi chartami, ale s\u00e1m o sob\u011b nevytv\u00e1\u0159\u00ed \u017e\u00e1dn\u00e9 artefakty vyd\u00e1n\u00ed. \u0160ablony knihovny chart\u016f mohou deklarovat pouze prvky <code>definovat<\/code>. Jin\u00fd obsah je jednodu\u0161e ignorov\u00e1n. To umo\u017e\u0148uje u\u017eivatel\u016fm opakovan\u011b pou\u017e\u00edvat a sd\u00edlet k\u00f3dov\u00e9 fragmenty, kter\u00e9 lze vyu\u017e\u00edt v mnoha chartech, \u010d\u00edm\u017e se vyhne duplicit\u011b a dodr\u017euje princip <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Don%27t_repeat_yourself\">DRY<\/a><\/noindex>.<\/p>\n<p>Library charts se deklaruj\u00ed v sekci <code>z\u00e1vislosti<\/code> v souboru <code>Chart.yaml<\/code>. Instalace a spr\u00e1va nejsou odli\u0161n\u00e9 od ostatn\u00edch chart\u016f.<\/p>\n<pre><code class=\"plaintext\">dependencies:\n  - name: mylib\n    version: 1.x.x\n    repository: quay.io<\/code><\/pre>\n<p>\nT\u011b\u0161\u00edme se na mo\u017enosti pou\u017eit\u00ed, kter\u00e9 tento komponent otev\u0159e p\u0159ed v\u00fdvoj\u00e1\u0159i chart\u016f, stejn\u011b jako na osv\u011bd\u010den\u00e9 postupy, kter\u00e9 mohou vzniknout d\u00edky library charts.<\/p>\n<h2>Co d\u00e1l?<\/h2>\n<p>\nHelm 3.0.0-alpha.1 je z\u00e1kladem, na kter\u00e9m za\u010d\u00edn\u00e1me vytv\u00e1\u0159et novou verzi Helmu. V \u010dl\u00e1nku jsem popsal n\u011bkter\u00e9 zaj\u00edmav\u00e9 funkce Helmu 3. Mnoho z nich je zat\u00edm ve f\u00e1zi ran\u00e9ho v\u00fdvoje a to je v po\u0159\u00e1dku; podstata alpha verze spo\u010d\u00edv\u00e1 v testov\u00e1n\u00ed n\u00e1padu, shroma\u017e\u010fov\u00e1n\u00ed zp\u011btn\u00e9 vazby od prvn\u00edch u\u017eivatel\u016f a potvrzen\u00ed na\u0161ich p\u0159edpoklad\u016f.<\/p>\n<p>Jakmile bude alpha verze vyd\u00e1na <i>p\u0159ipome\u0148me, \u017ee to <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\/releases\/tag\/v3.0.0-alpha.1\">ji\u017e nastalo<\/a><\/noindex> \u2014 pozn. p\u0159ekl.)<\/i>, za\u010dneme p\u0159ij\u00edmat patche pro Helm 3 od komunity. Je t\u0159eba vytvo\u0159it spolehliv\u00fd z\u00e1klad, kter\u00fd umo\u017en\u00ed vyv\u00edjet a p\u0159ij\u00edmat nov\u00e9 funkce, a u\u017eivatel\u00e9 se mohou c\u00edtit zapojeni do procesu t\u00edm, \u017ee otev\u00edraj\u00ed tikety a p\u0159isp\u00edvaj\u00ed opravami.<\/p>\n<p>V \u010dl\u00e1nku jsem se sna\u017eil osv\u011btlit n\u011bkter\u00e1 v\u00fdznamn\u00e1 vylep\u0161en\u00ed, kter\u00e1 se objev\u00ed v Helm 3, nicm\u00e9n\u011b tento seznam rozhodn\u011b nelze pova\u017eovat za vy\u010derp\u00e1vaj\u00edc\u00ed. Plnohodnotn\u00fd pl\u00e1n pro Helm 3 zahrnuje novinky, jako jsou vylep\u0161en\u00e9 aktualiza\u010dn\u00ed strategie, hlub\u0161\u00ed integrace s OCI registry a pou\u017eit\u00ed JSON sch\u00e9mat pro validaci hodnot chart\u016f. Tak\u00e9 pl\u00e1nujeme vy\u010distit k\u00f3dovou z\u00e1kladnu a aktualizovat jej\u00ed \u010d\u00e1sti, kter\u00e9 z\u016fstaly bez pov\u0161imnut\u00ed posledn\u00ed t\u0159i roky.<\/p>\n<p>Pokud c\u00edt\u00edte, \u017ee jsme n\u011bco op missed, r\u00e1di usly\u0161\u00edme va\u0161e my\u0161lenky!<\/p>\n<p>P\u0159ipojte se k diskusi v na\u0161ich <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.slack.com\/\">Slack kan\u00e1lech<\/a><\/noindex>:<\/p>\n<ul>\n<li> <code>#helm-users<\/code> pro dotazy a prostou komunikaci s komunitou;<\/li>\n<li> <code>#helm-dev<\/code> pro diskusi pull request\u016f, k\u00f3du a chyb.<\/li>\n<\/ul>\n<p>\nM\u016f\u017eete se tak\u00e9 zapojit do na\u0161ich t\u00fddenn\u00edch Public Developer Calls, kter\u00e9 se konaj\u00ed ve \u010dtvrtek v 19:30 MSK. Setk\u00e1n\u00ed se v\u011bnuj\u00ed diskusi o \u00fakolech, na kter\u00fdch pracuj\u00ed kl\u00ed\u010dov\u00ed v\u00fdvoj\u00e1\u0159i a komunita, stejn\u011b jako t\u00e9mat\u016fm diskuse na t\u00fdden. Ka\u017ed\u00fd se m\u016f\u017ee p\u0159ipojit a z\u00fa\u010dastnit se setk\u00e1n\u00ed. Odkaz je dostupn\u00fd v Slack kan\u00e1lu <code>#helm-dev<\/code>.<\/p>\n<h2>P.S. od p\u0159ekladatele<\/h2>\n<p>\nP\u0159e\u010dt\u011bte si tak\u00e9 n\u00e1\u0161 blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/417079\/\">Bal\u00ed\u010dkov\u00fd mana\u017eer pro Kubernetes \u2014 Helm: minulost, p\u0159\u00edtomnost, budoucnost<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/438814\/\">St\u0159\u00edzliv\u00fd pohled na Helm 2: \u201eTakov\u00fd, jak\u00fd je\u2026\u201c<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/420437\/\">Praktick\u00e9 sezn\u00e1men\u00ed s bal\u00ed\u010dkov\u00fdm mana\u017eerem pro Kubernetes \u2014 Helm<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/441964\/\">Kubernetes tipy a triky: p\u0159eklad pracovn\u00edch zdroj\u016f v clusteru pod spr\u00e1vou Helm 2<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/336170\/\">Praktick\u00e1 zku\u0161enost s dapp. \u010c\u00e1st 2. Nasazen\u00ed Docker obraz\u016f do Kubernetes pomoc\u00ed Helmu<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/453734\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: 16 \u043c\u0430\u044f \u044d\u0442\u043e\u0433\u043e \u0433\u043e\u0434\u0430 \u2014 \u0437\u043d\u0430\u0447\u0438\u043c\u0430\u044f \u0432\u0435\u0445\u0430 \u0432 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f Kubernetes \u2014 Helm. \u0412 \u044d\u0442\u043e\u0442 \u0434\u0435\u043d\u044c \u0431\u044b\u043b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043f\u0435\u0440\u0432\u044b\u0439 \u0430\u043b\u044c\u0444\u0430-\u0440\u0435\u043b\u0438\u0437 \u0431\u0443\u0434\u0443\u0449\u0435\u0439 \u043a\u0440\u0443\u043f\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u2014 3.0. \u0415\u0451 \u0432\u044b\u0445\u043e\u0434 \u043f\u0440\u0438\u043d\u0435\u0441\u0451\u0442 \u0432 Helm \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0438 \u0434\u043e\u043b\u0433\u043e\u0436\u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043d\u043e\u0433\u0438\u0435 \u0432 Kubernetes-\u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435 \u0432\u043e\u0437\u043b\u0430\u0433\u0430\u044e\u0442 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u043d\u0430\u0434\u0435\u0436\u0434\u044b. \u041a \u0442\u0430\u043a\u043e\u0432\u044b\u043c \u043e\u0442\u043d\u043e\u0441\u0438\u043c\u0441\u044f \u0438 \u043c\u044b \u0441\u0430\u043c\u0438, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0430\u043a\u0442\u0438\u0432\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26173,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-34735","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=\"\u041f\u0440\u0438\u043c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/znakomstvo-s-helm-3\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 Helm 3 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/znakomstvo-s-helm-3\" \/>\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:00:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:00:06+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\udd47\u00davod do Helmu 3 | ProHoster","description":"Pozn.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/znakomstvo-s-helm-3","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\u0417\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u043e \u0441 Helm 3 | ProHoster","og:description":"\u041f\u0440\u0438\u043c.","og:url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/znakomstvo-s-helm-3","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:00:06+00:00","article:modified_time":"2019-10-31T19:00:06+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34735","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-21 20:26:53","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 23:08:04","updated":"2026-01-21 20:26:53","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/34735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=34735"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/34735\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/26173"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=34735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=34735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=34735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}