{"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\/sq\/blog\/administrirovanie\/ustrojstvo-helm-i-ego-podvodnye-kamni","title":{"rendered":"Pajisja Helm dhe pengesat e saj","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" 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\">Koncepci transportues i Typhon, Anton Swanepoel<\/a><\/noindex><\/p>\n<p>M\u00eb quajn\u00eb Dmitrij Sugrobo, jam zhvillues n\u00eb \u00abLerua Merlin\u00bb. N\u00eb k\u00ebt\u00eb artikull do t\u00eb flas se p\u00ebrse \u00ebsht\u00eb e nevojshme Helm, si e leht\u00ebson pun\u00ebn me Kubernetes, \u00e7far\u00eb ka ndryshuar n\u00eb versionin e tret\u00eb dhe si me ndihm\u00ebn e tij mund t\u00eb p\u00ebrdit\u00ebsojm\u00eb aplikacionet n\u00eb prodhim pa ndales\u00eb.<\/p>\n<p>Ky \u00ebsht\u00eb nj\u00eb p\u00ebrmbledhje e fjal\u00ebs n\u00eb konferenc\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/corp.mail.ru\/ru\/press\/events\/at-kubernetes-conference\/\">@Konferenca Kubernetes<\/a><\/noindex> duke <noindex><a rel=\"nofollow\" href=\"https:\/\/mcs.mail.ru\">Mail.ru Cloud Solutions<\/a><\/noindex> \u2014 n\u00ebse nuk d\u00ebshironi t\u00eb lexoni, shikoni videon.<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=\"Luaj videon\" 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>Pse p\u00ebrdorim Kubernetes n\u00eb prodhim<\/h2>\n<p>\n\u00abLerua Merlin\u00bb \u00ebsht\u00eb lider n\u00eb tregun e DIY-retaile n\u00eb Rusi dhe Evrop\u00eb. N\u00eb kompanin\u00eb ton\u00eb ka m\u00eb shum\u00eb se nj\u00ebqind zhvillues, 33,000 punonj\u00ebs t\u00eb brendsh\u00ebm dhe nj\u00eb num\u00ebr t\u00eb madh njer\u00ebzish q\u00eb vizitojn\u00eb hipermarketet dhe faqen ton\u00eb. P\u00ebr t\u00eb b\u00ebr\u00eb t\u00eb gjith\u00eb ata t\u00eb lumtur, ne vendos\u00ebm t\u00eb ndjekim qasjet standarde n\u00eb industri. T\u00eb zhvillojm\u00eb aplikacione t\u00eb reja duke p\u00ebrdorur arkitektur\u00ebn mikrosh\u00ebrbimor; p\u00ebr t\u2019i izoluar mjediset dhe p\u00ebr t\u00eb b\u00ebr\u00eb shp\u00ebrndarjen e duhur, t\u00eb p\u00ebrdorim kontejner\u00eb; dhe p\u00ebr orkestrimin t\u00eb p\u00ebrdorim Kubernetes. \u00c7mimi p\u00ebr p\u00ebrdorimin e orkestrator\u00ebve po b\u00ebhet gjithnj\u00eb e m\u00eb i lir\u00eb: n\u00eb treg po rritet numri i inxhinier\u00ebve q\u00eb zot\u00ebrojn\u00eb teknologjin\u00eb, shfaqen ofrues t\u00eb cil\u00ebt ofrojn\u00eb Kubernetes si nj\u00eb sh\u00ebrbim.<\/p>\n<p>Gjith\u00e7ka q\u00eb b\u00ebn Kubernetes, sigurisht, mund t\u00eb b\u00ebhet edhe me m\u00ebnyra t\u00eb tjera, p\u00ebr shembull, duke krijuar skripte me ndihm\u00ebn e ndonj\u00eb Jenkins dhe docker-compose, por p\u00ebrse duhet ta komplikoni jet\u00ebn, n\u00ebse ka nj\u00eb zgjidhje t\u00eb gatshme dhe t\u00eb besueshme? Prandaj arrit\u00ebm te Kubernetes dhe tani e p\u00ebrdorim at\u00eb n\u00eb prodhim p\u00ebr nj\u00eb vit. Aktualisht kemi nj\u00ebzet e kat\u00ebr klastera Kubernetes, m\u00eb e vjet\u00ebr se nj\u00eb vit, me rreth dyqind pod\u00eb.<\/p>\n<h2>Shkaku i numrit t\u00eb madh t\u00eb skedar\u00ebve YAML n\u00eb Kubernetes<\/h2>\n<p>\nP\u00ebr t\u00eb nisur nj\u00eb mikrosh\u00ebrbim n\u00eb Kubernetes, do t\u00eb krijojm\u00eb t\u00eb pakt\u00ebn pes\u00eb skedar\u00eb YAML: p\u00ebr Deployment, Sh\u00ebrbim, Ingress, ConfigMap, Sekrete \u2014 dhe do t'i d\u00ebrgojm\u00eb n\u00eb klaster. P\u00ebr aplikacionin tjet\u00ebr do t\u00eb shkruajm\u00eb t\u00eb nj\u00ebjtin paket\u00eb skedar\u00ebsh YAML, p\u00ebr at\u00eb t\u00eb tret\u00eb \u2014 nj\u00eb tjet\u00ebr dhe k\u00ebshtu me radh\u00eb. T\u00eb shumojm\u00eb numrin e dokumenteve me numrin e mjediseve, tashm\u00eb do t\u00eb kemi qindra skedar\u00eb, dhe kjo ende nuk p\u00ebrfshin mjediset dinamike.<\/p>\n<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" src=\"\/wp-content\/uploads\/2020\/02\/c46c3f5ae49cbefa4851cbb388bfd051.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAdam Reese, mbajt\u00ebs kryesor i Helm, futi konceptin \u201e<noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/cZ1S2Gp47ng?t=323\">Cikli i zhvillimit n\u00eb Kubernetes<\/a><\/noindex>\u201d, i cili duket k\u00ebshtu:<\/p>\n<ol>\n<li>Copy YAML \u2014 kopjoni skedarin YAML.<\/li>\n<li>Paste YAML \u2014 ngjitni at\u00eb.<\/li>\n<li>Fix Indents \u2014 rregulloni indentimet.<\/li>\n<li>Repeat \u2014 p\u00ebrs\u00ebriteni.<\/li>\n<\/ol>\n<p>\nNj\u00eb variant funksional, por duhet t\u00eb kopjoni shum\u00eb her\u00eb skedar\u00ebt YAML. P\u00ebr t\u00eb ndryshuar k\u00ebt\u00eb cik\u00ebl, u krijua Helm.<\/p>\n<h3>\u00c7far\u00eb \u00ebsht\u00eb Helm<\/h3>\n<p>\nS\u00eb pari, Helm \u2014<strong> , nj\u00eb grup utilitar\u00ebsh standard (binutils, coreutils, netutils, extrautils), shell-in e komandave<\/strong>, ndihmon n\u00eb gjetjen dhe instalimin e programeve t\u00eb nevojshme. P\u00ebr t\u00eb instaluar, p\u00ebr shembull, MongoDB nuk \u00ebsht\u00eb e nevojshme t\u00eb shkosh n\u00eb faqen zyrtare dhe t\u00eb shkarkosh binar\u00ebt, mjafton t\u00eb ekzekutosh komand\u00ebn <code>helm install stable\/mongodb<\/code>.<\/p>\n<p>S\u00eb dyti, Helm \u2014 <strong>shabllonizues<\/strong>, ndihmon n\u00eb parametrizimin e skedave. Le t\u00eb kthehemi n\u00eb situat\u00ebn me skedat YAML n\u00eb Kubernetes. \u00cbsht\u00eb m\u00eb e leht\u00eb t\u00eb shkruash t\u00eb nj\u00ebjt\u00ebn sked\u00eb YAML, t\u00eb shtosh disa placeholder, n\u00eb t\u00eb cilat Helm do t\u00eb vendos\u00eb vlerat. Pra, n\u00eb vend t\u00eb nj\u00eb grumbulli t\u00eb madh skedash YAML, do t\u00eb ket\u00eb nj\u00eb set shabllonash, n\u00eb t\u00eb cilat n\u00eb momentin e duhur do t\u00eb z\u00ebvend\u00ebsohen vlerat e nevojshme.<\/p>\n<p>S\u00eb tret\u00eb, Helm \u2014 <strong>master p\u00ebr desplejtimin<\/strong>. Me ndihm\u00ebn e tij, mund t\u00eb instalosh, rikthesh dhe p\u00ebrmir\u00ebsosh aplikacione. Le t\u00eb shqyrtojm\u00eb se si ta b\u00ebjm\u00eb k\u00ebt\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" src=\"\/wp-content\/uploads\/2020\/02\/8b517dbcf503ced229569fe3726418c8.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<h3>Si t\u00eb p\u00ebrdorim Helm p\u00ebr deploy-in e aplikacioneve tona<\/h3>\n<p>\nDo t\u00eb instalojm\u00eb klientin Helm n\u00eb kompjuter, duke ndjekur zyrtar\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/helm.sh\/docs\/intro\/install\/\">udh\u00ebzimet<\/a><\/noindex>. M\u00eb pas do t\u00eb krijojm\u00eb nj\u00eb set skedash YAML. N\u00eb vend t\u00eb caktimit t\u00eb vlerave specifike, do t\u00eb l\u00ebm\u00eb placeholder t\u00eb cilat n\u00eb t\u00eb ardhmen Helm do t'i mbush\u00eb me informacion. Ky set skedash quhet Helm chart. Mund ta d\u00ebrgojm\u00eb n\u00eb klientin e komand\u00ebs Helm n\u00eb tri m\u00ebnyra:<\/p>\n<ul>\n<li>t\u00eb caktosh dosjen me shabllona;<\/li>\n<li>ta paketosh n\u00eb nj\u00eb arkiv .tar dhe t\u00eb tregosh p\u00ebr t\u00eb;<\/li>\n<li>t\u00eb vendos\u00ebsh shabllonin n\u00eb nj\u00eb repository t\u00eb larg\u00ebt dhe t\u00eb shtosh lidhjen e repository-t n\u00eb klientin Helm.<\/li>\n<\/ul>\n<p>\nNevojitet gjithashtu nj\u00eb sked\u00eb me vlera \u2014 values.yaml. T\u00eb dh\u00ebnat nga aty do t\u00eb vendosen n\u00eb shabllon. Le t\u00eb krijojm\u00eb edhe at\u00eb.<\/p>\n<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" src=\"\/wp-content\/uploads\/2020\/02\/c0fe24cc8186640147f95ce201794d96.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nN\u00eb versionin e dyt\u00eb t\u00eb Helm ka nj\u00eb aplikacion t\u00eb shtuar serveri \u2014 Tiller. Ai \u00ebsht\u00eb jasht\u00eb Kubernetes dhe pret k\u00ebrkesa nga klienti Helm, dhe kur thirret, vendos vlerat e nevojshme n\u00eb shabllon dhe e d\u00ebrgon n\u00eb Kubernetes.<\/p>\n<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" src=\"\/wp-content\/uploads\/2020\/02\/6b821a0bb4680829d5ce9982d2bb4c55.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nHelm 3 \u00ebsht\u00eb m\u00eb i thjesht\u00eb: n\u00eb vend t\u00eb p\u00ebrpunimit t\u00eb shablloneve n\u00eb server, informacioni tani p\u00ebrpunoj\u00eb plot\u00ebsisht n\u00eb an\u00ebn e klientit Helm dhe d\u00ebrgohet drejtp\u00ebrdrejt n\u00eb Kubernetes API. Ky thjeshtim rrit sigurin\u00eb e grupit dhe leht\u00ebson procesin e shp\u00ebrndarjes.<\/p>\n<p><strong>Si funksionon gjith\u00e7ka<\/strong><\/p>\n<p>Ekzekutojm\u00eb komand\u00ebn <code>helm install<\/code>. Tregojm\u00eb emrin e l\u00ebshimit t\u00eb aplikacionit, japim rrug\u00ebn deri te values.yaml. N\u00eb fund, tregojm\u00eb repository-n ku ndodhet chart dhe emrin e chart-it. N\u00eb k\u00ebt\u00eb rast, ato jan\u00eb \u00ablmru\u00bb dhe \u00abbestchart\u00bb p\u00ebrkat\u00ebsisht.<\/p>\n<pre><code class=\"plaintext\">helm install --name bestapp --values values.yaml lmru\/bestchart\n<\/code><\/pre>\n<p>\nEkzekutimi i komand\u00ebs \u00ebsht\u00eb i mundsh\u00ebm vet\u00ebm nj\u00eb her\u00eb, gjat\u00eb ekzekutimit t\u00eb p\u00ebrs\u00ebritur n\u00eb vend t\u00eb <code>instalo<\/code> duhet t\u00eb p\u00ebrdoret <code>upgrade<\/code>. P\u00ebr thjesht\u00ebsin\u00eb, n\u00eb vend t\u00eb dy komandave, mund t\u00eb ekzekutoni komand\u00ebn <code>upgrade<\/code> me nj\u00eb \u00e7el\u00ebs shtes\u00eb <code>--install<\/code>N\u00eb ekzekutimin e par\u00eb, Helm do t\u00eb d\u00ebrgoj\u00eb nj\u00eb komand\u00eb p\u00ebr t\u00eb instaluar nj\u00eb rrelease, dhe m\u00eb pas do ta p\u00ebrmir\u00ebsoj\u00eb at\u00eb.<\/p>\n<pre><code class=\"plaintext\">helm upgrade --install bestapp --values values.yaml lmru\/bestchart\n<\/code><\/pre>\n<p><\/p>\n<h2>Pikat e v\u00ebshtira t\u00eb shp\u00ebrndarjes s\u00eb versioneve t\u00eb reja t\u00eb aplikacioneve me Helm<\/h2>\n<p>\n<i>N\u00eb k\u00ebt\u00eb pik\u00eb t\u00eb tregimit, un\u00eb luaj me sall\u00ebn n\u00eb \"Kush do t\u00eb b\u00ebhet milioner\", dhe ne zbulojm\u00eb se si ta b\u00ebjm\u00eb Helm t\u00eb p\u00ebrmir\u00ebsoj\u00eb versionin e aplikacionit. <\/i><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/w1PhTe9gnOI?list=PLQzTaxmOHjnv0tP_HDxsIvcuac2kkIJTQ&amp;t=778\"><i>Shiko videon<\/i><\/a><\/noindex>.<\/p>\n<p>Kur studioja funksionimin e Helm, m\u00eb befasoi sjellja e \u00e7uditshme gjat\u00eb p\u00ebrpjekjes p\u00ebr t\u00eb p\u00ebrmir\u00ebsuar versionet e aplikacioneve q\u00eb ishin aktivizuar. Kodi i aplikacionit u p\u00ebrmir\u00ebsua, ngarkohet nj\u00eb imazh i ri n\u00eb docker registry, d\u00ebrgoj komand\u00ebn p\u00ebr shp\u00ebrndarje \u2013 dhe asgj\u00eb nuk ndodhi. M\u00eb posht\u00eb jan\u00eb disa metoda jo shum\u00eb t\u00eb suksesshme p\u00ebr p\u00ebrmir\u00ebsimin e aplikacioneve. Studimi i secil\u00ebs nga k\u00ebto n\u00eb m\u00ebnyr\u00eb m\u00eb t\u00eb detajuar fillon t\u00eb kuptoj\u00eb struktur\u00ebn e brendshme t\u00eb mjetit dhe arsyet e k\u00ebtij sjelljeje q\u00eb nuk \u00ebsht\u00eb aq e qart\u00eb.<\/p>\n<p><strong>Metoda 1. Mos ndryshoni informacionin q\u00eb nga aktivizimi i fundit<\/strong><\/p>\n<p>Si\u00e7 thot\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/helm.sh\/docs\/intro\/using_helm\/#helm-upgrade-and-helm-rollback-upgrading-a-release-and-recovering-on-failure\">faqja zyrtare<\/a><\/noindex> Helm, \"Kubernetes chart jan\u00eb t\u00eb m\u00ebdha dhe t\u00eb komplikuara, prandaj Helm p\u00ebrpiqet t\u00eb mos prek\u00eb asgj\u00eb pa nevoj\u00eb\". Prandaj, n\u00ebse p\u00ebrmir\u00ebson versionin e fundit t\u00eb imazhit t\u00eb aplikacionit n\u00eb registry docker dhe ekzekuton komand\u00ebn <code>helm upgrade<\/code>, at\u00ebher\u00eb nuk do t\u00eb ndodh\u00eb asgj\u00eb. Helm do t\u00eb mendoj\u00eb q\u00eb nuk ka ndryshime dhe nuk do t\u00eb jet\u00eb e nevojshme t\u00eb d\u00ebrgohet nj\u00eb komand\u00eb p\u00ebr p\u00ebrmir\u00ebsimin e aplikacionit n\u00eb Kubernetes.<\/p>\n<blockquote><p>K\u00ebtu dhe m\u00eb tej, etiketimi latest \u00ebsht\u00eb treguar vet\u00ebm si shembull. Kur p\u00ebrdoret ky etiketim, Kubernetes do t\u00eb shkarkoj\u00eb gjithmon\u00eb imazhin nga registry docker, pavar\u00ebsisht nga parametri imagePullPolicy. P\u00ebrdorimi i latest n\u00eb prodhim \u00ebsht\u00eb i papreferuar dhe shkakton efekte an\u00ebsore.<\/p><\/blockquote>\n<p>\n<strong>Metoda 2. P\u00ebrt\u00ebritni LABEL n\u00eb imazh<\/strong><\/p>\n<p>Si\u00e7 shkruhet n\u00eb t\u00eb nj\u00ebjtin <noindex><a rel=\"nofollow\" href=\"https:\/\/helm.sh\/docs\/intro\/using_helm\/#helm-upgrade-and-helm-rollback-upgrading-a-release-and-recovering-on-failure\">dokumentacionin<\/a><\/noindex>, \"Helm do t\u00eb p\u00ebrmir\u00ebsoj\u00eb aplikacionin vet\u00ebm n\u00ebse ai ka ndryshuar q\u00eb nga ky\u00e7ja e fundit\". Nj\u00eb opsion logjik p\u00ebr k\u00ebt\u00eb do t\u00eb ishte p\u00ebrmir\u00ebsimi i etiket\u00ebs LABEL n\u00eb imazhin e dockerit. Megjithat\u00eb, Helm nuk shikon brenda imazheve t\u00eb aplikacioneve dhe nuk ka njohuri p\u00ebr ndonj\u00eb ndryshim n\u00eb to. P\u00ebr rrjedhoj\u00eb, gjat\u00eb p\u00ebrmir\u00ebsimit t\u00eb etiketave n\u00eb imazh, Helm nuk do t\u00eb dij\u00eb p\u00ebr to, dhe komanda p\u00ebr p\u00ebrmir\u00ebsimin e aplikacionit n\u00eb Kubernetes nuk do t\u00eb d\u00ebrgohet.<\/p>\n<p><strong>Metoda 3. P\u00ebrdorni \u00e7el\u00ebsin <code>--force<\/code><\/strong><\/p>\n<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" src=\"\/wp-content\/uploads\/2020\/02\/4888cddfb7698b7044ab31b6f6070063.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nT\u00eb kthehemi te manualet dhe t\u00eb gjejm\u00eb \u00e7el\u00ebsin e nevojsh\u00ebm. \u00c7el\u00ebsi q\u00eb p\u00ebrputhet m\u00eb mir\u00eb me kuptimin \u00ebsht\u00eb <code>--force<\/code>. Megjith\u00ebse emri flet vet\u00eb, sjellja ndryshe nga ajo q\u00eb pritet. N\u00eb vend t\u00eb forcimit t\u00eb azhurnimit t\u00eb aplikacionit, q\u00ebllimi i tij real \u00ebsht\u00eb rikuperimi i nj\u00eb versioni q\u00eb ndodhet n\u00eb statusin FAILED. N\u00ebse nuk e p\u00ebrdorni k\u00ebt\u00eb \u00e7el\u00ebs, duhet t\u00eb ekzekutoni komandat nj\u00eb pas nj\u00eb. <code>helm delete &amp;&amp; helm install --replace<\/code>. N\u00eb vend t\u00eb k\u00ebsaj, propozohet p\u00ebrdorimi i \u00e7el\u00ebsit <code>--force<\/code>, i cili automatizon ekzekutimin e rrjedhsh\u00ebm t\u00eb k\u00ebtyre komandave. M\u00eb shum\u00eb informacion n\u00eb k\u00ebt\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\/pull\/3597\">pull-request.<\/a><\/noindex>. P\u00ebr ta th\u00ebn\u00eb Helm t\u00eb azhurnoj\u00eb versionin e aplikacionit, fatkeq\u00ebsisht, ky \u00e7el\u00ebs nuk do t\u00eb funksionoj\u00eb.<\/p>\n<p><strong>M\u00ebnyra 4. T\u00eb ndryshoni etiketat p\u00ebrmes Kubernetesit.<\/strong><\/p>\n<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" src=\"\/wp-content\/uploads\/2020\/02\/0a35e7aaa7479685f07dd5b935c95eb1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAzhurnimi i etiketave drejtp\u00ebrdrejt n\u00eb klaster me an\u00eb t\u00eb komand\u00ebs <code>kubectl edit<\/code> \u00ebsht\u00eb nj\u00eb ide e keqe. Ky veprim do t\u00eb \u00e7oj\u00eb n\u00eb inconsistency midis aplikacionit n\u00eb funksionim dhe asaj q\u00eb ishte d\u00ebrguar n\u00eb fillim p\u00ebr shp\u00ebrndarje. Sjellja e Helm gjat\u00eb shp\u00ebrndarjes n\u00eb k\u00ebt\u00eb rast ndryshon nga versioni i tij: Helm 2 nuk do t\u00eb b\u00ebj\u00eb asgj\u00eb, nd\u00ebrsa Helm 3 do t\u00eb shp\u00ebrndaj\u00eb nj\u00eb version t\u00eb ri t\u00eb aplikacionit. P\u00ebr t\u00eb kuptuar shkakun, duhet t\u00eb kuptohet se si funksionon Helm.<\/p>\n<h3>Si \u00ebsht\u00eb e strukturuar Helm.<\/h3>\n<p>\nP\u00ebr t\u00eb p\u00ebrcaktuar n\u00ebse aplikacioni ka ndryshuar q\u00eb nga l\u00ebshimi i fundit, Helm mund t\u00eb shfryt\u00ebzoj\u00eb:<\/p>\n<ul>\n<li>aplikacionin n\u00eb funksionim n\u00eb Kubernetes;<\/li>\n<li>fajllin e ri values.yaml dhe chart-in aktual;<\/li>\n<li>informacionin e brendsh\u00ebm t\u00eb Helm mbi l\u00ebshimet.<\/li>\n<\/ul>\n<p><b class=\"spoiler_title\">P\u00ebr ata m\u00eb kurioz\u00eb: ku e ruan Helm informacionin e brendsh\u00ebm mbi l\u00ebshimet?<\/b>Duke ekzekutuar komand\u00ebn <code>helm history<\/code>, ne do t\u00eb marrim t\u00eb gjith\u00eb informacionin mbi versionet e instaluara me an\u00eb t\u00eb Helm.<\/p>\n<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" src=\"\/wp-content\/uploads\/2020\/02\/0bf3afeb9c4947220474af648a1fa1ad.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nKa gjithashtu informacion t\u00eb detajuar mbi shabllonet dhe vlerat e d\u00ebrguara. Mund ta k\u00ebrkojm\u00eb at\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" src=\"\/wp-content\/uploads\/2020\/02\/858560c0f4adf7375060cec339df7574.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nN\u00eb versionin e dyt\u00eb t\u00eb Helm, ky informacion ndodhet n\u00eb t\u00eb nj\u00ebjtin em\u00ebrhap\u00ebsir\u00eb ku \u00ebsht\u00eb aktivizuar Tiller (n\u00eb m\u00ebnyr\u00eb t\u00eb paracaktuar \u2014 kube-system), n\u00eb ConfigMap, t\u00eb cilin e sh\u00ebnon etiket\u00eb \"OWNER=TILLER\":<\/p>\n<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" src=\"\/wp-content\/uploads\/2020\/02\/ba665a079ccddeb4ca7049822c42a498.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nMe paraqitjen e versionit t\u00eb tret\u00eb t\u00eb Helm, informacioni u transferua n\u00eb sekrete, p\u00ebr m\u00eb shum\u00eb n\u00eb t\u00eb nj\u00ebjtin em\u00ebrhap\u00ebsir\u00eb ku \u00ebsht\u00eb aktivizuar aplikacioni. Fal\u00eb k\u00ebsaj, \u00ebsht\u00eb b\u00ebr\u00eb e mundur t\u00eb funksionojn\u00eb nj\u00ebkoh\u00ebsisht shum\u00eb aplikacione n\u00eb em\u00ebrhap\u00ebsira t\u00eb ndryshme me t\u00eb nj\u00ebjtin em\u00ebr l\u00ebshimi. N\u00eb versionin e dyt\u00eb kjo ishte nj\u00eb dhimbje e madhe koke, kur em\u00ebrhap\u00ebsirat jan\u00eb t\u00eb izoluar, por mund t\u00eb ndikojn\u00eb n\u00eb nj\u00ebra-tjetr\u00ebn.<\/p>\n<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" src=\"\/wp-content\/uploads\/2020\/02\/b9b82b7c86320a0e3642e4265a1f0241.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>\nHelm i dyt\u00eb, kur p\u00ebrpiqet t\u00eb kuptoj\u00eb n\u00ebse ka nevoj\u00eb p\u00ebr azhurnim, p\u00ebrdor vet\u00ebm dy burime informacioni: at\u00eb q\u00eb i \u00ebsht\u00eb dh\u00ebn\u00eb tani, dhe informacionin e brendsh\u00ebm mbi l\u00ebshimet, i cili ndodhet n\u00eb ConfigMap.<\/p>\n<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" src=\"\/wp-content\/uploads\/2020\/02\/0550ba5f6ce7be1e7f666dfc65e639ad.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nHelm-i tret\u00eb p\u00ebrdor strategjin\u00eb three-way merge: p\u00ebrve\u00e7 informacionit q\u00eb merr parasysh, ai merr gjithashtu n\u00eb konsiderat\u00eb aplikacionin, i cili po punon aktualisht n\u00eb Kubernetes.<\/p>\n<p><img decoding=\"async\" alt=\"Pajisja Helm dhe pengesat e saj\" src=\"\/wp-content\/uploads\/2020\/02\/252085adb83e097e01b4a0655706ede5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nP\u00ebr k\u00ebt\u00eb arsye, versioni i vjet\u00ebr i Helm nuk do t\u00eb b\u00ebj\u00eb asgj\u00eb, pasi nuk merr n\u00eb konsiderat\u00eb informacionin e aplikacionit n\u00eb klaster, nd\u00ebrsa Helm 3 do t\u00eb marr\u00eb ndryshimet dhe do t\u00eb d\u00ebrgoj\u00eb nj\u00eb aplikacion t\u00eb ri p\u00ebr t\u00eb u implementuar.<\/p>\n<p><strong>Metoda 5. P\u00ebrdorni \u00e7el\u00ebsin &#8212;recreate-pods<\/strong><\/p>\n<p>Me \u00e7el\u00ebsin <code>--recreate-pods<\/code> mund t\u00eb arrihet ajo q\u00eb fillimisht ishte planifikuar t\u00eb arrihej me \u00e7el\u00ebsin <code>--force<\/code>. Kontejner\u00ebt do t\u00eb rinis\u00ebn dhe, sipas politik\u00ebs imagePullPolicy: Always p\u00ebr etiket\u00ebn latest (p\u00ebr k\u00ebt\u00eb n\u00eb sh\u00ebnimin m\u00eb sip\u00ebr), Kubernetes do t\u00eb shkarkoj\u00eb dhe nis\u00eb versionin e ri t\u00eb imazhit. Kjo do t\u00eb b\u00ebhet n\u00eb nj\u00eb m\u00ebnyr\u00eb jo ideale: pa marr\u00eb parasysh StrategyType t\u00eb implementimit, do t\u00eb fik\u00eb papritmas t\u00eb gjitha instancat e vjetra t\u00eb aplikacionit dhe do t\u00eb nis\u00eb t\u00eb rejat. Gjat\u00eb rinisjes, sistemi nuk do t\u00eb funksionoj\u00eb, p\u00ebrdoruesit do t\u00eb vuajn\u00eb.<\/p>\n<p>Edhe n\u00eb vet\u00eb Kubernetes, nj\u00eb problem i ngjash\u00ebm ka ekzistuar p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb. Dhe ja, pas 4 vjet\u00ebsh q\u00eb nga hapja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes\/kubernetes\/issues\/13488\">\u00c7\u00ebshtja<\/a><\/noindex>, problemi \u00ebsht\u00eb zgjidhur, dhe duke filluar nga versioni 1.15 i Kubernetes, \u00ebsht\u00eb e mundur t\u00eb b\u00ebhet rolling-restart i pod\u00ebve.<\/p>\n<p>Helm thjesht fik t\u00eb gjitha aplikacionet dhe nis af\u00ebr kontejner\u00eb t\u00eb rinj. N\u00eb prodhim nuk duhet b\u00ebr\u00eb k\u00ebshtu, p\u00ebr t\u00eb shmangur ndalimin e aplikacionit. Kjo \u00ebsht\u00eb e nevojshme vet\u00ebm p\u00ebr nevojat e zhvillimit, mund t\u00eb b\u00ebhet vet\u00ebm n\u00eb ambientet stage.<\/p>\n<h2>Si t\u00eb p\u00ebrdit\u00ebsoni versionin e aplikacionit me ndihm\u00ebn e Helm?<\/h2>\n<p>\nDo t\u00eb ndryshojm\u00eb vlerat q\u00eb d\u00ebrgohen te Helm. N\u00eb p\u00ebrgjith\u00ebsi, k\u00ebto jan\u00eb vlera q\u00eb vendosen n\u00eb vend t\u00eb etiket\u00ebs s\u00eb imazhit. N\u00eb rastin e latest, e cila p\u00ebrdoret shpesh p\u00ebr ambientet jo-prodhuese, informacioni i ndryshuesh\u00ebm \u00ebsht\u00eb nj\u00eb anotim, i cili p\u00ebr Kubernetes \u00ebsht\u00eb i padobish\u00ebm, por p\u00ebr Helm do t\u00eb sh\u00ebrbej\u00eb si nj\u00eb sinjal p\u00ebr nevoj\u00ebn p\u00ebr t\u00eb p\u00ebrdit\u00ebsuar aplikacionin. Mund\u00ebsit\u00eb p\u00ebr t\u00eb mbushur vler\u00ebn e anotimit jan\u00eb:<\/p>\n<ol>\n<li><strong>Vler\u00eb t\u00eb rast\u00ebsishme<\/strong> me funksionin standard \u2014 <code>{{ randAlphaNum 6 }}<\/code>. <br \/>\nKa nj\u00eb detaj: pas \u00e7do implementimi me p\u00ebrdorimin e chartit me nj\u00eb variab\u00ebl t\u00eb till\u00eb, vlera e anotimit do t\u00eb jet\u00eb unike, dhe Helm do t\u00eb mendoj\u00eb se ka ndryshime. Ndryshe, gjithmon\u00eb do t\u00eb ri-nisim aplikacionin, edhe n\u00ebse nuk e kemi nd\u00ebrruar versionin e tij. Kjo nuk \u00ebsht\u00eb kritike, sepse nuk do t\u00eb ket\u00eb ndalime, por megjithat\u00eb \u00ebsht\u00eb e pak\u00ebndshme.<\/li>\n<li>T\u00eb vendosim <strong>dat\u00ebn dhe koh\u00ebn aktuale<\/strong> \u2014 <code>{{ .Release.Date }}<\/code>. <br \/>\nVarianti \u00ebsht\u00eb i ngjash\u00ebm me vler\u00ebn e rast\u00ebsishme me nj\u00eb variab\u00ebl gjithmon\u00eb unike.<\/li>\n<li>Nj\u00eb m\u00ebnyr\u00eb m\u00eb e sakt\u00eb \u00ebsht\u00eb t\u00eb p\u00ebrdorni <strong>shuma kontrolluese<\/strong>. Ky \u00ebsht\u00eb SHA i imazhit ose SHA i angazhimit t\u00eb fundit n\u00eb git \u2014 <code>{{ .Values.sha }}<\/code>. <br \/>\nDuhet t\u00eb llogariten dhe t\u00eb d\u00ebrgohen n\u00eb klientin Helm n\u00eb an\u00ebn e thirrjes, p\u00ebr shembull n\u00eb Jenkins. N\u00ebse aplikacioni ndryshon, at\u00ebher\u00eb dhe shuma kontrolluese do t\u00eb ndryshoj\u00eb. Pra, Helm do t\u00eb azhurnoj\u00eb aplikacionin vet\u00ebm kur \u00ebsht\u00eb e nevojshme.<\/li>\n<\/ol>\n<p><\/p>\n<h2>T\u00eb p\u00ebrmbledhim p\u00ebrpjekjet tona<\/h2>\n<p><\/p>\n<ul>\n<li>Helm b\u00ebn ndryshime n\u00eb nj\u00eb m\u00ebnyr\u00eb t\u00eb vog\u00ebl invazive, prandaj \u00e7do ndryshim n\u00eb nivelin e imazhit t\u00eb aplikacionit n\u00eb Docker Registry nuk do t\u00eb rezultoj\u00eb n\u00eb nj\u00eb azhurnim: pas ekzekutimit t\u00eb komand\u00ebs, nuk do t\u00eb ndodh\u00eb asgj\u00eb.<\/li>\n<li>\u00c7el\u00ebsi <code>--force<\/code> p\u00ebrdoret p\u00ebr rikthimin e l\u00ebshimeve problematike dhe nuk \u00ebsht\u00eb i lidhur me azhurnimin e detyruesh\u00ebm.<\/li>\n<li>\u00c7el\u00ebsi <code>--recreate-pods<\/code> do t\u00eb azhurnoj\u00eb aplikacionet me forc\u00eb, por do ta b\u00ebj\u00eb k\u00ebt\u00eb n\u00eb nj\u00eb m\u00ebnyr\u00eb vandaliste: do t\u00eb ndal\u00eb menj\u00ebher\u00eb t\u00eb gjitha kontejner\u00ebt. Kjo do t\u00eb d\u00ebmtoj\u00eb p\u00ebrdoruesit, n\u00eb prodhim nuk \u00ebsht\u00eb e nevojshme t\u00eb veprohet k\u00ebshtu.<\/li>\n<li>T\u00eb b\u00ebjm\u00eb ndryshime drejtp\u00ebrdrejt n\u00eb klasterin Kubernetes me komand\u00ebn <code>kubectl edit<\/code> nuk duhet: do t\u00eb shkelim nj\u00ebtrajtshm\u00ebrin\u00eb, dhe sjellja do t\u00eb ndryshoj\u00eb n\u00eb var\u00ebsi t\u00eb versionit t\u00eb Helm.<\/li>\n<li>Me daljen e versionit t\u00eb ri t\u00eb Helm ka lindur shum\u00eb nuanca. C\u00ebshtjet n\u00eb depohelm jan\u00eb p\u00ebrshkruar n\u00eb nj\u00eb m\u00ebnyr\u00eb t\u00eb qart\u00eb, ato do t'ju ndihmojn\u00eb t\u00eb kuptoni detajet.<\/li>\n<li>Shtimi i nj\u00eb annotimi t\u00eb ndryshuesh\u00ebm n\u00eb chart do ta b\u00ebj\u00eb at\u00eb m\u00eb fleksib\u00ebl. Kjo do t\u00eb lejoj\u00eb q\u00eb aplikacioni t\u00eb avanconet n\u00eb m\u00ebnyr\u00eb t\u00eb duhur, pa ndalesa.<\/li>\n<\/ul>\n<p>\nNj\u00eb mendim nga kategoria \"paqe n\u00eb t\u00eb gjith\u00eb bot\u00ebn\", q\u00eb funksionon n\u00eb t\u00eb gjitha fushat e jet\u00ebs: lexoni udh\u00ebzimin para p\u00ebrdorimit, jo pas. Vet\u00ebm duke pasur informacion t\u00eb plot\u00eb, do t\u00eb jet\u00eb e mundur t\u00eb nd\u00ebrtohen sisteme t\u00eb besueshme dhe t\u00eb b\u00ebhen p\u00ebrdoruesit t\u00eb lumtur.<\/p>\n<p><strong>Lidhje t\u00eb tjera rreth tem\u00ebs:<\/strong><\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/453734\/\">Takimi me <i>Helm<\/i> 3<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/helm.sh\/\">Faqja zyrtare e Helm<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/helm\/helm\">Depoja Helm n\u00eb GitHub<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/mailru\/blog\/425343\/\">25 mjete t\u00eb dobishme Kubernetes: implementimi dhe menaxhimi<\/a><\/noindex><\/li>\n<\/ol>\n<p>\nKy raport u paraqit p\u00ebr her\u00eb t\u00eb par\u00eb n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/corp.mail.ru\/ru\/press\/events\/at-kubernetes-conference\/\">@Konferenca Kubernetes<\/a><\/noindex> nga Mail.ru Cloud Solutions. Shikoni <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/playlist?list=PLQzTaxmOHjnv0tP_HDxsIvcuac2kkIJTQ\">video<\/a><\/noindex> prezentime t\u00eb tjera dhe abonohuni n\u00eb njoftimet e ngjarjeve n\u00eb Telegram <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/k8s_mail\">Rreth Kubernetes n\u00eb Mail.ru Group<\/a><\/noindex>.<br \/>\n<br \/>Burimi: <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.2 - 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\/sq\/blog\/administrirovanie\/ustrojstvo-helm-i-ego-podvodnye-kamni\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\/sq\/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\udd47Struktura e Helm dhe minat e tij | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/ustrojstvo-helm-i-ego-podvodnye-kamni","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/70954","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=70954"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/70954\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/70955"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=70954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=70954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=70954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}