{"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":"Kuberneteses kasutatavad deploy strateegiad: rolling, recreate, blue\/green, canary, dark (A\/B testimine)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>M\u00e4rkus t\u00f5lkes:<\/b> See \u00fclevaatlik materjal Weaveworksilt tutvustab k\u00f5ige populaarsemaid rakenduste v\u00e4ljaandmise strateegiaid ja selgitab, kuidas rakendada k\u00f5ige arenenumaid neist Kubernetesi operaatori Flaggeriga. See on kirjutatud lihtsas keeles ja sisaldab visuaalseid skeeme, mis aitavad m\u00f5ista teemat isegi algajatel inseneridel.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Kuberneteses kasutatavad deploy strateegiad: 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 p\u00e4rit <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.container-solutions.com\/kubernetes-deployment-strategies\">teisest \u00fclevaatest<\/a><\/noindex> v\u00e4ljandusstrateegiate kohta, mille on koostanud Container Solutions<\/i><\/p>\n<p>\u00dcks suurimaid probleeme t\u00e4nap\u00e4eva pilvaseente rakenduste arendamisel on v\u00e4ljaande kiirus. Mikroteenuste l\u00e4henemisviisis t\u00f6\u00f6tavad arendajad juba t\u00e4iesti modulaarsete rakendustega ja kavandavad neid, v\u00f5imaldades erinevatele meeskondadele samal ajal koodi kirjutada ja rakenduses muudatusi teha.<\/p>\n<p>L\u00fchematel ja sagedasematel v\u00e4ljaannetel on j\u00e4rgmised eelised:<\/p>\n<ul>\n<li> L\u00fchendatakse turule j\u00f5udmise aega.<\/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 motivatsioon t\u00f5useb: rohkemate funktsioonide arendamisel on huvitavam t\u00f6\u00f6tada.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAga v\u00e4ljaannete sageduse suurenedes t\u00f5useb ka risk, et see v\u00f5ib negatiivselt m\u00f5jutada rakenduse usaldusv\u00e4\u00e4rsust v\u00f5i kasutajakogemust. Just seet\u00f5ttu on tegevus- ja DevOps-meeskondade jaoks oluline ehitada protsessid ja hallata v\u00e4ljaandmisstrateegiaid nii, et minimeerida riske tootele ja kasutajatele. (Lisainfot CI\/CD t\u00f6\u00f6voogude automatiseerimise kohta leiate <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/assets\/images\/blta8084030436bce24\/CICD_eBook_Web.pdf\">siin<\/a><\/noindex>.)<\/p>\n<p>Selles publikatsioonis arutame erinevaid v\u00e4ljaandmisstrateegiaid Kubernetesis, sealhulgas j\u00e4rk-j\u00e4rgulisi v\u00e4ljaandeid ja arenenumaid meetodeid, nagu kanariv\u00e4ljaanded ja nende variatsioonid.<\/p>\n<h2>Juurutamisstrateegiad<\/h2>\n<p>\nOn olemas mitmeid erinevaid v\u00e4ljaandmisstrateegiaid, mida saab kasutada s\u00f5ltuvalt eesm\u00e4rgist. N\u00e4iteks v\u00f5ite vajada muudatusi mingis keskkonnas edasiseks testimiseks, v\u00f5i alagrupis kasutajatest\/klientidest, v\u00f5i v\u00f5ib olla vajalik teostada piiratud testimine kasutajate seas enne m\u00f5ne funktsiooni <i>avalikustamist<\/i>.<\/p>\n<h3>Rolling (j\u00e4rkj\u00e4rguline, \u201e\u00fclesehitav\u201c v\u00e4ljaanne)<\/h3>\n<p>\nSee on Kubernetes'i standardne juurutamisstrateegia. See asendab j\u00e4rk-j\u00e4rgult, \u00fcksikasju pidi, vana versiooniga pod'id uutega \u2014 ilma klastripausideta.<\/p>\n<p><img decoding=\"async\" alt=\"Kuberneteses kasutatavad deploy strateegiad: 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 l\u00e4bi <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/blog\/resilient-apps-with-liveness-and-readiness-probes-in-kubernetes\">valmidustestidega<\/a><\/noindex>), enne kui ta alustab vanade sulgemist. Kui tekib probleem, saab sellist uuendust katkestada, ilma et kogu klaster peatuks. YAML-failis, mis kirjeldab juurutamise t\u00fc\u00fcpi, asendab uus pilt vana:<\/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\u00e4rkj\u00e4rgulise uuendamise parameetreid saab t\u00e4psustada maniifestifailis:<\/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 lihtsas juurutamise t\u00fc\u00fcbis tapetakse k\u00f5ik vanad pod'id korraga ja asendatakse uutega:<\/p>\n<p><img decoding=\"async\" alt=\"Kuberneteses kasutatavad deploy strateegiad: 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 maniifesteeritud n\u00e4eb v\u00e4lja ligikaudu 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 juurutamine)<\/h3>\n<p>\nSinise-kase juurutamise strateegia (m\u00f5nikord nimetatakse seda ka punase\/musta s\u00fcsteemiks) h\u00f5lmab vana (rohelise) ja uue (sinise) versiooni rakenduse samaaegset juurutamist. P\u00e4rast m\u00f5lema versiooni paigutamist saavad tavakasutajad juurdep\u00e4\u00e4su rohelisele, samal ajal kui sinine on k\u00e4tketud QA meeskonnale automaatsete testide l\u00e4biviimiseks l\u00e4bi eraldi teenuse v\u00f5i otseportide suunamise:<\/p>\n<p><img decoding=\"async\" alt=\"Kuberneteses kasutatavad deploy strateegiad: 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 release on heaks kiidetud, l\u00fclitatakse teenus sellele \u00fcle, samal ajal kui roheline (vana) suletakse:<\/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>Canary (kanaride juurutamine)<\/h3>\n<p>\nKanari juurutamised on sarnased sinise-rohelise s\u00fcsteemiga, kuid paremini hallatud ja kasutavad <noindex><a rel=\"nofollow\" href=\"https:\/\/redmonk.com\/jgovernor\/2018\/08\/06\/towards-progressive-delivery\/\">proportsionaalset<\/a><\/noindex> j\u00e4rkj\u00e4rgulist l\u00e4henemist. Sellesse t\u00fc\u00fcpi kuulub mitmeid erinevaid strateegiaid, sealhulgas \u201evarjatud\u201d k\u00e4ivitamised ja A\/B testimine.<\/p>\n<p>Seda strateegiat rakendatakse, kui on vajalik testida uut funktsionaalsust, tavaliselt rakenduse tagapool. L\u00e4henemise olemus seisneb kahe praktiliselt identse serveri loomises: \u00fcks teenindab peaaegu k\u00f5iki kasutajaid, samas kui teine, uute funktsioonidega, teenindab vaid v\u00e4ikest alagruppi kasutajatest, mille j\u00e4rel v\u00f5rreldakse nende t\u00f6\u00f6 tulemusi. Kui k\u00f5ik l\u00e4heb ladusalt, viiakse uus versioon j\u00e4rk-j\u00e4rgult kogu infrastruktuuri.<\/p>\n<p>Kuigi seda strateegiat saab rakendada ainult Kubernetes'e vahenditega, asendades vanad pod'id uute vastu, on palju mugavam ja lihtsam kasutada teenuste v\u00f5rku, nagu Istio.<\/p>\n<p>N\u00e4iteks v\u00f5ite omada kahte erinevat manifesti Git'is: tavaline, millel on silt 0.1.0, ja \"kanar\" siltidega 0.2.0. Muutes kaalud Istio virtuaalse v\u00e4rava manifestis, saate kasutada nende kahe juurutamise vahelise liikluse jaotust:<\/p>\n<p><img decoding=\"async\" alt=\"Kuberneteses kasutatavad deploy strateegiad: 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 \/>\nSamm-sammuline juhend kanaari deployment'ide rakendamiseks Istio abil leiate materjalist <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/blog\/gitops-workflows-for-istio-canary-deployments\">GitOps t\u00f6\u00f6vood Istio'ga<\/a><\/noindex>. <i>(<b>M\u00e4rkus t\u00f5lke kohta.<\/b>: Oleme samuti t\u00f5lkinud materjali kanaari v\u00e4ljalaskmise kohta Istios <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/440378\/\">siin<\/a><\/noindex>.)<\/i><\/p>\n<h4>Kanaari deployment'id 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 kanaari v\u00e4ljalaskmisi.<\/p>\n<p>Flagger automatiseerib nendega t\u00f6\u00f6tamise. See kasutab liikumise ja liikluse suunamise jaoks Istio v\u00f5i AWS App Mesh'i ning tulemuste anal\u00fc\u00fcsimiseks Prometheuse m\u00f5\u00f5dikuid. Lisaks saab kanaari deployment'ide anal\u00fc\u00fcsi t\u00e4iendada veebiluhtidega vastuv\u00f5tu testide, koormustestide ja muude kontrollide l\u00e4biviimiseks.<\/p>\n<p>Kubernetes'i juurutamise p\u00f5hjal ja vajadusel horisontaalse pod'i suurendamise (HPA) abil loob Flagger kogumeid objektidest (Kubernetes'i juurutamised, ClusterIP teenused ja Istio v\u00f5i App Mesh virtuaalsed teenused) kanarjuurutuste anal\u00fc\u00fcsi ja rakendamise jaoks:<\/p>\n<p><img decoding=\"async\" alt=\"Kuberneteses kasutatavad deploy strateegiad: 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 juhtimists\u00fcklit <i>(control loop)<\/i>, Flagger suunab j\u00e4rk-j\u00e4rgult liikluse kanariserverile, samal ajal m\u00f5\u00f5tes p\u00f5hin\u00e4itajaid, nagu edukate HTTP-p\u00e4ringute osakaal, keskmine p\u00e4ringu kestus ja pod'ide seisund. KPI (p\u00f5hin\u00e4itajate) anal\u00fc\u00fcsist s\u00f5ltuvalt kas kanariosa kasvab v\u00f5i v\u00e4heneb ning anal\u00fc\u00fcsi tulemused avaldatakse Slackis. Selle protsessi kirjelduse ja demonstreerimise leiate artiklist. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/blog\/progressive-delivery-for-aws-app-mesh\">Progressive Delivery for App Mesh<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Kuberneteses kasutatavad deploy strateegiad: 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>Tume (peidetud) v\u00f5i A\/B-juhtimised<\/h3>\n<p>\nPeidetud juurdev\u00f5tt on veel \u00fcks kanarbiku strateegia variatsioon (mille jaoks v\u00f5ib Flagger samuti t\u00f6\u00f6tada). Erinevus peidetud ja kanarbiku juurdev\u00f5tte vahel on see, et peidetud juurdev\u00f5tt tegeleb esik\u00fcljega, mitte tagak\u00fcljega, nagu kanarbiku.<\/p>\n<p>Teine nimi nendele juurdev\u00f5ttedele on A\/B-testimine. Selle asemel, et avada uue funktsiooni juurdev\u00f5tt k\u00f5igile kasutajatele, pakutakse seda ainult piiratud osale neist. Tavaline on, et need kasutajad ei tea, et nad on esimesena testijad (seet\u00f5ttu ka termin \"peidetud juurdev\u00f5tt\").<\/p>\n<p>Funktsionaalsuse l\u00fclitite kaudu <i>(feature toggles)<\/i> ja teiste t\u00f6\u00f6riistade abil saab j\u00e4lgida, kuidas kasutajad uue funktsiooniga suhtlevad, kas see k\u00f6idab neid v\u00f5i peavad nad uut kasutajaliidest segaseks, ja muid m\u00f5\u00f5dikuid.<\/p>\n<p><img decoding=\"async\" alt=\"Kuberneteses kasutatavad deploy strateegiad: 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-juurdev\u00f5tted<\/h4>\n<p>\nLisaks kaalu p\u00f5hjal suunamisele v\u00f5ib Flagger samuti suunata kanarbiku serverisse liiklust s\u00f5ltuvalt HTTP parameetritest. A\/B-testimisel saab kasutada HTTP pealkirju v\u00f5i k\u00fcpsiseid teatud kasutajasegmendi suunamiseks. See on eriti t\u00f5hus esik\u00fcljel rakenduste puhul, mis n\u00f5uavad seansi seotust serveriga <i>(session affinity)<\/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\u00f5ikide nende h\u00e4mmastavate juurutusskeemide eest.<\/i><\/p>\n<h2>P.S. t\u00f5lkijalt<\/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' 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 t\u00f6\u00f6riist CI\/CD jaoks Kuberneteses (\u00fclevaade ja video ettekandest)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/469541\/\">\u00dchtsete mikroteenuste ehitamine ja juurutamine werf'i ja GitLab CI abil<\/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.1.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.1.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\udd47Kubernetesi juurutusstrateegiad: rolling, recreate, blue\/green, canary, dark (A\/B-testimine) | ProHoster","description":"M\u00e4rkus.","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}]}}