{"id":52688,"date":"2019-11-14T00:00:00","date_gmt":"2019-11-13T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie"},"modified":"2020-02-18T14:00:29","modified_gmt":"2020-02-18T11:00:29","slug":"strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie","title":{"rendered":"Kubernetesi v\u00e4ljundistrateegiad: rolling, recreate, blue\/green, canary, dark (A\/B testimine)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>M\u00e4rkus:<\/b> See \u00fclevaatlik materjal Weaveworksilt tutvustab k\u00f5ige populaarsemaid rakenduste v\u00e4ljundistrateegiaid ning r\u00e4\u00e4gib, kuidas nende rakendamine on v\u00f5imalik Kubernetes'i operaatori Flagger abil. Tekst on kirjutatud arusaadavas keeles ja sisaldab visuaalseid skeeme, mis aitavad k\u00fcsimust m\u00f5ista isegi algajatele inseneridele.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi v\u00e4ljundistrateegiad: rolling, recreate, blue\/green, canary, dark (A\/B testimine)\" src=\"\/wp-content\/uploads\/2019\/11\/8d32d63c9986e9f5b35ccca74a546d42.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Skeem on v\u00f5etud <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.container-solutions.com\/kubernetes-deployment-strategies\">teisest \u00fclevaatest<\/a><\/noindex> rakenduste v\u00e4ljundistrateegiatest, mille tegi Container Solutions<\/i><\/p>\n<p>\u00dcks suurimaid probleeme cloud native rakenduste arendamisel t\u00e4na on v\u00e4ljaande kiirus. Mikroteenuste l\u00e4henemise korral t\u00f6\u00f6tavad arendajad juba t\u00e4ielikult moodulaarsete rakendustega ja projekteerivad neid, v\u00f5imaldades erinevatel meeskondadel samal ajal koodi kirjutada ja rakenduses muudatusi teha.<\/p>\n<p>L\u00fchemate ja sagedamate v\u00e4ljundite eelised on j\u00e4rgmised:<\/p>\n<ul>\n<li> Turule p\u00e4\u00e4semise aeg on l\u00fchem.<\/li>\n<li> Uued funktsioonid j\u00f5uavad kiiremini kasutajateni.<\/li>\n<li> Kasutajate tagasiside j\u00f5uab kiiremini arendajate meeskonnani. See t\u00e4hendab, et meeskond saab funktsioone t\u00e4iendada ja probleeme kiiremini lahendada.<\/li>\n<li> Arendajate moraal t\u00f5useb: rohkem funktsioone arendusprotsessis muudab t\u00f6\u00f6 huvitavamaks.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKuid koos v\u00e4ljaande sageduse suurenemisega kasvab ka t\u00f5en\u00e4osus, et see m\u00f5jutab negatiivselt rakenduse usaldusv\u00e4\u00e4rsust v\u00f5i kasutajakogemust. Seep\u00e4rast on operatsioonimeeskondade ja DevOpsi jaoks oluline \u00fcles ehitada protsessid ja hallata juurutusstrateegiaid viisil, mis v\u00e4hendab riski tootele ja kasutajatele. (Rohkem teavet CI\/CD torujuhtme automatiseerimise kohta leiate <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/assets\/images\/blta8084030436bce24\/CICD_eBook_Web.pdf\">siit<\/a><\/noindex>.)<\/p>\n<p>Selles publikatsioonis arutame erinevaid juurutusstrateegiaid Kuberneteses, sealhulgas j\u00e4rkj\u00e4rgulisi juurutusi ja t\u00e4iustatud meetodeid, nagu kanar\u00fc\u00fcde (canary) kasutuselev\u00f5tt ja nende variandid.<\/p>\n<h2>Juurutamise strateegiad<\/h2>\n<p>\nOn mitmeid erinevaid juurutusstrateegiaid, millest saad valida s\u00f5ltuvalt eesm\u00e4rgist. N\u00e4iteks v\u00f5ib sul tekkida vajadus teha muudatusi mingis keskkonnas edasiseks katsetamiseks, v\u00f5i alamhulgale kasutajatele\/klientidele, v\u00f5i v\u00f5ib tekkida vajadus viia l\u00e4bi piiratud testimine kasutajatega, enne kui teha mingi funktsioon <i>avalikuks<\/i>.<\/p>\n<h3>J\u00e4rkj\u00e4rguline (rolling) juurutamine<\/h3>\n<p>\nSee on Kubernetes'i tavaline juurutamisstrateegia. See asendab j\u00e4rk-j\u00e4rgult, \u00fcksikisikute kaupa, vanad pod'id uute versioonidega - katkestamata klastrit.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi v\u00e4ljundistrateegiad: rolling, recreate, blue\/green, canary, dark (A\/B testimine)\" src=\"\/wp-content\/uploads\/2019\/11\/cbd490f1ef8311ff4c242726e947248c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKubernetes ootab, kuni uued pod'id on t\u00f6\u00f6ks valmis (kontrollides neid <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/blog\/resilient-apps-with-liveness-and-readiness-probes-in-kubernetes\">valmiduskatsete<\/a><\/noindex>), enne kui alustatakse vanade kokkukutsumist. Kui tekib probleem, saab niisugust j\u00e4tkuvat v\u00e4rskendust katkestada, peatamata kogu klastrit. YAML-faili, mis kirjeldab juurutamise t\u00fc\u00fcpi, uus pilt asendab vana pildi:<\/p>\n<pre><code class=\"plaintext\">apiVersion: apps\/v1beta1\nkind: Deployment\nmetadata:\n  name: awesomeapp\nspec:\n  replicas: 3\n  template:\n    metadata:\n      labels:\n        app: awesomeapp\n    spec:\n      containers:\n        - name: awesomeapp\n          image: imagerepo-user\/awesomeapp:new\n          ports:\n            - containerPort: 8080<\/code><\/pre>\n<p>\nJ\u00e4rk-j\u00e4rgult uuendamise parameetreid saab t\u00e4psustada manifestifailis:<\/p>\n<pre><code class=\"plaintext\">spec:\n  replicas: 3\n  strategy:\n    type: RollingUpdate\n    rollingUpdate:\n       maxSurge: 25%\n       maxUnavailable: 25%\n  template:\n  ...\n<\/code><\/pre>\n<p><\/p>\n<h3>Recreate (uuesti loomine)<\/h3>\n<p>\nSelles k\u00f5ige lihtsamas juurutamise t\u00fc\u00fcbist tapetakse vanad pod'id k\u00f5ik korraga ja asendatakse uutega:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi v\u00e4ljundistrateegiad: rolling, recreate, blue\/green, canary, dark (A\/B testimine)\" src=\"\/wp-content\/uploads\/2019\/11\/46168e36b7f44c76bcea40ab3a1a2cad.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAsjakohane manifest n\u00e4eb v\u00e4lja umbes nii:<\/p>\n<pre><code class=\"plaintext\">spec:\n  replicas: 3\n  strategy:\n    type: Recreate\n  template:\n  ...<\/code><\/pre>\n<p><\/p>\n<h3>Blue\/Green (sinine\/roheline juurdamine)<\/h3>\n<p>\nSinine-roheline juurutamisstrateegia (mida nimetatakse ka punaseks\/mustaks) h\u00f5lmab vana (roheline) ja uue (sinine) versiooni rakenduse samaaegset juurutamist. P\u00e4rast m\u00f5lema versiooni paigaldamist saavad tavalised kasutajad juurdep\u00e4\u00e4su rohelisele, samas kui sinine versioon on QA meeskonnale automaatsete testide tegemiseks saadaval l\u00e4bi eraldi teenuse v\u00f5i otsese portide edastamise:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi v\u00e4ljundistrateegiad: rolling, recreate, blue\/green, canary, dark (A\/B testimine)\" src=\"\/wp-content\/uploads\/2019\/11\/6664b625c99e089acf01c92edce0b45a.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<pre><code class=\"plaintext\">apiVersion: apps\/v1beta1\nkind: Deployment\nmetadata:\n  name: awesomeapp-02\nspec:\n  template:\n    metadata:\n      labels:\n        app: awesomeapp\n        version: \"02\"<\/code><\/pre>\n<p>\nP\u00e4rast seda, kui sinine (uus) versioon on testitud ja selle v\u00e4ljalaskmine on heaks kiidetud, l\u00fclitutakse teenuse kasutamisele ning roheline (vana) sulgedakse:<\/p>\n<pre><code class=\"plaintext\">apiVersion: v1\nkind: Service\nmetadata:\n  name: awesomeapp\nspec:\n  selector:\n    app: awesomeapp\n    version: \"02\"\n...<\/code><\/pre>\n<p><\/p>\n<h3>Kanareejad (kanareepide juurutamised)<\/h3>\n<p>\nKanareepide juurutamised sarnanevad sinine-roheline l\u00e4henemisega, kuid neid juhitakse paremini ja nad kasutavad <noindex><a rel=\"nofollow\" href=\"https:\/\/redmonk.com\/jgovernor\/2018\/08\/06\/towards-progressive-delivery\/\">progressiivset<\/a><\/noindex> etapilist l\u00e4henemist. Sellesse t\u00fc\u00fcpi kuuluvad mitmed erinevad strateegiad, sealhulgas \"peidetud\" k\u00e4ivitused ja A\/B-testimine.<\/p>\n<p>Seda strateegiat kasutatakse, kui on vaja testida uut funktsionaalsust, reeglina rakenduse tagaplaanil. L\u00e4henemise olemus on luua kaks praktiliselt identset serverit: \u00fcks teenindab enamiku kasutajatest, teine, uutega, teenindab vaid v\u00e4ikest kasutajate r\u00fchma, mille j\u00e4rel v\u00f5rreldakse nende tulemusi. Kui k\u00f5ik l\u00e4heb probleemideta, tutvustatakse uut versiooni j\u00e4rk-j\u00e4rgult kogu infrastruktuuri.<\/p>\n<p>Kuigi seda strateegiat saab teostada ainult Kubernetes'e t\u00f6\u00f6riistadega, asendades vanad pod'id uutega, on palju mugavam ja lihtsam kasutada teenuse mesh'i, nagu Istio.<\/p>\n<p>N\u00e4iteks v\u00f5ivad teil olla kaks erinevat manifesti Git'is: tavaline versioon, millel on silt 0.1.0, ja \"kanar\" versioon, millel on silt 0.2.0. Muutades kaalu virtuaalse ukse Istio manfestis, saab juhtida liikluse jagunemist nende kahe juurutamise vahel:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi v\u00e4ljundistrateegiad: rolling, recreate, blue\/green, canary, dark (A\/B testimine)\" src=\"\/wp-content\/uploads\/2019\/11\/d75dc34fea187c4e67879d0f64f9251c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nK\u00e4esolevas dokumendis on samm-sammuline juhend kanaaride kasutuselev\u00f5ttude rakendamiseks Istio abil <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/blog\/gitops-workflows-for-istio-canary-deployments\">GitOps Workflow'id koos Istio'ga<\/a><\/noindex>. <i>(<b>M\u00e4rk. t\u00f5lge.<\/b>: Samuti t\u00f5lkisime materjali kanaaride kasutuselev\u00f5ttude kohta Istio's <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/440378\/\">siit<\/a><\/noindex>.)<\/i><\/p>\n<h4>Kanaaride kasutuselev\u00f5tud Weaveworks Flagger'iga<\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.flagger.app\/\">Weaveworks Flagger<\/a><\/noindex> v\u00f5imaldab h\u00f5lpsasti ja t\u00f5husalt hallata kanarooli v\u00e4ljaandeid.<\/p>\n<p>Flagger automatiseerib nende t\u00f6\u00f6tluse. See kasutab Istio v\u00f5i AWS App Mesh'i liikluse suunamiseks ja vahetamiseks ning Prometheuse statistikat tulemuste anal\u00fc\u00fcsimiseks. Lisaks saab kanarooli v\u00e4ljaannete anal\u00fc\u00fcsi t\u00e4iendada veebihook'idega, et l\u00e4bi viia aktsepteerimisteste, koormusteste ja muid kontrolle.<\/p>\n<p>Kubernetes'i juurutamisest ja vajadusel pod'ide horisontaalsest skaleerimisest (HPA), loob Flagger hulk objekte (Kubernetes'i juurutamised, ClusterIP teenused ja virtuaalsed teenused Istios v\u00f5i App Meshis) kanarjuurutuste anal\u00fc\u00fcsi ja rakendamiseks:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi v\u00e4ljundistrateegiad: rolling, recreate, blue\/green, canary, dark (A\/B testimine)\" src=\"\/wp-content\/uploads\/2019\/11\/99aa426bbcf59edcb70d5637e32d8ff7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nRakendades juhtimiskontuuri <i>(kontrolli silmus)<\/i>, Flagger suunab j\u00e4rk-j\u00e4rgult liikluse kanarserverile, samal ajal m\u00f5\u00f5tes v\u00f5tme tulemuslikkuse n\u00e4itajaid, nagu eduka HTTP-p\u00e4ringu osakaal, p\u00e4ringu keskmine kestus ja pod'ide tervis. KPI (v\u00f5tme tulemuslikkuse n\u00e4itajate) anal\u00fc\u00fcsi p\u00f5hjal kas suureneb v\u00f5i kahaneb kanarite osa, ning anal\u00fc\u00fcsi tulemused avaldatakse Slackis. Selle protsessi kirjeldust ja demonstreerimist leiate materjalist. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/blog\/progressive-delivery-for-aws-app-mesh\">Progressiivne kohaletoimetamine App Mesh'i jaoks<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi v\u00e4ljundistrateegiad: rolling, recreate, blue\/green, canary, dark (A\/B testimine)\" src=\"\/wp-content\/uploads\/2019\/11\/f9fa1ba66edecc2b3e971952a318ea40.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Tumedad (salajased) v\u00f5i A\/B-deploy'd<\/h3>\n<p>\nSalajane deploy on veel \u00fcks kanaristrateegia variatsioon (mille puhul suudab Flagger samuti toimida). Erinevus salajase ja kanarise deploy vahel seisneb selles, et salajased deploy'd tegelevad esiplaaniga, mitte tagaplaaniga, nagu kanaris\u00fcsteem.<\/p>\n<p>Need deploy'd on tuntud ka kui A\/B-testimine. Selle asemel, et avada uus funktsioon k\u00f5igile kasutajatele, pakutakse seda vaid piiratud osale. T\u00fc\u00fcpiliselt ei tea need kasutajad, et nad on pioneeritestidest (seet\u00f5ttu ka termin 'salajane deploy').<\/p>\n<p>Funktsionaalsuse l\u00fclitite abil <i>(feature toggles)<\/i> ja teiste t\u00f6\u00f6riistade abil saab j\u00e4lgida, kuidas kasutajad suhtlevad uue funktsiooniga, kas see k\u00f6idab neid v\u00f5i peavad nad uut kasutajaliidest segaseks, ning muid t\u00fc\u00fcpe metrikat.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi v\u00e4ljundistrateegiad: rolling, recreate, blue\/green, canary, dark (A\/B testimine)\" src=\"\/wp-content\/uploads\/2019\/11\/037b5ccca2e1d99ac142d2ce734f954d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Flagger ja A\/B-deploy'd<\/h4>\n<p>\nLisaks kaalu arvestavale suunamisele saab Flagger suunata kanarieserverile ka HTTP parameetrite p\u00f5hjal. A\/B-testimise korral saab kasutada HTTP p\u00e4iseid v\u00f5i k\u00fcpsiseid, et suunata kindlat kasutajasegmenti. See on eriti t\u00f5hus frontend-rakenduste puhul, mis n\u00f5uavad sessiooni kinnitamist serveriga. <i>(sessiooni kinnitamine)<\/i>. T\u00e4iendavat teavet leiate Flaggeri dokumentatsioonist.<\/p>\n<p><i>Autor t\u00e4nab <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stefanprodan\">Stefan Prodanit<\/a><\/noindex>, Weaveworksi inseneri (ja Flaggeri looja), k\u00f5igi nende h\u00e4mmastavate juurutusdiagrammide eest.<\/i><\/p>\n<h2>P.S. t\u00f5lkija m\u00e4rkused<\/h2>\n<p>\nLugege ka meie blogist:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447180\/\">Kubernetes'e Ingress kontrollerite \u00fclevaade ja v\u00f5rdlus<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/460351\/\">werf \u2014 meie CI\/CD t\u00f6\u00f6riist Kubernetesis (\u00fclevaade ja videoettekanne)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/469541\/\">\u00dchesuguste mikroteenuste kogumine ja juurutamine werfi ja GitLab CI-ga.<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/458878\/\">Mis on GitOps?<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/471620\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u043c. \u043f\u0435\u0440\u0435\u0432.: \u042d\u0442\u043e\u0442 \u043e\u0431\u0437\u043e\u0440\u043d\u044b\u0439 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u043e\u0442 Weaveworks \u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442 \u0441 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c\u0438 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f\u043c\u0438 \u0432\u044b\u043a\u0430\u0442\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u0445 \u0438\u0437 \u043d\u0438\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Kubernetes-\u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 Flagger. \u041e\u043d \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043f\u0440\u043e\u0441\u0442\u044b\u043c \u044f\u0437\u044b\u043a\u043e\u043c \u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u0442 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0435 \u0441\u0445\u0435\u043c\u044b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0432\u043e\u043f\u0440\u043e\u0441\u0435 \u0434\u0430\u0436\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0449\u0438\u043c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430\u043c. \u0421\u0445\u0435\u043c\u0430 \u0432\u0437\u044f\u0442\u0430 \u0438\u0437 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043e\u0431\u0437\u043e\u0440\u0430 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0439 \u0432\u044b\u043a\u0430\u0442\u0430, \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u043e\u0433\u043e \u0432 Container Solutions \u041e\u0434\u043d\u043e\u0439 \u0438\u0437 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-52688","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0434\u0435\u043f\u043b\u043e\u044f \u0432 Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-13T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:29+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Juurutamisstrateegiad Kubernetesis: rolling, recreate, blue\/green, canary, dark (A\/B-testimine) | ProHoster","description":"M\u00e4rk.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0434\u0435\u043f\u043b\u043e\u044f \u0432 Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435) | ProHoster","og:description":"\u041f\u0440\u0438\u043c.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-13T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:29+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"52688","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 04:27:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:03:32","updated":"2026-01-24 04:27:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/52688","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=52688"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/52688\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=52688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=52688"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=52688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}