{"id":83787,"date":"2020-06-03T07:42:26","date_gmt":"2020-06-03T05:42:26","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/devoxx-uk-kubernetes-v-prodakshene-blue-green-deployment-avtomasshtabirovanie-i-avtomatizacziya-razvertyvaniya-chast-2"},"modified":"2020-06-03T07:42:26","modified_gmt":"2020-06-03T05:42:26","slug":"devoxx-uk-kubernetes-v-prodakshene-blue-green-deployment-avtomasshtabirovanie-i-avtomatizacziya-razvertyvaniya-chast-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/devoxx-uk-kubernetes-v-prodakshene-blue-green-deployment-avtomasshtabirovanie-i-avtomatizacziya-razvertyvaniya-chast-2","title":{"rendered":"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Kubernetes je skvel\u00fd n\u00e1stroj na sp\u00fa\u0161\u0165anie kontajnerov Docker v klastrovom produk\u010dnom prostred\u00ed. Existuj\u00fa v\u0161ak \u00falohy, ktor\u00e9 Kubernetes nie je schopn\u00fd vyrie\u0161i\u0165. Pri \u010dastom nasaden\u00ed v pracovnom prostred\u00ed potrebujeme plne automatizovan\u00e9 Blue\/Green deployment, aby sme sa vyhli prestojom v tomto procese, pri\u010dom je tie\u017e potrebn\u00e9 spracov\u00e1va\u0165 extern\u00e9 HTTP po\u017eiadavky a vykon\u00e1va\u0165 SSL odovzdanie. To si vy\u017eaduje integr\u00e1ciu s vyrovn\u00e1va\u010dom z\u00e1\u0165a\u017ee, ako je ha-proxy. \u010eal\u0161ou \u00falohou je poloaautomatick\u00e9 \u0161k\u00e1lovanie samotn\u00e9ho klastru Kubernetes pri pr\u00e1ci v cloudovom prostred\u00ed, napr\u00edklad \u010diasto\u010dn\u00e9 zn\u00ed\u017eenie rozsahu klastru v no\u010dn\u00fdch hodin\u00e1ch.<\/p>\n<p>Hoci Kubernetes tieto funkcie nem\u00e1 priamo \u201ez krabice\u201c, poskytuje API, ktor\u00e9 m\u00f4\u017eete vyu\u017ei\u0165 na rie\u0161enie podobn\u00fdch \u00faloh. N\u00e1stroje na automatizovan\u00e9 Blue\/Green nasadenie a \u0161k\u00e1lovanie klastru Kubernetes boli vyvinut\u00e9 v r\u00e1mci projektu Cloud RTI, ktor\u00fd bol vytvoren\u00fd na z\u00e1klade open-source.<\/p>\n<p>V tomto \u010dl\u00e1nku, prepisovan\u00ed videa, sa hovor\u00ed o tom, ako nastavi\u0165 Kubernetes spolu s \u010fal\u0161\u00edmi komponentmi s otvoren\u00fdm zdrojov\u00fdm k\u00f3dom na z\u00edskanie pripraven\u00e9ho na produkciu prostredia, ktor\u00e9 bez prestojov v produkcii pr\u00edjma k\u00f3d z git commit zmien.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/43a4ba56526a91b6f3d1fb16c159cc1b.jpg\" style=\"display:block;margin: 0 auto;\" \/><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/504666\/\">DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 1<\/a><\/noindex><\/p>\n<p>Tak\u017ee po tom, ako ste z\u00edskali pr\u00edstup k svoj\u00edm aplik\u00e1ci\u00e1m z vonkaj\u0161ieho sveta, m\u00f4\u017eete prejs\u0165 na pln\u00e9 nastavenie automatiz\u00e1cie, teda krok, na ktorom m\u00f4\u017eete vykona\u0165 git commit a uisti\u0165 sa, \u017ee tento git commit kon\u010d\u00ed v produkcii. Samozrejme, \u017ee pri realiz\u00e1cii t\u00fdchto krokov, pri nasaden\u00ed, sa nechceme stret\u00e1va\u0165 s prestojmi. Tak\u017ee ak\u00e1ko\u013evek automatiz\u00e1cia v Kubernetes za\u010d\u00edna s API. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/aa470c1562e49d98a164e0485196426e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKubernetes nie je n\u00e1stroj, ktor\u00fd m\u00f4\u017eete produkt\u00edvne pou\u017e\u00edva\u0165 \u201epriamo z krabice\u201c. Samozrejme, m\u00f4\u017eete to tak robi\u0165, pou\u017e\u00edva\u0165 kubectl a podobne, ale API je st\u00e1le najzauj\u00edmavej\u0161ou a naju\u017eito\u010dnej\u0161ou vecou tejto platformy. Pou\u017eit\u00edm API ako sady funkci\u00ed, m\u00f4\u017eete ma\u0165 pr\u00edstup prakticky k \u010domuko\u013evek, \u010do chcete robi\u0165 v Kubernetes. Samotn\u00fd kubectl tie\u017e pou\u017e\u00edva REST API. <\/p>\n<p>Toto je REST, tak\u017ee m\u00f4\u017eete na pr\u00e1cu s t\u00fdmto API pou\u017ei\u0165 ak\u00e9ko\u013evek jazyky a n\u00e1stroje, ale va\u0161e \u017eivoty si zna\u010dne u\u013eah\u010dia pou\u017e\u00edvate\u013esk\u00e9 kni\u017enice. M\u00f4j t\u00edm nap\u00edsal dve tak\u00e9to kni\u017enice: jednu pre Java \/ OSGi a jednu pre Go. Druh\u00e1 sa nepou\u017e\u00edva \u010dasto, ale v ka\u017edom pr\u00edpade m\u00e1te k dispoz\u00edcii tieto u\u017eito\u010dn\u00e9 n\u00e1stroje. Predstavuj\u00fa \u010diasto\u010dne licencovan\u00fd open-source projekt. Existuje mno\u017estvo tak\u00fdchto kni\u017en\u00edc pre r\u00f4zne jazyky, tak\u017ee si m\u00f4\u017eete vybra\u0165 tie najvhodnej\u0161ie. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/808865e4cda6023c6775ec9e581fc46e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTak\u017ee sk\u00f4r ne\u017e za\u010dnete automatizova\u0165 nasadzovanie, je potrebn\u00e9 zabezpe\u010di\u0165, \u017ee tento proces nebude podlieha\u0165 \u017eiadnym v\u00fdpadkom. Napr\u00edklad n\u00e1\u0161 t\u00edm vykon\u00e1va produk\u010dn\u00e9 nasadzovanie uprostred d\u0148a, ke\u010f \u013eudia maxim\u00e1lne vyu\u017e\u00edvaj\u00fa aplik\u00e1cie, tak\u017ee je ve\u013emi d\u00f4le\u017eit\u00e9 vyhn\u00fa\u0165 sa oneskoreniam v tomto procese. Na to, aby sa predi\u0161lo v\u00fdpadkom, sa pou\u017e\u00edvaj\u00fa dva sp\u00f4soby: blue\/green nasadzovanie alebo sk\u013azav\u00e1 aktualiz\u00e1cia (rolling update). V druhom pr\u00edpade, ak m\u00e1te v prev\u00e1dzke 5 replik aplik\u00e1cie, s\u00fa postupne aktualizovan\u00e9 jedna po druhej. Tento sp\u00f4sob skvele funguje, ale nie je vhodn\u00fd, ak sa po\u010das nasadzovania s\u00fa\u010dasne pou\u017e\u00edvaj\u00fa r\u00f4zne verzie aplik\u00e1cie. V takom pr\u00edpade m\u00f4\u017eete aktualizova\u0165 pou\u017e\u00edvate\u013esk\u00e9 rozhranie, zatia\u013e \u010do backend bude pracova\u0165 so starou verziou a prev\u00e1dzka aplik\u00e1cie sa zastav\u00ed. Preto z poh\u013eadu programovania je pr\u00e1ca v tak\u00fdch podmienkach dos\u0165 obtia\u017ena. <\/p>\n<p>To je jeden z d\u00f4vodov, pre\u010do preferujeme pou\u017ei\u0165 blue\/green nasadzovanie na automatiz\u00e1ciu nasadzovania na\u0161ich aplik\u00e1ci\u00ed. Pri takomto pr\u00edstupe mus\u00edte zabezpe\u010di\u0165, \u017ee v danom okamihu je akt\u00edvna iba jedna verzia aplik\u00e1cie. <\/p>\n<p>Mechanizmus blue\/green nasadzovania vyzer\u00e1 nasledovne. Z\u00edskavame traffic pre na\u0161e aplik\u00e1cie cez ha-proxy, ktor\u00fd ho smeruje na spusten\u00e9 repliky aplik\u00e1cie rovnakej verzie. <\/p>\n<p>Ke\u010f sa uskuto\u010dn\u00ed nov\u00e9 nasadenie, pou\u017e\u00edvame Deployer, ktor\u00e9mu s\u00fa poskytnut\u00e9 nov\u00e9 komponenty a on vykon\u00e1va nasadenie novej verzie. Nasadenie novej verzie aplik\u00e1cie znamen\u00e1, \u017ee sa \u201espust\u00ed\u201c nov\u00fd s\u00fabor replik, po ktor\u00fdch sa tieto repliky novej verzie sp\u00fa\u0161\u0165aj\u00fa v samostatnom, novom pode. Av\u0161ak ha-proxy o nich nevie a zatia\u013e im neprira\u010fuje \u017eiadnu pracovn\u00fa z\u00e1\u0165a\u017e.<\/p>\n<p>Preto je v prvom rade potrebn\u00e9 vykona\u0165 kontrolu funk\u010dnosti nov\u00fdch verzi\u00ed health checkingu, aby sa zabezpe\u010dilo, \u017ee repliky s\u00fa pripraven\u00e9 obsluhova\u0165 z\u00e1\u0165a\u017e.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/6134f89567ac3627197883b2f4c768d4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u0161etky nasadzovacie komponenty by mali podporova\u0165 ak\u00fako\u013evek formu health checku. M\u00f4\u017ee to by\u0165 \u00faplne jednoduch\u00e1 kontrola HTTP volan\u00edm, pri ktorej dostanete k\u00f3d so stavom 200, alebo hlb\u0161ia kontrola, pri ktorej overujete konektivitu replik s datab\u00e1zou a in\u00fdmi slu\u017ebami, stabilitu spojen\u00ed dynamick\u00e9ho prostredia, \u010di sa v\u0161etko sp\u00fa\u0161\u0165a a funguje spr\u00e1vne. Tento proces m\u00f4\u017ee by\u0165 pomerne zlo\u017eit\u00fd. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/fdc537599187b32ab97bc00970283e1a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAkon\u00e1hle syst\u00e9m over\u00ed funk\u010dnos\u0165 v\u0161etk\u00fdch aktualizovan\u00fdch repl\u00edk, Deployer aktualizuje konfigur\u00e1ciu a odovzd\u00e1 spr\u00e1vny confd, ktor\u00fd prekonfiguruje ha-proxy. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/099240482096c2ac4aafe7e803409511.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA\u017e potom bude traffic smerovan\u00fd do podu s replikami novej verzie a star\u00fd pod zmizne. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/f656b3a3adfc27e782e5d9785b8b615e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTento mechanizmus nie je vlastnos\u0165ou Kubernetes. Koncept Blue\/green deployment existuje u\u017e pomerne dlh\u00fa dobu a v\u017edy vyu\u017e\u00edval vyva\u017eova\u010d za\u0165a\u017eenia. Najprv smerujete cel\u00fd traffic na star\u00fa verziu aplik\u00e1cie a po aktualiz\u00e1cii ho plne prepnite na nov\u00fa verziu. Tento princ\u00edp sa pou\u017e\u00edva nielen v Kubernetes.<\/p>\n<p>Teraz v\u00e1m predstav\u00edm nov\u00fd komponent nasadenia \u2013 Deployer, ktor\u00fd vykon\u00e1va kontrolu funk\u010dnosti, rekonfiguruje proxy a tak \u010falej. Je to koncept, ktor\u00fd sa net\u00fdka vonkaj\u0161ieho sveta a existuje vo vn\u00fatri Kubernetes. Uk\u00e1\u017eem, ako si m\u00f4\u017eete vytvori\u0165 vlastn\u00fd koncept Deployer pomocou open-source n\u00e1strojov. <\/p>\n<p>Tak\u017ee prv\u00e9, \u010do Deployer rob\u00ed, je vytvorenie repika\u010dn\u00e9ho kontrol\u00e9ra RC pomocou API Kubernetes. Toto API vytv\u00e1ra pod a slu\u017eby na \u010fal\u0161ie nasadenie, teda vytv\u00e1ra \u00faplne nov\u00fd klaster pre na\u0161e aplik\u00e1cie. Hne\u010f ako RC zabezpe\u010d\u00ed, \u017ee repliky sa spustili, vykon\u00e1 kontrolu ich funk\u010dnosti Health check. Na to Deployer pou\u017e\u00edva pr\u00edkaz GET \/health. Ten sp\u00fa\u0161\u0165a pr\u00edslu\u0161n\u00e9 komponenty kontroly a overuje v\u0161etky prvky, zabezpe\u010duj\u00face chod klasteru. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/f2ef0232e17bc69f0b70ea9eabc2f456.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAkon\u00e1hle v\u0161etky pody ozn\u00e1mia svoje \u201ezdravie\u201c, Deployer vytvor\u00ed nov\u00fd prvok konfigur\u00e1cie \u2013 distribuovan\u00e9 \u00falo\u017eisko etcd, ktor\u00e9 sa pou\u017e\u00edva v r\u00e1mci Kubernetes, vr\u00e1tane ukladania konfigur\u00e1cie z\u00e1\u0165a\u017eov\u00e9ho vyva\u017eova\u010da. Uklad\u00e1me \u00fadaje do etcd a mal\u00fd n\u00e1stroj confd sleduje etcd na pr\u00edtomnos\u0165 nov\u00fdch \u00fadajov. <\/p>\n<p>Ak zistil nejak\u00e9 zmeny v p\u00f4vodnej konfigur\u00e1cii, vygeneruje nov\u00fd konfigura\u010dn\u00fd s\u00fabor a odovzd\u00e1 ho ha-proxy. V tomto pr\u00edpade sa ha-proxy re\u0161tartuje bez straty ak\u00fdchko\u013evek pripojen\u00ed a adresuje z\u00e1\u0165a\u017e nov\u00fdm slu\u017eb\u00e1m, ktor\u00e9 zabezpe\u010duj\u00fa chod novej verzie na\u0161ich aplik\u00e1ci\u00ed. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/bef1536c2b8dee6b0da710fc6c6fda99.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAko vid\u00edte, napriek mno\u017estvu komponentov tu nie je ni\u010d zlo\u017eit\u00e9. Mus\u00edte sa len viac venova\u0165 API a etcd. Chcem v\u00e1m poveda\u0165 o open-source nasadzova\u010di, ktor\u00fd pou\u017e\u00edvame \u2013 Amdatu Kubernetes Deployer.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/34124e093d2e16fcbb80fd112c7d223f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe to n\u00e1stroj na orchestr\u00e1ciu nasaden\u00ed Kubernetes s t\u00fdmito funkciami: <\/p>\n<ul>\n<li>nasadenie Blue\/Green deployment;<\/li>\n<li>nastavenie extern\u00e9ho z\u00e1\u0165a\u017eov\u00e9ho vyva\u017eova\u010da;<\/li>\n<li>spr\u00e1va nasadzovac\u00edch deskriptorov;<\/li>\n<li>spr\u00e1va skuto\u010dn\u00e9ho nasadenia;<\/li>\n<li>kontrola funk\u010dnosti Health checks po\u010das nasadenia;<\/li>\n<li>vn\u00fatorne zav\u00e1dzanie premenn\u00fdch prostredia do podov.<\/li>\n<\/ul>\n<p>\nTento Deployer je postaven\u00fd na vrchole API Kubernetes a poskytuje REST API na spr\u00e1vu deskriptorov a nasaden\u00ed, ako aj Websocket API na streamovanie logov po\u010das nasadenia.<\/p>\n<p>Uklad\u00e1 \u00fadaje konfigur\u00e1cie z\u00e1\u0165a\u017eov\u00e9ho vyva\u017eova\u010da do etcd, tak\u017ee m\u00f4\u017eete nepou\u017e\u00edva\u0165 ha-proxy s podporou \u201epriamo z krabice\u201c, ale jednoducho pou\u017ei\u0165 svoj vlastn\u00fd konfigura\u010dn\u00fd s\u00fabor z\u00e1\u0165a\u017eov\u00e9ho vyva\u017eova\u010da. Amdatu Deployer je nap\u00edsan\u00fd v Go, rovnako ako samotn\u00fd Kubernetes, a je licencovan\u00fd pod licenciu Apache.<\/p>\n<p>Pred za\u010diatkom pou\u017e\u00edvania tejto verzie deployera som pou\u017eil nasleduj\u00faci descriptor nasadenia, v ktorom s\u00fa uveden\u00e9 potrebn\u00e9 parametre. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/14e9ecca6ad772a43afcf95a4950fad8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJedn\u00fdm z d\u00f4le\u017eit\u00fdch parametrov tohto k\u00f3du je povolenie pr\u00edznaku \"useHealthCheck\". Mus\u00edme uvies\u0165, \u017ee po\u010das nasadenia je potrebn\u00e9 vykon\u00e1va\u0165 kontrolu dostupnosti. Tento parameter m\u00f4\u017ee by\u0165 vypnut\u00fd, ke\u010f sa pri nasaden\u00ed pou\u017e\u00edvaj\u00fa kontajnery tret\u00edch str\u00e1n, ktor\u00e9 nie je potrebn\u00e9 kontrolova\u0165. V tomto descriptoore je tie\u017e uveden\u00fd po\u010det replik a URL frontendu, ktor\u00fd potrebuje ha-proxy. Na konci je uveden\u00fd pr\u00edznak \u0161pecifik\u00e1cie podu \"podspec\", ktor\u00fd sa obracia na Kubernetes pre inform\u00e1cie o nastaven\u00ed portov, obraze at\u010f. Ide o pomerne jednoduch\u00fd descriptor vo form\u00e1te JSON. <\/p>\n<p>\u010eal\u0161\u00edm n\u00e1strojom, ktor\u00fd je s\u00fa\u010das\u0165ou open-source projektu Amdatu, je Deploymentctl. M\u00e1 pou\u017e\u00edvate\u013esk\u00e9 rozhranie UI na konfigur\u00e1ciu nasadenia, uchov\u00e1va hist\u00f3riu nasadenia a obsahuje webhooks pre sp\u00e4tnej volania od pou\u017e\u00edvate\u013eov a v\u00fdvoj\u00e1rov tret\u00edch str\u00e1n. M\u00f4\u017eete nepou\u017e\u00edva\u0165 UI, preto\u017ee samotn\u00fd Amdatu Deployer je REST API, ale toto rozhranie m\u00f4\u017ee v\u00fdrazne u\u013eah\u010di\u0165 va\u0161e nasadenie bez potreby zapoji\u0165 ak\u00e9ko\u013evek API. Deploymentctl je nap\u00edsan\u00fd v OSGi\/Vertx s pou\u017eit\u00edm Angular 2. <\/p>\n<p>Teraz uk\u00e1\u017eem vy\u0161\u0161ie uveden\u00e9 na obrazovke pomocou predt\u00fdm uroben\u00e9ho z\u00e1znamu, tak\u017ee nemus\u00edte \u010daka\u0165. Budeme nasadzova\u0165 jednoducho aplik\u00e1ciu v Go. Nebojte sa, ak ste sa predt\u00fdm s Go nestretli, je to ve\u013emi jednoduch\u00e1 aplik\u00e1cia, tak\u017ee v\u00e1m v\u0161etko bude jasn\u00e9. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/ab61ada396143e980d73a0bb8ff95076.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTu vytv\u00e1rame HTTP server, ktor\u00fd reaguje iba na \/health, tak\u017ee t\u00e1to aplik\u00e1cia iba kontroluje dostupnos\u0165 health check a ni\u010d viac. Ak kontrola prebehne \u00faspe\u0161ne, aktivuje sa zobrazen\u00e1 ni\u017e\u0161ie JSON \u0161trukt\u00fara. Obsahuje verziu aplik\u00e1cie, ktor\u00e1 bude nasaden\u00e1 deployerom, message, ktor\u00fa vid\u00edte na vrchnej \u010dasti s\u00faboru, a logick\u00fd d\u00e1tov\u00fd typ boolean \u2014 je na\u0161a aplik\u00e1cia dostupn\u00e1 alebo nie.<\/p>\n<p>S posledn\u00fdm riadkom som trochu podviedol, preto\u017ee som na vrchu s\u00faboru umiestnil pevn\u00fa hodnotu boolean, ktor\u00e1 mi nesk\u00f4r pom\u00f4\u017ee nasadi\u0165 aj \"nezdrav\u00fa\" aplik\u00e1ciu. Nesk\u00f4r sa s t\u00fdm vysporiadame. <\/p>\n<p>A tak\u017ee, po\u010fme na to. Najprv skontrolujeme, \u010di s\u00fa spusten\u00e9 nejak\u00e9 pod. Pomocou pr\u00edkazu ~ kubectl get pods a pri absencii odpovede URL frontendovej oblasti sa uist\u00edme, \u017ee v s\u00fa\u010dasnosti nedoch\u00e1dza k \u017eiadnym nasadeniam. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/4da1ae467993d6e60ec539ae5ff136ff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u010ealej na obrazovke vid\u00edte rozhranie Deploymentctl, ktor\u00e9 som spom\u00ednal, kde sa nastavia parametre nasadenia: priestor n\u00e1zvov, n\u00e1zov aplik\u00e1cie, verzia nasadenia, po\u010det replik, frontend-URL, n\u00e1zov kontajnera, obraz, limity zdrojov, \u010d\u00edslo portu pre kontrolu zdravia a pod. Limity zdrojov s\u00fa ve\u013emi d\u00f4le\u017eit\u00e9, preto\u017ee umo\u017e\u0148uj\u00fa vyu\u017ei\u0165 maxim\u00e1lne dostupn\u00e9 mno\u017estvo \u201ehardv\u00e9ru\u201c. Tu si m\u00f4\u017eete tie\u017e pozrie\u0165 protokol nasadenia Deployment log.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/edf6a02b336f1abce61f0a323edeee9d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAk teraz znova spust\u00edte pr\u00edkaz ~ kubectl get pods, uvid\u00edte, \u017ee syst\u00e9m \"zastavuje\" na 20 sek\u00fand, po\u010das ktor\u00fdch doch\u00e1dza k rekonfigur\u00e1cii ha-proxy. Po tomto sa pod spust\u00ed a na\u0161u replik\u00e1ciu je mo\u017en\u00e9 vidie\u0165 v protokole nasadenia. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/c6c8f6335e00d3a9cfcf4d4792ecf795.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVystrihol som z videa 20-sekundov\u00e9 \u010dakanie a teraz vid\u00edte na obrazovke, \u017ee prv\u00e1 verzia aplik\u00e1cie je nasaden\u00e1. To v\u0161etko bolo uroben\u00e9 len pomocou UI. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/d21fa9ad71e22b2bb9efdfc7bc9c8771.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTeraz sk\u00fasme druh\u00fa verziu. Na to men\u00edm spr\u00e1vu aplik\u00e1cie z \u201eHello, Kubernetes!\u201c na \u201eHello, Deployer!\u201c, syst\u00e9m vytvor\u00ed tento obraz a umiestni ho do registra Docker, po \u010dom jednoducho znova stla\u010d\u00edme tla\u010didlo \u201eDeploy\u201c v okne Deploymentctl. Pri tom sa automaticky spust\u00ed protokol nasadenia presne tak, ako sa to deje pri nasaden\u00ed prvej verzie aplik\u00e1cie. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/e4ef784649fd18b1580d2562b318ac0f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPr\u00edkaz ~ kubectl get pods ukazuje, \u017ee moment\u00e1lne s\u00fa spusten\u00e9 2 verzie aplik\u00e1cie, av\u0161ak frontend ukazuje, \u017ee st\u00e1le be\u017e\u00ed verzia 1. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/1d4a9c91f836007325a2a2c833da8eff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVyva\u017eova\u010d za\u0165a\u017eenia \u010dak\u00e1, k\u00fdm prebehne kontrola zdravia, po ktorej presmeruje prev\u00e1dzku na nov\u00fa verziu. Po 20 s prech\u00e1dzame na curl a vid\u00edme, \u017ee teraz m\u00e1me nasaden\u00fa 2. verziu aplik\u00e1cie, zatia\u013e \u010do prv\u00e1 je odstr\u00e1nen\u00e1. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/e123618251e9fcb1c14829772634b6e8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nToto bolo nasadenie \u201ezdrav\u00e9ho\u201c \u2014 healthy \u2014 aplik\u00e1cie. Pozrime sa, \u010do sa stane, ak pre nov\u00fa verziu aplik\u00e1cie zmen\u00edm hodnotu parametra Healthy z true na false, teda ak sa pok\u00fasim nasadi\u0165 nezdrav\u00fa aplik\u00e1ciu, ktor\u00e1 nepre\u0161la kontrolou funk\u010dnosti. To sa m\u00f4\u017ee sta\u0165, ak v \u0161t\u00e1diu v\u00fdvoja boli v aplik\u00e1cii vykonan\u00e9 nejak\u00e9 chyby konfigur\u00e1cie a bola odoslan\u00e1 do produkcie v takomto stave. <\/p>\n<p>Ako vid\u00edte, nasadenie prech\u00e1dza v\u0161etk\u00fdmi vy\u0161\u0161ie uveden\u00fdmi krokmi a ~ kubectl get pods ukazuje, \u017ee be\u017eia oba pode. V porovnan\u00ed s predch\u00e1dzaj\u00facim nasaden\u00edm v\u0161ak log zobrazuje stav timeout. To znamen\u00e1, \u017ee kv\u00f4li tomu, \u017ee kontrola health check nepre\u0161la, nov\u00e1 verzia aplik\u00e1cie nem\u00f4\u017ee by\u0165 nasaden\u00e1. V\u00fdsledkom je, \u017ee syst\u00e9m sa vr\u00e1til k pou\u017e\u00edvaniu starej verzie aplik\u00e1cie a nov\u00e1 verzia bola jednoducho odstr\u00e1nen\u00e1. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/4542761328603596704f21cef4c9d4a3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDobr\u00e9 na tom je, \u017ee aj ke\u010f m\u00e1te obrovsk\u00e9 mno\u017estvo s\u00fabe\u017en\u00fdch po\u017eiadaviek smeruj\u00facich do aplik\u00e1cie, ani si nev\u0161imn\u00fa prestoj po\u010das implement\u00e1cie proced\u00fary nasadenia. Ak t\u00fato aplik\u00e1ciu otestujete pomocou frameworku Gatling, ktor\u00fd jej posiela maxim\u00e1lne mo\u017en\u00e9 mno\u017estvo po\u017eiadaviek, \u017eiadna z t\u00fdchto po\u017eiadaviek nebude odmietnut\u00e1. To znamen\u00e1, \u017ee na\u0161i pou\u017e\u00edvatelia si ani nev\u0161imn\u00fa aktualiz\u00e1cie verzi\u00ed v re\u00e1lnom \u010dase. Ak sa ukon\u010d\u00ed ne\u00faspe\u0161ne, pr\u00e1ca bude pokra\u010dova\u0165 na starej verzii, ak uspeje - pou\u017e\u00edvatelia prejd\u00fa na nov\u00fa verziu. <\/p>\n<p>Existuje len jedna vec, ktor\u00e1 m\u00f4\u017ee vies\u0165 k ne\u00faspechu - ak kontrola health check pre\u0161la \u00faspe\u0161ne, ale aplik\u00e1cia zlyh\u00e1, akon\u00e1hle dostane pracovn\u00fa z\u00e1\u0165a\u017e, to znamen\u00e1, \u017ee kolaps nastane a\u017e po dokon\u010den\u00ed nasadenia. V takom pr\u00edpade sa budete musie\u0165 ru\u010dne vr\u00e1ti\u0165 k starej verzii. Tak\u017ee sme sa pozreli na to, ako pou\u017e\u00edva\u0165 Kubernetes s n\u00edm ur\u010den\u00fdmi open-source n\u00e1strojmi. Proced\u00fara nasadenia bude prebieha\u0165 ove\u013ea jednoduch\u0161ie, ak tieto n\u00e1stroje integrujete do pipeline pre vytv\u00e1ranie\/nasadenie Build\/Deploy. Na spustenie nasadenia m\u00f4\u017eete pou\u017ei\u0165 ako pou\u017e\u00edvate\u013esk\u00e9 rozhranie, tak \u00faplne automatizova\u0165 tento proces, napr\u00edklad pomocou commit do master. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/43b638be9d334c6c4f8e9f4fc00ce2f9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e1\u0161 build server vytvor\u00ed Docker obraz, vlo\u017e\u00ed ho do Docker Hub alebo in\u00e9ho registry, ktor\u00fd pou\u017e\u00edvate. Docker Hub podporuje webhook, tak\u017ee m\u00f4\u017eeme spusti\u0165 vzdialen\u00e9 nasadenie cez Deployer uveden\u00fdm sp\u00f4sobom. T\u00fdmto sp\u00f4sobom m\u00f4\u017eeme \u00faplne automatizova\u0165 nasadenie aplik\u00e1cie do potenci\u00e1lneho produk\u010dn\u00e9ho prostredia. <\/p>\n<p>Prejdime k presk\u00famaniu \u010fal\u0161ej t\u00e9my \u2013 \u0161k\u00e1lovanie klastra Kubernetes. Chcem upozorni\u0165, \u017ee pr\u00edkaz kubectl je pr\u00edkaz na \u0161k\u00e1lovanie. S jeho pomocou m\u00f4\u017eeme \u013eahko zv\u00fd\u0161i\u0165 po\u010det replik v na\u0161om klastri. V praxi v\u0161ak zvy\u010dajne chceme zvy\u0161ova\u0165 po\u010det nie podov, ale n\u00f3dov. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/890f436b4bc52c81f5db5b35e64e7e18.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPo\u010das pracovn\u00e9ho \u010dasu m\u00f4\u017eete potrebova\u0165 zv\u00fd\u0161enie, zatia\u013e \u010do v noci, aby ste zn\u00ed\u017eili n\u00e1klady na slu\u017eby Amazon, je potrebn\u00e9 zn\u00ed\u017ei\u0165 po\u010det spusten\u00fdch in\u0161tanci\u00ed aplik\u00e1cie. Neznamen\u00e1 to v\u0161ak, \u017ee bude sta\u010di\u0165 \u0161k\u00e1lova\u0165 iba po\u010det podov, preto\u017ee aj ke\u010f jeden z n\u00f3dov nebude ni\u010d robi\u0165, st\u00e1le za\u0148 budete musie\u0165 plati\u0165 Amazonu. To znamen\u00e1, \u017ee ved\u013ea \u0161k\u00e1lovania podov budete musie\u0165 \u0161k\u00e1lova\u0165 aj po\u010det pou\u017e\u00edvan\u00fdch strojov. <\/p>\n<p>To m\u00f4\u017ee sp\u00f4sobi\u0165 komplik\u00e1cie, preto\u017ee nez\u00e1visle od toho, \u010di pou\u017e\u00edvame Amazon alebo in\u00fd cloudov\u00fd servis, Kubernetes ni\u010d nevie o po\u010dte pou\u017e\u00edvan\u00fdch strojov. Ch\u00fdba mu n\u00e1stroj, ktor\u00fd by umo\u017enil \u0161k\u00e1lova\u0165 syst\u00e9m na \u00farovni n\u00f3dov. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/2f00b19f1cb665d8e7bd896fa419554c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA preto sa mus\u00edme postara\u0165 o nody aj o pody. M\u00f4\u017eeme \u013eahko \u0161k\u00e1lova\u0165 zav\u00e1dzanie nov\u00fdch n\u00f3dov pomocou AWS API a strojov v skupine \u0161k\u00e1lovania (Scaling group) na nastavenie po\u010dtu pracovn\u00fdch uzlov Kubernetes. \u010co sa t\u00fdka registr\u00e1cie n\u00f3dov v klastri Kubernetes, m\u00f4\u017eeme tie\u017e pou\u017ei\u0165 cloud-init alebo podobn\u00fd skript. <\/p>\n<p>Nov\u00fd stroj sa sp\u00fa\u0161\u0165a v skupine Scaling, inicializuje sa ako uzol, registruje sa v hlavnom registri a za\u010d\u00edna pracova\u0165. Po tomto je mo\u017en\u00e9 zv\u00fd\u0161i\u0165 po\u010det replik na novovytvoren\u00fdch uzloch. Zmen\u0161enie po\u010dtu uzlov si vy\u017eaduje v\u00e4\u010d\u0161ie \u00fasilie, preto\u017ee je potrebn\u00e9 zabezpe\u010di\u0165, aby tento krok nesp\u00f4sobil z\u00e1nik u\u017e funguj\u00facich aplik\u00e1ci\u00ed po odpojen\u00ed \"zbyto\u010dn\u00fdch\" strojov. Na zabr\u00e1nenie tak\u00e9muto scen\u00e1ru je potrebn\u00e9 previes\u0165 uzly do stavu \"unschedulable\". To znamen\u00e1, \u017ee pl\u00e1nova\u010d pri pl\u00e1novan\u00ed podov DaemonSet bude tieto uzly ignorova\u0165. Pl\u00e1nova\u010d ni\u010d neodstr\u00e1ni z t\u00fdchto serverov, ale ani nespust\u00ed nov\u00e9 kontajnery. Nasleduj\u00faci krok je odpojenie uzla drain node, to znamen\u00e1 presun pracovn\u00fdch podov na in\u00fd stroj alebo in\u00e9 uzly, ktor\u00e9 maj\u00fa na to dostato\u010dn\u00fa kapacitu. Ke\u010f sa uist\u00ed, \u017ee na t\u00fdchto uzloch u\u017e nie s\u00fa \u017eiadne kontajnery, m\u00f4\u017eu by\u0165 odstr\u00e1nen\u00e9 z Kubernetes. Potom pre Kubernetes prestan\u00fa jednoducho existova\u0165. \u010ealej je potrebn\u00e9 pou\u017ei\u0165 AWS API na odpojenie nepotrebn\u00fdch uzlov alebo strojov. <br \/>\nM\u00f4\u017eete pou\u017ei\u0165 Amdatu Scalerd \u2014 \u010fal\u0161\u00ed open-source n\u00e1stroj pre \u0161k\u00e1lovanie, podobn\u00fd AWS API. Poskytuje CLI na prid\u00e1vanie alebo odstra\u0148ovanie uzlov v klastri. Jeho zauj\u00edmavou funkciou je mo\u017enos\u0165 nastavi\u0165 pl\u00e1nova\u010d pomocou nasleduj\u00faceho json s\u00faboru. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/f70c7c722cacb4792c316e9f80a7500a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZobrazen\u00fd k\u00f3d zni\u017euje kapacitu klastra na polovicu v no\u010dn\u00fdch hodin\u00e1ch. Nastaven\u00e9 je ako mno\u017estvo existuj\u00facich replik, tak aj po\u017eadovan\u00e1 kapacita klastra Amazon. Pou\u017eitie tohto pl\u00e1nova\u010da automaticky zn\u00ed\u017ei po\u010det uzlov v noci a zv\u00fd\u0161i ich r\u00e1no, \u010do v\u00e1m umo\u017en\u00ed u\u0161etri\u0165 n\u00e1klady na pou\u017e\u00edvanie uzlov tak\u00e9ho cloudov\u00e9ho servisu, ako je Amazon. T\u00e1to funkcia nie je integrovan\u00e1 v Kubernetes, ale pou\u017eitie Scalerd v\u00e1m umo\u017en\u00ed \u0161k\u00e1lova\u0165 t\u00fato platformu pod\u013ea potreby. <\/p>\n<p>Chcem upozorni\u0165 na to, \u017ee mi mnoh\u00ed \u013eudia hovoria: \u201eTo v\u0161etko je fajn, ale \u010do s mojou datab\u00e1zou, ktor\u00e1 obvykle zost\u00e1va v statickom stave?\u201c Ako je mo\u017en\u00e9 spusti\u0165 nie\u010do tak\u00e9 v tak dynamickom prostred\u00ed, ako je Kubernetes? Pod\u013ea m\u00f4jho n\u00e1zoru by ste to nemali robi\u0165, nemali by ste sa sna\u017ei\u0165 organizova\u0165 pr\u00e1cu d\u00e1tov\u00e9ho \u00falo\u017eiska v Kubernetes. Technicky je to mo\u017en\u00e9 a na internete existuj\u00fa n\u00e1vody, ako na to, av\u0161ak to by v\u00e1m \u017eivota zna\u010dne skomplikovalo. <\/p>\n<p>\u00c1no, v Kubernetes existuje pojem trval\u00fdch \u00falo\u017e\u00edsk a m\u00f4\u017eete sa pok\u00fasi\u0165 sp\u00fa\u0161\u0165a\u0165 tak\u00e9to datab\u00e1zy ako Mongo alebo MySQL, ale je to dos\u0165 pr\u00e1cne. S t\u00fdm s\u00favis\u00ed fakt, \u017ee datab\u00e1zy nepodporuj\u00fa plne interakciu s dynamick\u00fdm prostred\u00edm. V\u00e4\u010d\u0161ina datab\u00e1z vy\u017eaduje zna\u010dn\u00fa konfigur\u00e1ciu, vr\u00e1tane ru\u010dnej konfigur\u00e1cie klastru, nemaj\u00fa radi automatick\u00e9 \u0161k\u00e1lovanie a podobn\u00e9 veci. <br \/>\nPreto si neu\u013eah\u010dujte \u017eivot pokusmi o spustenie datab\u00e1zy v Kubernetes. Organizujte ich pr\u00e1cu tradi\u010dn\u00fdm sp\u00f4sobom s vyu\u017eit\u00edm zn\u00e1mych slu\u017eieb a jednoducho poskytnite Kubernetes mo\u017enos\u0165 nimi disponova\u0165.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/129e8d403f42b7aa6fb022b386955e9e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa z\u00e1ver t\u00e9my v\u00e1s chcem obozn\u00e1mi\u0165 s platformou Cloud RTI na b\u00e1ze Kubernetes, na ktorej pracuje m\u00f4j t\u00edm. Zabezpe\u010duje centralizovan\u00e9 vedenie logov, monitoring aplik\u00e1ci\u00ed a klastrov a disponuje mno\u017estvom \u010fal\u0161\u00edch u\u017eito\u010dn\u00fdch funkci\u00ed, ktor\u00e9 sa v\u00e1m z\u00eddu. Pou\u017e\u00edvaj\u00fa sa v nej r\u00f4zne open-source n\u00e1stroje, ako napr\u00edklad Grafana na zobrazenie monitoringu.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/a0e79033dbc0a2683e3567934c9ba014.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkcii: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2\" src=\"\/wp-content\/uploads\/2020\/06\/2b1b7ba139053fc492c7ad25e96f362f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nObjavil sa ot\u00e1zka, pre\u010do pou\u017e\u00edva\u0165 s Kubernetes vyrovn\u00e1va\u010d z\u00e1\u0165a\u017ee ha-proxy. Dobr\u00fd dotaz, preto\u017ee v s\u00fa\u010dasnosti existuj\u00fa 2 \u00farovne vyrovn\u00e1vania z\u00e1\u0165a\u017ee. Slu\u017eby Kubernetes st\u00e1le funguj\u00fa na virtu\u00e1lnych IP adres\u00e1ch. Nem\u00f4\u017eete ich pou\u017ei\u0165 pre porty vonkaj\u0161\u00edch hostite\u013esk\u00fdch strojov, preto\u017ee ak Amazon pre\u0165a\u017e\u00ed svoj cloudov\u00fd hostite\u013e, adresa sa zmen\u00ed. Preto umiest\u0148ujeme pred slu\u017eby ha-proxy \u2014 aby sme vytvorili statickej\u0161iu \u0161trukt\u00faru pre bezprobl\u00e9mov\u00fa interakciu provozu s Kubernetes. <\/p>\n<p>E\u0161te jedna dobr\u00e1 ot\u00e1zka \u2013 ako sa d\u00e1 postara\u0165 o zmenu sch\u00e9my datab\u00e1zy pri realiz\u00e1cii blue\/green nasadenia? Faktom je, \u017ee bez oh\u013eadu na pou\u017eitie Kubernetes, zmena sch\u00e9my datab\u00e1zy je zlo\u017eit\u00e1 \u00faloha. Mus\u00edte zabezpe\u010di\u0165 kompatibilitu starej a novej sch\u00e9my, a\u017e potom m\u00f4\u017eete aktualizova\u0165 datab\u00e1zu a n\u00e1sledne aj aplik\u00e1cie. M\u00f4\u017eete vykona\u0165 \u201ehor\u00facu v\u00fdmenu\u201c hot swapping datab\u00e1zy a potom aktualizova\u0165 aplik\u00e1cie. Pozn\u00e1m \u013eud\u00ed, ktor\u00ed nahradili \u00faplne nov\u00fd klaster datab\u00e1zy s novou sch\u00e9mou, to je mo\u017enos\u0165, ak m\u00e1te sch\u00e9mu bez sch\u00e9my typu Mongo, ale v ka\u017edom pr\u00edpade to nie je jednoduch\u00e1 \u00faloha. Ak s\u00fa \u010fal\u0161ie ot\u00e1zky, \u010fakujem za pozornos\u0165!<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"-Ci4vd4rh4M\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/-Ci4vd4rh4M\/hqdefault.jpg\" alt=\"Prehrajte video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h3>Trochu reklamy \ud83d\ude42<\/h3>\n<p>\n\u010eakujeme, \u017ee ost\u00e1vate s nami. P\u00e1\u010dia sa v\u00e1m na\u0161e \u010dl\u00e1nky? Chcete vidie\u0165 viac zauj\u00edmav\u00fdch materi\u00e1lov? Podporte n\u00e1s, vytvoren\u00edm objedn\u00e1vky alebo odpor\u00fa\u010dan\u00edm zn\u00e1mym, <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">cloud VPS pre v\u00fdvoj\u00e1rov od 4,99 dol\u00e1rov<\/a><\/noindex>, <b>unik\u00e1tny ekvivalent entry-level serverov, ktor\u00fd sme pre v\u00e1s vytvorili:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">Cel\u00e1 pravda o VPS (KVM) E5-2697 v3 (6 jadier) 10GB DDR4 480GB SSD 1Gbps od 19 dol\u00e1rov alebo ako spr\u00e1vne rozdeli\u0165 server?<\/a><\/noindex> (k dispoz\u00edcii varianty s RAID1 a RAID10, a\u017e 24 jadier a a\u017e 40GB DDR4).<\/p>\n<p><b>Dell R730xd je dvakr\u00e1t lacnej\u0161\u00ed v d\u00e1tovom centre Equinix Tier IV v Amsterdame?<\/b> Len u n\u00e1s <b><noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/serversnl\">2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB od 199 dol\u00e1rov<\/a><\/noindex> v Holandsku! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 od 99 dol\u00e1rov!<\/b><\/b> Pre\u010d\u00edtajte si o tom <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Ako vybudova\u0165 infra\u0161trukt\u00faru korpor\u00e1tneho typu s pou\u017eit\u00edm serverov Dell R730xd E5-2650 v4 s cenou 9000 eur za zlomok ceny?<\/a><\/noindex><br \/>\n<br \/>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/504672\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Kubernetes \u2014 \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 Docker \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Kubernetes \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438. \u041f\u0440\u0438 \u0447\u0430\u0441\u0442\u043e\u043c \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0440\u0435\u0434\u0435 \u043c\u044b \u043d\u0443\u0436\u0434\u0430\u0435\u043c\u0441\u044f \u0432 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c Blue\/Green deployment, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0435 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0443 SSL. \u042d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":83788,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-83787","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.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"Kubernetes \u2014 \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 Docker \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Kubernetes \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438.\" \/>\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\/sk\/blog\/administrirovanie\/devoxx-uk-kubernetes-v-prodakshene-blue-green-deployment-avtomasshtabirovanie-i-avtomatizacziya-razvertyvaniya-chast-2\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sk_SK\" \/>\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\udd47DEVOXX UK. Kubernetes \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435: Blue\/Green deployment, \u0430\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f. \u0427\u0430\u0441\u0442\u044c 2 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"Kubernetes \u2014 \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 Docker \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Kubernetes \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/devoxx-uk-kubernetes-v-prodakshene-blue-green-deployment-avtomasshtabirovanie-i-avtomatizacziya-razvertyvaniya-chast-2\" \/>\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-06-03T05:42:26+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-03T05:42:26+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\udd47DEVOXX UK. Kubernetes v produkcii: Blue\/Green nasadenie, automatick\u00e9 \u0161k\u00e1lovanie a automatiz\u00e1cia nasadenia. \u010cas\u0165 2 | ProHoster","description":"Kubernetes je vynikaj\u00faci n\u00e1stroj na sp\u00fa\u0161\u0165anie kontajnerov Docker v klasterizovanom produk\u010dnom prostred\u00ed. Existuj\u00fa v\u0161ak \u00falohy, ktor\u00e9 Kubernetes nem\u00f4\u017ee rie\u0161i\u0165.","canonical_url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/devoxx-uk-kubernetes-v-prodakshene-blue-green-deployment-avtomasshtabirovanie-i-avtomatizacziya-razvertyvaniya-chast-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sk_SK","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\udd47DEVOXX UK. Kubernetes \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435: Blue\/Green deployment, \u0430\u0432\u0442\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f. \u0427\u0430\u0441\u0442\u044c 2 | ProHoster","og:description":"Kubernetes \u2014 \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 Docker \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Kubernetes \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438.","og:url":"https:\/\/prohoster.info\/sk\/blog\/administrirovanie\/devoxx-uk-kubernetes-v-prodakshene-blue-green-deployment-avtomasshtabirovanie-i-avtomatizacziya-razvertyvaniya-chast-2","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-06-03T05:42:26+00:00","article:modified_time":"2020-06-03T05:42:26+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"83787","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 15:11:01","updated":"2022-09-28 11:45:41","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/83787","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/comments?post=83787"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/posts\/83787\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media\/83788"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/media?parent=83787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/categories?post=83787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sk\/wp-json\/wp\/v2\/tags?post=83787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}