{"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\/cs\/blog\/administrirovanie\/devoxx-uk-kubernetes-v-prodakshene-blue-green-deployment-avtomasshtabirovanie-i-avtomatizacziya-razvertyvaniya-chast-2","title":{"rendered":"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Kubernetes je vynikaj\u00edc\u00ed n\u00e1stroj pro nasazen\u00ed kontejner\u016f Docker v produk\u010dn\u00edm prost\u0159ed\u00ed s p\u0159ehlednost\u00ed. Nicm\u00e9n\u011b existuj\u00ed \u00fakoly, kter\u00e9 Kubernetes nedok\u00e1\u017ee vy\u0159e\u0161it. P\u0159i \u010dast\u00e9m nasazen\u00ed v pracovn\u00edm prost\u0159ed\u00ed pot\u0159ebujeme pln\u011b automatizovan\u00e9 nasazen\u00ed Blue\/Green, abychom se vyhnuli prostoj\u016fm v tomto procesu, p\u0159i\u010dem\u017e je tak\u00e9 nutn\u00e9 zpracov\u00e1vat extern\u00ed HTTP po\u017eadavky a prov\u00e1d\u011bt ukon\u010den\u00ed SSL. To vy\u017eaduje integraci s vyrovn\u00e1va\u010dem z\u00e1t\u011b\u017ee, jako je ha-proxy. Dal\u0161\u00edm \u00fakolem je poloautomatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed samotn\u00e9ho klastru Kubernetes p\u0159i provozu v cloudov\u00e9m prost\u0159ed\u00ed, nap\u0159\u00edklad \u010d\u00e1ste\u010dn\u00e9 zmen\u0161en\u00ed klastru v no\u010dn\u00edch hodin\u00e1ch.<\/p>\n<p>I kdy\u017e Kubernetes nem\u00e1 tyto funkce p\u0159\u00edmo \u201ez krabice\u201c, poskytuje API, kter\u00e9 lze vyu\u017e\u00edt k vy\u0159e\u0161en\u00ed podobn\u00fdch \u00faloh. N\u00e1stroje pro automatizovan\u00e9 nasazen\u00ed Blue\/Green a \u0161k\u00e1lov\u00e1n\u00ed klastru Kubernetes byly vyvinuty v r\u00e1mci projektu Cloud RTI, kter\u00fd byl vytvo\u0159en na z\u00e1klad\u011b open-source.<\/p>\n<p>V tomto \u010dl\u00e1nku, transkriptu videa, se dozv\u00edte, jak nastavit Kubernetes spolu s dal\u0161\u00edmi komponentami otev\u0159en\u00e9ho k\u00f3du pro vytvo\u0159en\u00ed produk\u010dn\u00edho prost\u0159ed\u00ed, kter\u00e9 bez prostoj\u016f v produkci zpracov\u00e1v\u00e1 k\u00f3d z git commit.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 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 produkci: nasazen\u00ed Blue\/Green, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 1<\/a><\/noindex><\/p>\n<p>Tak\u017ee pot\u00e9, co z\u00edsk\u00e1te p\u0159\u00edstup k va\u0161im aplikac\u00edm z vn\u011bj\u0161\u00edho sv\u011bta, m\u016f\u017eete p\u0159ej\u00edt na pln\u00e9 nastaven\u00ed automatizace, tedy dostat ji do stavu, kdy m\u016f\u017eete prov\u00e9st git commit a ujistit se, \u017ee tento git commit kon\u010d\u00ed v produkci. Je jasn\u00e9, \u017ee p\u0159i implementaci t\u011bchto krok\u016f, p\u0159i prov\u00e1d\u011bn\u00ed nasazen\u00ed, se nechceme setkat s prostojem. Tak\u017ee jak\u00e1koliv automatizace v Kubernetes za\u010d\u00edn\u00e1 API. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/aa470c1562e49d98a164e0485196426e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKubernetes nen\u00ed n\u00e1stroj, kter\u00fd by bylo mo\u017en\u00e9 efektivn\u011b pou\u017e\u00edt \u201ep\u0159\u00edmo z krabice\u201c. Samoz\u0159ejm\u011b, \u017ee to m\u016f\u017eete d\u011blat, pou\u017e\u00edvat kubectl a tak d\u00e1le, ale API je tou nejzaj\u00edmav\u011bj\u0161\u00ed a nejv\u00edce u\u017eite\u010dnou sou\u010d\u00e1st\u00ed t\u00e9to platformy. Pou\u017e\u00edv\u00e1n\u00edm API jako sady funkc\u00ed m\u016f\u017eete z\u00edskat p\u0159\u00edstup k t\u00e9m\u011b\u0159 v\u0161emu, co chcete v Kubernetes ud\u011blat. Samotn\u00fd kubectl tak\u00e9 vyu\u017e\u00edv\u00e1 REST API. <\/p>\n<p>Jedn\u00e1 se o REST, tak\u017ee m\u016f\u017eete pou\u017e\u00edt jak\u00e9koli jazyky a n\u00e1stroje pro pr\u00e1ci s t\u00edmto API, ale va\u0161e \u017eivoty zna\u010dn\u011b usnadn\u00ed u\u017eivatelsk\u00e9 knihovny. M\u016fj t\u00fdm napsal 2 takov\u00e9 knihovny: jednu pro Java \/ OSGi a jednu pro Go. Druh\u00e1 se p\u0159\u00edli\u0161 \u010dasto nepou\u017e\u00edv\u00e1, ale v ka\u017ed\u00e9m p\u0159\u00edpad\u011b m\u00e1te k dispozici tyto u\u017eite\u010dn\u00e9 v\u011bci. Jsou to \u010d\u00e1ste\u010dn\u011b licencovan\u00e9 open-source projekty. Existuje mnoho takov\u00fdch knihoven pro r\u016fzn\u00e9 jazyky, tak\u017ee si m\u016f\u017eete vybrat ty nejvhodn\u011bj\u0161\u00ed. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/808865e4cda6023c6775ec9e581fc46e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTak\u017ee ne\u017e se pust\u00edme do automatizace nasazen\u00ed, je nutn\u00e9 zajistit, \u017ee tento proces nebude vystaven \u017e\u00e1dn\u00fdm prostoj\u016fm. Nap\u0159\u00edklad n\u00e1\u0161 t\u00fdm prov\u00e1d\u00ed produk\u010dn\u00ed nasazen\u00ed b\u011bhem dne, kdy lid\u00e9 maxim\u00e1ln\u011b vyu\u017e\u00edvaj\u00ed aplikace, tak\u017ee je velmi d\u016fle\u017eit\u00e9 vyhnout se zpo\u017ed\u011bn\u00edm v tomto procesu. Abychom se vyhnuli prostoji, pou\u017e\u00edvaj\u00ed se 2 metody: blue\/green nasazen\u00ed nebo rolling update. V druh\u00e9m p\u0159\u00edpad\u011b, pokud m\u00e1te 5 replik aplikace, postupn\u011b se aktualizuj\u00ed jedna po druh\u00e9. Tento zp\u016fsob skv\u011ble funguje, ale nehod\u00ed se, pokud b\u011bhem nasazen\u00ed b\u011b\u017e\u00ed r\u016fzn\u00e9 verze aplikace sou\u010dasn\u011b. V takov\u00e9m p\u0159\u00edpad\u011b m\u016f\u017eete aktualizovat u\u017eivatelsk\u00e9 rozhran\u00ed, zat\u00edmco backend bude pracovat se starou verz\u00ed, a \u010dinnost aplikace se p\u0159eru\u0161\u00ed. Proto je z pohledu programov\u00e1n\u00ed pr\u00e1ce v takov\u00fdch podm\u00ednk\u00e1ch pom\u011brn\u011b obt\u00ed\u017en\u00e1. <\/p>\n<p>To je jeden z d\u016fvod\u016f, pro\u010d d\u00e1v\u00e1me p\u0159ednost pou\u017eit\u00ed blue\/green nasazen\u00ed pro automatizaci nasazen\u00ed na\u0161ich aplikac\u00ed. P\u0159i tomto zp\u016fsobu mus\u00edte zajistit, aby v ur\u010dit\u00e9m okam\u017eiku byla aktivn\u00ed pouze jedna verze aplikace. <\/p>\n<p>Mechanismus blue\/green nasazen\u00ed vypad\u00e1 takto. Z\u00edsk\u00e1v\u00e1me provoz pro na\u0161e aplikace p\u0159es ha-proxy, kter\u00fd ho sm\u011bruje k b\u011b\u017e\u00edc\u00edm replik\u00e1m aplikace stejn\u00e9 verze. <\/p>\n<p>P\u0159i nov\u00e9m nasazen\u00ed pou\u017e\u00edv\u00e1me Deployer, kter\u00e9mu jsou poskytnuty nov\u00e9 komponenty a ten prov\u00e1d\u00ed nasazen\u00ed nov\u00e9 verze. Nasazen\u00ed nov\u00e9 verze aplikace znamen\u00e1, \u017ee se \u201espou\u0161t\u00ed\u201c nov\u00e1 sada replik, po \u010dem\u017e jsou tyto repliky nov\u00e9 verze spu\u0161t\u011bny ve zcela nov\u00e9m podu. Nicm\u00e9n\u011b ha-proxy o nich zat\u00edm nev\u00ed a zat\u00edm nepos\u00edl\u00e1 \u017e\u00e1dnou pracovn\u00ed z\u00e1t\u011b\u017e.<\/p>\n<p>Proto je v prvn\u00ed \u0159ad\u011b nutn\u00e9 prov\u00e9st kontrolu funk\u010dnosti nov\u00fdch verz\u00ed pomoc\u00ed health checking, abychom se ujistili, \u017ee repliky jsou p\u0159ipraveny obsluhovat z\u00e1t\u011b\u017e.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/6134f89567ac3627197883b2f4c768d4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u0161echny nasazovan\u00e9 komponenty mus\u00ed podporovat n\u011bjakou formu health checku. M\u016f\u017ee to b\u00fdt zcela jednoduch\u00e1 HTTP kontrola, kdy obdr\u017e\u00edte k\u00f3d s odpov\u011bd\u00ed 200, nebo hlub\u0161\u00ed kontrola, p\u0159i kter\u00e9 ov\u011b\u0159ujete spojen\u00ed replik s datab\u00e1z\u00ed a dal\u0161\u00edmi slu\u017ebami, stabilitu spojen\u00ed dynamick\u00e9ho prost\u0159ed\u00ed, zda se v\u0161e spou\u0161t\u00ed a funguje spr\u00e1vn\u011b. Tento proces m\u016f\u017ee b\u00fdt pom\u011brn\u011b slo\u017eit\u00fd. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/fdc537599187b32ab97bc00970283e1a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJakmile syst\u00e9m ov\u011b\u0159\u00ed funk\u010dnost v\u0161ech aktualizovan\u00fdch replik, Deployer aktualizuje konfiguraci a p\u0159ed\u00e1 spr\u00e1vn\u00fd confd, kter\u00fd p\u0159eprogramuje ha-proxy. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/099240482096c2ac4aafe7e803409511.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTeprve pot\u00e9 bude provoz sm\u011brov\u00e1n do podu s replikami nov\u00e9 verze, zat\u00edmco star\u00fd pod zmiz\u00ed. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/f656b3a3adfc27e782e5d9785b8b615e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTento mechanismus nen\u00ed specifick\u00fd pro Kubernetes. Koncept Blue\/green deployment existuje u\u017e pom\u011brn\u011b dlouho a v\u017edy pou\u017e\u00edval vyva\u017eova\u010d z\u00e1t\u011b\u017ee. Nejprve sm\u011brujete ve\u0161ker\u00fd provoz na starou verzi aplikace a po aktualizaci ho pln\u011b p\u0159esm\u011brujete na novou verzi. Tento princip se pou\u017e\u00edv\u00e1 nejen v Kubernetes.<\/p>\n<p>Nyn\u00ed v\u00e1m p\u0159edstav\u00edm nov\u00fd nasazovac\u00ed komponent \u2013 Deployer, kter\u00fd prov\u00e1d\u00ed kontrolu funk\u010dnosti, rekonfiguruje proxy a podobn\u011b. To je koncept, kter\u00fd se net\u00fdk\u00e1 vn\u011bj\u0161\u00edho sv\u011bta a existuje uvnit\u0159 Kubernetes. Uk\u00e1\u017eu v\u00e1m, jak vytvo\u0159it sv\u016fj vlastn\u00ed koncept Deployer pomoc\u00ed open-source n\u00e1stroj\u016f. <\/p>\n<p>Prvn\u00ed v\u011bc, kterou Deployer d\u011bl\u00e1, je vytvo\u0159en\u00ed replikace kontroleru RC pomoc\u00ed Kubernetes API. Toto API vytv\u00e1\u0159\u00ed pody a slu\u017eby pro dal\u0161\u00ed nasazen\u00ed, tedy pln\u011b nov\u00fd klastr pro na\u0161e aplikace. Jakmile si RC ov\u011b\u0159\u00ed, \u017ee repliky byly spu\u0161t\u011bny, provede kontrolu jejich funk\u010dnosti pomoc\u00ed Health check. K tomu Deployer pou\u017e\u00edv\u00e1 p\u0159\u00edkaz GET \/health. Ten spust\u00ed p\u0159\u00edslu\u0161n\u00e9 kontroln\u00ed komponenty a zkontroluje v\u0161echny prvky zaji\u0161\u0165uj\u00edc\u00ed funkci klastru. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/f2ef0232e17bc69f0b70ea9eabc2f456.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJakmile v\u0161echny pody potvrd\u00ed svou \u201ezdravotn\u00ed\u201c situaci, Deployer vytvo\u0159\u00ed nov\u00fd konfigura\u010dn\u00ed prvek \u2013 distribuovan\u00e9 \u00falo\u017ei\u0161t\u011b etcd, kter\u00e9 se pou\u017e\u00edv\u00e1 uvnit\u0159 Kubernetes, v\u010detn\u011b uchov\u00e1v\u00e1n\u00ed konfigurace vyva\u017eova\u010de z\u00e1t\u011b\u017ee. Zapisujeme data do etcd a mal\u00fd n\u00e1stroj confd sleduje etcd na nov\u00e9 \u00fadaje. <\/p>\n<p>Pokud odhal\u00ed n\u011bjak\u00e9 zm\u011bny p\u016fvodn\u00ed konfigurace, vygeneruje nov\u00fd konfigura\u010dn\u00ed soubor a p\u0159ed\u00e1 ho ha-proxy. V tomto p\u0159\u00edpad\u011b se ha-proxy restartuje bez ztr\u00e1ty jak\u00fdchkoliv spojen\u00ed a sm\u011b\u0159uje z\u00e1t\u011b\u017e na nov\u00e9 slu\u017eby, kter\u00e9 zaji\u0161\u0165uj\u00ed fungov\u00e1n\u00ed nov\u00e9 verze na\u0161ich aplikac\u00ed. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/bef1536c2b8dee6b0da710fc6c6fda99.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJak vid\u00edte, p\u0159es bohatstv\u00ed komponent nen\u00ed nic slo\u017eit\u00e9ho. Sta\u010d\u00ed v\u011bnovat v\u00edce pozornosti API a etcd. Chci v\u00e1m pov\u011bd\u011bt o open-source deployeru, kter\u00fd sami pou\u017e\u00edv\u00e1me \u2013 Amdatu Kubernetes Deployer.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/34124e093d2e16fcbb80fd112c7d223f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe to n\u00e1stroj pro orchestraci nasazen\u00ed Kubernetes, kter\u00fd m\u00e1 funkce: <\/p>\n<ul>\n<li>nasazen\u00ed Blue\/Green;<\/li>\n<li>nastaven\u00ed extern\u00edho vyva\u017eova\u010de z\u00e1t\u011b\u017ee;<\/li>\n<li>spr\u00e1va deskriptor\u016f nasazen\u00ed;<\/li>\n<li>spr\u00e1va aktu\u00e1ln\u00edho nasazen\u00ed;<\/li>\n<li>kontrola funk\u010dnosti Health checks b\u011bhem nasazen\u00ed;<\/li>\n<li>vkl\u00e1d\u00e1n\u00ed prom\u011bnn\u00fdch prost\u0159ed\u00ed do pod\u016f.<\/li>\n<\/ul>\n<p>\nTento Deployer je vytvo\u0159en na vrcholu Kubernetes API a p\u0159edstavuje REST API pro spr\u00e1vu deskriptor\u016f a nasazen\u00ed, a tak\u00e9 Websocket API pro streamov\u00e1n\u00ed log\u016f b\u011bhem nasazen\u00ed.<\/p>\n<p>Um\u00eds\u0165uje data konfigurace vyva\u017eova\u010de z\u00e1t\u011b\u017ee do etcd, tak\u017ee nemus\u00edte pou\u017e\u00edvat ha-proxy s podporou \u201ep\u0159\u00edmo z krabice\u201c, ale m\u016f\u017eete snadno pou\u017e\u00edt sv\u016fj vlastn\u00ed konfigura\u010dn\u00ed soubor vyva\u017eova\u010de. Amdatu Deployer je naps\u00e1n v Go, stejn\u011b jako Kubernetes, a je licencov\u00e1n Apache.<\/p>\n<p>P\u0159ed t\u00edm, ne\u017e za\u010dnu pou\u017e\u00edvat tuto verzi deployera, vyu\u017eil jsem n\u00e1sleduj\u00edc\u00ed deskriptor nasazen\u00ed, ve kter\u00e9m jsou uvedeny pot\u0159ebn\u00e9 parametry. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/14e9ecca6ad772a43afcf95a4950fad8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJedn\u00edm z d\u016fle\u017eit\u00fdch parametr\u016f tohoto k\u00f3du je zapnut\u00ed p\u0159\u00edznaku \u201euseHealthCheck\u201c. Mus\u00edme uv\u00e9st, \u017ee b\u011bhem nasazen\u00ed by m\u011bla prob\u00edhat kontrola funk\u010dnosti. Tento parametr lze vypnout, kdy\u017e se v nasazen\u00ed pou\u017e\u00edvaj\u00ed kontejnery t\u0159et\u00edch stran, kter\u00e9 nen\u00ed pot\u0159eba kontrolovat. V tomto deskriptoru je tak\u00e9 uveden po\u010det replik a URL frontendu, kter\u00fd pot\u0159ebuje ha-proxy. Na konci je uveden p\u0159\u00edznak specifikace podu \u201epodspec\u201c, kter\u00fd se dotazuje Kubernetes na informace o konfiguraci port\u016f, obrazu atd. Je to pom\u011brn\u011b jednoduch\u00fd deskriptor ve form\u00e1tu JSON. <\/p>\n<p>Dal\u0161\u00edm n\u00e1strojem, kter\u00fd je sou\u010d\u00e1st\u00ed open-source projektu Amdatu, je Deploymentctl. M\u00e1 u\u017eivatelsk\u00e9 rozhran\u00ed UI pro konfiguraci nasazen\u00ed, uchov\u00e1v\u00e1 historii nasazen\u00ed a obsahuje webhooks pro zp\u011btn\u00e9 vol\u00e1n\u00ed od t\u0159et\u00edch stran a v\u00fdvoj\u00e1\u0159\u016f. M\u016f\u017eete UI nepou\u017e\u00edvat, proto\u017ee Amdatu Deployer je REST API, ale toto rozhran\u00ed v\u00e1m m\u016f\u017ee v\u00fdrazn\u011b usnadnit nasazen\u00ed bez zapojen\u00ed jak\u00e9hokoli API. Deploymentctl je naps\u00e1n v OSGi\/Vertx s vyu\u017eit\u00edm Angular 2. <\/p>\n<p>Nyn\u00ed p\u0159edvedu v\u00fd\u0161e uveden\u00e9 na obrazovce pomoc\u00ed p\u0159edem u\u010din\u011bn\u00e9ho z\u00e1znamu, tak\u017ee nebudete muset \u010dekat. Budeme nasazovat jednoduchou aplikaci na Go. Nebojte se, pokud jste se s Go dosud nesetkali, je to velmi jednoduch\u00e1 aplikace, tak\u017ee v\u00e1m bude v\u0161e jasn\u00e9. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/ab61ada396143e980d73a0bb8ff95076.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZde vytv\u00e1\u0159\u00edme HTTP server, kter\u00fd odpov\u00edd\u00e1 pouze na \/health, tak\u017ee tato aplikace kontroluje pouze funk\u010dnost health check a nic v\u00edc. Pokud test prob\u011bhne, aktivuje se JSON struktura uveden\u00e1 n\u00ed\u017ee. Obsahuje verzi aplikace, kter\u00e1 bude nasazena deployerem, message, kterou vid\u00edte v horn\u00ed \u010d\u00e1sti souboru, a logick\u00fd typ dat boolean \u2014 zda je na\u0161e aplikace funk\u010dn\u00ed nebo ne.<\/p>\n<p>S posledn\u00edm \u0159\u00e1dkem jsem trochu podv\u00e1d\u011bl, proto\u017ee jsem na za\u010d\u00e1tek souboru um\u00edstil pevnou hodnotu boolean, kter\u00e1 mi pozd\u011bji pom\u016f\u017ee nasadit i \u201enefunk\u010dn\u00ed\u201c aplikaci. Pozd\u011bji se s t\u00edmto vypo\u0159\u00e1d\u00e1me. <\/p>\n<p>Tak, poj\u010fme na to. Nejprve zkontrolujeme, zda jsou spu\u0161t\u011bny n\u011bjak\u00e9 pody pomoc\u00ed p\u0159\u00edkazu ~ kubectl get pods a podle absence odpov\u011bdi URL frontendu se ujist\u00edme, \u017ee v tuto chv\u00edli nen\u00ed \u017e\u00e1dn\u00e9 nasazen\u00ed. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/4da1ae467993d6e60ec539ae5ff136ff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa obrazovce vid\u00edte rozhran\u00ed Deploymentctl, kter\u00e9 jsem zm\u00ednil, kde se nastavuj\u00ed parametry nasazen\u00ed: prostor n\u00e1zv\u016f, n\u00e1zev aplikace, verze nasazen\u00ed, po\u010det replik, frontend-URL, n\u00e1zev kontejneru, obraz, limity zdroj\u016f, \u010d\u00edslo portu pro kontrolu zdrav\u00ed atd. Limity zdroj\u016f jsou velmi d\u016fle\u017eit\u00e9, proto\u017ee umo\u017e\u0148uj\u00ed co nejl\u00e9pe vyu\u017e\u00edt dostupn\u00fd hardware. Zde lze tak\u00e9 zobrazit z\u00e1znam nasazen\u00ed Deployment log.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/edf6a02b336f1abce61f0a323edeee9d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPokud nyn\u00ed znovu spust\u00edme p\u0159\u00edkaz ~ kubectl get pods, uvid\u00edme, \u017ee syst\u00e9m \"zamrzne\" na 20 sekund, b\u011bhem kter\u00fdch prob\u00edh\u00e1 rekonfigurace ha-proxy. Pot\u00e9 se pod spust\u00ed a na\u0161i repliku m\u016f\u017eeme vid\u011bt v z\u00e1znamu nasazen\u00ed. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/c6c8f6335e00d3a9cfcf4d4792ecf795.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVy\u0159adil jsem z videa 20 sekundov\u00e9 \u010dek\u00e1n\u00ed a nyn\u00ed vid\u00edte na obrazovce, \u017ee prvn\u00ed verze aplikace byla nasazena. To v\u0161e bylo provedeno pouze pomoc\u00ed UI. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/d21fa9ad71e22b2bb9efdfc7bc9c8771.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNyn\u00ed zkus\u00edme druhou verzi. K tomu zm\u011bn\u00edm zpr\u00e1vu aplikace z \"Hello, Kubernetes!\" na \"Hello, Deployer!\", syst\u00e9m vytvo\u0159\u00ed tento obraz a um\u00edst\u00ed ho do registru Docker, pot\u00e9 znovu stiskneme tla\u010d\u00edtko \"Deploy\" v okn\u011b Deploymentctl. T\u00edmto se automaticky spust\u00ed z\u00e1znam nasazen\u00ed stejn\u011b, jako tomu bylo p\u0159i nasazen\u00ed prvn\u00ed verze aplikace. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/e4ef784649fd18b1580d2562b318ac0f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u0159\u00edkaz ~ kubectl get pods ukazuje, \u017ee v tuto chv\u00edli jsou spu\u0161t\u011bny 2 verze aplikace, nicm\u00e9n\u011b frontend ukazuje, \u017ee st\u00e1le b\u011b\u017e\u00ed verze 1. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/1d4a9c91f836007325a2a2c833da8eff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVyva\u017eova\u010d z\u00e1t\u011b\u017ee \u010dek\u00e1, dokud prob\u011bhne kontrola zdrav\u00ed, po n\u00ed\u017e p\u0159esm\u011bruje provoz na novou verzi. Po 20 s se p\u0159epneme na curl a vid\u00edme, \u017ee nyn\u00ed je nasazena verze 2 aplikace, zat\u00edmco verze 1 byla odstran\u011bna. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/e123618251e9fcb1c14829772634b6e8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nBylo to nasazen\u00ed \"zdrav\u00e9\" \u2014 healthy \u2014 aplikace. Pod\u00edvejme se, co se stane, kdy\u017e pro novou verzi aplikace zm\u011bn\u00edm hodnotu parametru Healthy z true na false, tedy zkus\u00edm nasadit nezdravou aplikaci, kter\u00e1 nepro\u0161la kontrolou funk\u010dnosti. K tomu m\u016f\u017ee doj\u00edt, pokud byly v pr\u016fb\u011bhu v\u00fdvoje v aplikaci ud\u011bl\u00e1ny n\u011bjak\u00e9 chyby v konfiguraci a takto byla odesl\u00e1na do produkce. <\/p>\n<p>Jak vid\u00edte, nasazen\u00ed proch\u00e1z\u00ed v\u0161emi v\u00fd\u0161e uveden\u00fdmi f\u00e1zemi a ~ kubectl get pods ukazuje, \u017ee b\u011b\u017e\u00ed oba pody. Ale na rozd\u00edl od p\u0159edchoz\u00edho nasazen\u00ed log ukazuje stav timeout. To znamen\u00e1, \u017ee kv\u016fli tomu, \u017ee health check nepro\u0161el, nov\u00e1 verze aplikace nem\u016f\u017ee b\u00fdt nasazena. V\u00fdsledkem je, \u017ee vid\u00edte, \u017ee syst\u00e9m se vr\u00e1til k pou\u017eit\u00ed star\u00e9 verze aplikace a nov\u00e1 verze byla prost\u011b odstran\u011bna. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/4542761328603596704f21cef4c9d4a3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDobr\u00e9 na tom je, \u017ee i kdy\u017e m\u00e1te obrovsk\u00e9 mno\u017estv\u00ed sou\u010dasn\u00fdch po\u017eadavk\u016f, kter\u00e9 p\u0159ich\u00e1zej\u00ed do aplikace, u\u017eivatel\u00e9 si ani nev\u0161imnou prostoj\u016f b\u011bhem prov\u00e1d\u011bn\u00ed nasazen\u00ed. Pokud tuto aplikaci otestujete pomoc\u00ed frameworku Gatling, kter\u00fd j\u00ed pos\u00edl\u00e1 maxim\u00e1ln\u00ed mo\u017en\u00e9 mno\u017estv\u00ed po\u017eadavk\u016f, ani jeden z t\u011bchto po\u017eadavk\u016f nebude odm\u00edtnut. To znamen\u00e1, \u017ee na\u0161i u\u017eivatel\u00e9 si ani nev\u0161imnou aktualizac\u00ed verz\u00ed v re\u00e1ln\u00e9m \u010dase. Pokud bude aktualizace ne\u00fasp\u011b\u0161n\u00e1, pr\u00e1ce bude pokra\u010dovat na star\u00e9 verzi, a pokud bude \u00fasp\u011b\u0161n\u00e1 \u2013 u\u017eivatel\u00e9 p\u0159ejdou na novou verzi. <\/p>\n<p>Existuje pouze jedna v\u011bc, kter\u00e1 m\u016f\u017ee v\u00e9st k ne\u00fasp\u011bchu \u2013 pokud health check prob\u011bhl \u00fasp\u011b\u0161n\u011b a aplikace selhala, jakmile obdr\u017eela pracovn\u00ed z\u00e1t\u011b\u017e, tedy kolaps nastane a\u017e po dokon\u010den\u00ed nasazen\u00ed. V takov\u00e9m p\u0159\u00edpad\u011b se budete muset ru\u010dn\u011b vr\u00e1tit na starou verzi. Tak\u017ee jsme se pod\u00edvali, jak pou\u017e\u00edvat Kubernetes s ur\u010den\u00fdmi open-source n\u00e1stroji. Proces nasazen\u00ed bude mnohem jednodu\u0161\u0161\u00ed, pokud tyto n\u00e1stroje za\u010dlen\u00edte do Build\/Deploy pipelines. P\u0159itom k zah\u00e1jen\u00ed nasazen\u00ed m\u016f\u017eete pou\u017e\u00edt jak u\u017eivatelsk\u00e9 rozhran\u00ed, tak pln\u011b automatizovat tento proces pomoc\u00ed nap\u0159\u00edklad commit to master. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/43b638be9d334c6c4f8e9f4fc00ce2f9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e1\u0161 build server vytvo\u0159\u00ed Docker image, vlo\u017e\u00ed ho do Docker Hubu nebo jin\u00e9ho registru, kter\u00fd pou\u017e\u00edv\u00e1te. Docker Hub podporuje webhook, tak\u017ee m\u016f\u017eeme spustit vzd\u00e1len\u00e9 nasazen\u00ed prost\u0159ednictv\u00edm Deployer, jak bylo uvedeno v\u00fd\u0161e. T\u00edmto zp\u016fsobem lze pln\u011b automatizovat nasazen\u00ed aplikace do potenci\u00e1ln\u00edho produk\u010dn\u00edho prost\u0159ed\u00ed. <\/p>\n<p>P\u0159ejdeme k dal\u0161\u00edmu t\u00e9matu \u2013 \u0161k\u00e1lov\u00e1n\u00ed Kubernetes \u043a\u043b\u0430\u0441\u0442\u0435\u0440u. R\u00e1da bych poznamenala, \u017ee p\u0159\u00edkaz kubectl je p\u0159\u00edkaz pro \u0161k\u00e1lov\u00e1n\u00ed. Pomoc\u00ed n\u011bj m\u016f\u017eeme snadno zv\u00fd\u0161it po\u010det replik v na\u0161em existuj\u00edc\u00edm klastru. V praxi v\u0161ak obvykle chceme zvy\u0161ovat po\u010det nikoli pod\u016f, ale nod\u016f. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/890f436b4bc52c81f5db5b35e64e7e18.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nB\u011bhem pracovn\u00ed doby m\u016f\u017ee b\u00fdt pot\u0159eba zv\u00fd\u0161en\u00ed, zat\u00edmco v noci, pro sn\u00ed\u017een\u00ed n\u00e1klad\u016f na slu\u017eby Amazon, sn\u00ed\u017een\u00ed po\u010dtu spu\u0161t\u011bn\u00fdch instanc\u00ed aplikace. To neznamen\u00e1, \u017ee bude sta\u010dit \u0161k\u00e1lovat pouze po\u010det pod\u016f, proto\u017ee i kdy\u017e bude jeden z nod\u016f ne\u010dinn\u00fd, st\u00e1le za n\u011bj budete muset platit Amazonu. To znamen\u00e1, \u017ee krom\u011b \u0161k\u00e1lov\u00e1n\u00ed pod\u016f bude t\u0159eba tak\u00e9 \u0161k\u00e1lovat po\u010det pou\u017e\u00edvan\u00fdch stroj\u016f. <\/p>\n<p>To m\u016f\u017ee zp\u016fsobit pot\u00ed\u017ee, proto\u017ee bez ohledu na to, zda pou\u017e\u00edv\u00e1me Amazon nebo jinou cloudovou slu\u017ebu, Kubernetes nic nev\u00ed o po\u010dtu pou\u017e\u00edvan\u00fdch stroj\u016f. Postr\u00e1d\u00e1 n\u00e1stroj pro \u0161k\u00e1lov\u00e1n\u00ed syst\u00e9mu na \u00farovni nod\u016f. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/2f00b19f1cb665d8e7bd896fa419554c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTak\u017ee se budeme muset postarat jak o nody, tak o pody. Nov\u00e9 nody m\u016f\u017eeme snadno \u0161k\u00e1lovat pomoc\u00ed AWS API a skupiny stroj\u016f pro \u0161k\u00e1lov\u00e1n\u00ed pro nastaven\u00ed po\u010dtu pracovn\u00edch uzl\u016f Kubernetes. M\u016f\u017eeme tak\u00e9 pou\u017e\u00edt cloud-init nebo podobn\u00fd skript k registraci nod\u016f v klastru Kubernetes. <\/p>\n<p>Nov\u00fd server se spou\u0161t\u00ed ve skupin\u011b pro \u0161k\u00e1lov\u00e1n\u00ed, inicializuje se jako uzel, registruje se v hlavn\u00edm registru a za\u010d\u00edn\u00e1 pracovat. Po tomto kroku je mo\u017en\u00e9 zv\u00fd\u0161it po\u010det replik, kter\u00e9 vyu\u017eij\u00ed vznikl\u00e9 uzly. Zmen\u0161en\u00ed \u0161k\u00e1ly vy\u017eaduje v\u011bt\u0161\u00ed \u00fasil\u00ed, proto\u017ee je t\u0159eba zajistit, \u017ee tento krok neohroz\u00ed ji\u017e b\u011b\u017e\u00edc\u00ed aplikace po vypnut\u00ed \"nepot\u0159ebn\u00fdch\" server\u016f. Aby se tomuto sc\u00e9n\u00e1\u0159i p\u0159ede\u0161lo, je nutn\u00e9 p\u0159iv\u00e9st uzly do stavu \"neschedulable\". To znamen\u00e1, \u017ee v\u00fdchoz\u00ed pl\u00e1nova\u010d p\u0159i pl\u00e1nov\u00e1n\u00ed pod\u016f DaemonSet tyto uzly ignoruje. Pl\u00e1nova\u010d nic na t\u011bchto serverech neodstran\u00ed, ale nebude tam ani spou\u0161t\u011bt \u017e\u00e1dn\u00e9 nov\u00e9 kontejnery. Dal\u0161\u00edm krokem je vypr\u00e1zdn\u011bn\u00ed uzlu drain node, co\u017e znamen\u00e1 p\u0159esun pracovn\u00edch pod\u016f na jin\u00fd server, nebo na jin\u00e9 uzly, kter\u00e9 maj\u00ed dostate\u010dnou kapacitu. Pot\u00e9, co se zajist\u00edte, \u017ee na t\u011bchto uzlech ji\u017e \u017e\u00e1dn\u00e9 kontejnery nejsou, m\u016f\u017eete je odstranit z Kubernetes. Po tomto odstran\u011bn\u00ed pro Kubernetes jednodu\u0161e p\u0159estanou existovat. Pot\u00e9 je t\u0159eba pou\u017e\u00edt AWS API k deaktivaci nepot\u0159ebn\u00fdch uzl\u016f nebo server\u016f. <br \/>\nM\u016f\u017eete pou\u017e\u00edt Amdatu Scalerd \u2014 dal\u0161\u00ed open-source n\u00e1stroj pro \u0161k\u00e1lov\u00e1n\u00ed, kter\u00fd je podobn\u00fd AWS API. Poskytuje CLI pro p\u0159id\u00e1n\u00ed nebo odstran\u011bn\u00ed uzl\u016f ve clusteru. Jeho zaj\u00edmavou vlastnost\u00ed je mo\u017enost nastavit pl\u00e1nova\u010d pomoc\u00ed n\u00e1sleduj\u00edc\u00edho json souboru. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/f70c7c722cacb4792c316e9f80a7500a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZobrazen\u00fd k\u00f3d nap\u016fl sni\u017euje kapacitu clusteru b\u011bhem no\u010dn\u00edho obdob\u00ed. Je v n\u011bm nastavena jak st\u00e1vaj\u00edc\u00ed, tak po\u017eadovan\u00e1 kapacita cloudu Amazon. Pou\u017eit\u00ed tohoto pl\u00e1nova\u010de automaticky sn\u00ed\u017e\u00ed po\u010det uzl\u016f v noci a zv\u00fd\u0161\u00ed je r\u00e1no, co\u017e umo\u017en\u00ed u\u0161et\u0159it n\u00e1klady na pou\u017e\u00edv\u00e1n\u00ed uzl\u016f takov\u00e9 cloudov\u00e9 slu\u017eby, jako je Amazon. Tato funkce nen\u00ed integrov\u00e1na v Kubernetes, ale pou\u017eit\u00ed Scalerd v\u00e1m umo\u017en\u00ed \u0161k\u00e1lovat tuto platformu jakkoliv. <\/p>\n<p>Cht\u011bl bych v\u00e1s upozornit na to, \u017ee mi mnoz\u00ed lid\u00e9 \u0159\u00edkaj\u00ed: \u201eTo v\u0161e je v po\u0159\u00e1dku, ale co m\u00e1 datab\u00e1ze, kter\u00e1 obvykle z\u016fst\u00e1v\u00e1 v statick\u00e9m stavu?\u201c Jak lze n\u011bco podobn\u00e9ho spustit v tak dynamick\u00e9m prost\u0159ed\u00ed, jako je Kubernetes? Podle m\u00e9ho n\u00e1zoru byste to d\u011blat nem\u011bli, nem\u011bli byste se sna\u017eit organizovat pr\u00e1ci datov\u00e9ho \u00falo\u017ei\u0161t\u011b v Kubernetes. Technicky je to mo\u017en\u00e9 a na internetu jsou n\u00e1vody na toto t\u00e9ma, ale zna\u010dn\u011b v\u00e1m to zkomplikuje \u017eivot. <\/p>\n<p>Ano, v Kubernetes existuje pojem trval\u00fdch \u00falo\u017ei\u0161\u0165 a m\u016f\u017eete se pokusit spou\u0161t\u011bt takov\u00e1 datov\u00e1 \u00falo\u017ei\u0161t\u011b jako Mongo nebo MySQL, ale je to dost pracn\u00e9. To souvis\u00ed s t\u00edm, \u017ee datov\u00e1 \u00falo\u017ei\u0161t\u011b pln\u011b nepodporuj\u00ed interakci s dynamick\u00fdm prost\u0159ed\u00edm. V\u011bt\u0161ina datab\u00e1z\u00ed vy\u017eaduje zna\u010dn\u00e9 nastaven\u00ed, v\u010detn\u011b ru\u010dn\u00edho nastaven\u00ed clusteru, nemaj\u00ed r\u00e1dy automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a podobn\u00e9 v\u011bci. <br \/>\nProto si nekomplikuje \u017eivot sna\u017een\u00edm se spustit datov\u00e9 \u00falo\u017ei\u0161t\u011b v Kubernetes. Organizujte jejich pr\u00e1ci tradi\u010dn\u00edm zp\u016fsobem s vyu\u017eit\u00edm zn\u00e1m\u00fdch slu\u017eeb a jednodu\u0161e poskytn\u011bte Kubernetes mo\u017enost je vyu\u017e\u00edvat.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/129e8d403f42b7aa6fb022b386955e9e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa z\u00e1v\u011br t\u00e9to t\u00e9matiky bych v\u00e1s cht\u011bl sezn\u00e1mit s platformou Cloud RTI zalo\u017eenou na Kubernetes, na kter\u00e9 pracuje m\u016fj t\u00fdm. Ta zaji\u0161\u0165uje centralizovanou spr\u00e1vu log\u016f, monitoring aplikac\u00ed a cluster\u016f a m\u00e1 mnoho dal\u0161\u00edch u\u017eite\u010dn\u00fdch funkc\u00ed, kter\u00e9 se v\u00e1m hod\u00ed. Vyu\u017e\u00edv\u00e1 r\u016fzn\u00e9 open-source n\u00e1stroje, jako je Grafana pro zobrazen\u00ed monitoringu.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes v produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 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 produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2\" src=\"\/wp-content\/uploads\/2020\/06\/2b1b7ba139053fc492c7ad25e96f362f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPolo\u017eil se dotaz, pro\u010d pou\u017e\u00edvat s Kubernetes vyva\u017eova\u010d z\u00e1t\u011b\u017ee ha-proxy. Dobr\u00fd dotaz, proto\u017ee v sou\u010dasnosti existuj\u00ed 2 \u00farovn\u011b vyva\u017eov\u00e1n\u00ed z\u00e1t\u011b\u017ee. Slu\u017eby Kubernetes jsou st\u00e1le na virtu\u00e1ln\u00edch IP adres\u00e1ch. Nem\u016f\u017eete je pou\u017e\u00edt pro porty extern\u00edch hostitelsk\u00fdch stroj\u016f, proto\u017ee pokud Amazon p\u0159evede sv\u016fj cloudov\u00fd host, adresa se zm\u011bn\u00ed. Proto umis\u0165ujeme ha-proxy p\u0159ed slu\u017eby \u2014 abychom vytvo\u0159ili stabiln\u011bj\u0161\u00ed strukturu pro bezprobl\u00e9movou interakci provozu s Kubernetes. <\/p>\n<p>Dal\u0161\u00ed dobr\u00e1 ot\u00e1zka \u2013 jak lze zajistit zm\u011bnu sch\u00e9matu datab\u00e1ze p\u0159i prov\u00e1d\u011bn\u00ed blue\/green deployment? Vzhledem k tomu, \u017ee nez\u00e1le\u017e\u00ed na tom, zda pou\u017e\u00edv\u00e1te Kubernetes, zm\u011bna sch\u00e9matu datab\u00e1ze je slo\u017eit\u00fd \u00fakol. Mus\u00edte zajistit kompatibilitu star\u00e9ho a nov\u00e9ho sch\u00e9matu, po \u010dem\u017e budete moci aktualizovat datab\u00e1zi a pot\u00e9 aktualizovat samotn\u00e9 aplikace. M\u016f\u017eete prov\u00e9st \u201ehorkou v\u00fdm\u011bnu\u201c datab\u00e1ze, a pak aktualizovat aplikace. Zn\u00e1me lidi, kte\u0159\u00ed na\u010d\u00edtali zcela nov\u00fd cluster datab\u00e1ze s nov\u00fdm sch\u00e9matem, co\u017e je mo\u017enost, pokud m\u00e1te datab\u00e1zi bez sch\u00e9matu, jako je Mongo, ale v ka\u017ed\u00e9m p\u0159\u00edpad\u011b to nen\u00ed jednoduch\u00fd \u00fakol. Pokud nejsou \u017e\u00e1dn\u00e9 dal\u0161\u00ed ot\u00e1zky, d\u011bkuji za pozornost!<\/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=\"P\u0159ehr\u00e1t 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>Mal\u00e1 reklama \ud83d\ude42<\/h3>\n<p>\nD\u011bkujeme, \u017ee s n\u00e1mi z\u016fst\u00e1v\u00e1te. L\u00edb\u00ed se v\u00e1m na\u0161e \u010dl\u00e1nky? Chcete vid\u011bt v\u00edce zaj\u00edmav\u00fdch materi\u00e1l\u016f? Podpo\u0159te n\u00e1s objedn\u00e1vkou nebo doporu\u010den\u00edm zn\u00e1m\u00fdm, <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">cloudov\u00e9 VPS pro v\u00fdvoj\u00e1\u0159e od 4,99 $<\/a><\/noindex>, <b>unik\u00e1tn\u00ed alternativa entry-level server\u016f, kterou jsme pro v\u00e1s vymysleli:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">V\u0161echny pravdy o VPS (KVM) E5-2697 v3 (6 jader) 10GB DDR4 480GB SSD 1Gbps od 19 $ nebo jak spr\u00e1vn\u011b rozd\u011blit server?<\/a><\/noindex> (k dispozici varianty s RAID1 a RAID10, a\u017e 24 jader a a\u017e 40GB DDR4).<\/p>\n<p><b>Dell R730xd je dvakr\u00e1t levn\u011bj\u0161\u00ed v datov\u00e9m centru Equinix Tier IV v Amsterdamu?<\/b> Jen 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 $<\/a><\/noindex> v Nizozemsku! <b>Dell R420 \u2014 2x E5-2430 2.2GHz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 od 99 $!<\/b><\/b> \u010ct\u011bte o tom <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Jak postavit infrastrukturu podnikov\u00e9 t\u0159\u00eddy s pou\u017eit\u00edm server\u016f Dell R730xd E5-2650 v4 v hodnot\u011b 9000 eur za pakatel?<\/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.3 - 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\/cs\/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.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\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\/cs\/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 produkci: Blue\/Green deployment, automatick\u00e9 \u0161k\u00e1lov\u00e1n\u00ed a automatizace nasazen\u00ed. \u010c\u00e1st 2 | ProHoster","description":"Kubernetes je skv\u011bl\u00fd n\u00e1stroj pro spu\u0161t\u011bn\u00ed kontejner\u016f Docker v clusterovan\u00e9 v\u00fdrobn\u00ed prost\u0159ed\u00ed. Existuj\u00ed v\u0161ak \u00fakoly, kter\u00e9 Kubernetes nem\u016f\u017ee vy\u0159e\u0161it.","canonical_url":"https:\/\/prohoster.info\/cs\/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":"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\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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/83787","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=83787"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/83787\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/83788"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=83787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=83787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=83787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}