{"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\/nl\/blog\/administrirovanie\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie","title":{"rendered":"Implementatiestrategie\u00ebn in Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-testing)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><i><b>Opmerking van de vertaler:<\/b> Dit overzicht van Weaveworks introduceert de meest populaire applicatiewijzigingsstrategie\u00ebn en bespreekt de mogelijkheden om de meest geavanceerde daarvan te realiseren met behulp van de Kubernetes-operator Flagger. Het is geschreven in eenvoudige taal en bevat duidelijke schema's die het zelfs beginnende ingenieurs gemakkelijker maken om het onderwerp te begrijpen.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Implementatiestrategie\u00ebn in Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-testing)\" src=\"\/wp-content\/uploads\/2019\/11\/8d32d63c9986e9f5b35ccca74a546d42.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>De diagram is afkomstig uit <noindex><a rel=\"nofollow\" href=\"https:\/\/blog.container-solutions.com\/kubernetes-deployment-strategies\">een andere review<\/a><\/noindex> van implementatiestrategie\u00ebn, gemaakt door Container Solutions<\/i><\/p>\n<p>Een van de grootste uitdagingen bij het ontwikkelen van cloud native-applicaties vandaag de dag is het versnellen van de implementatie. Bij een microservices-aanpak werken ontwikkelaars al met volledig modulaire applicaties en ontwerpen ze deze, zodat verschillende teams gelijktijdig code kunnen schrijven en wijzigingen in de applicatie kunnen aanbrengen.<\/p>\n<p>Kortere en frequentere implementaties hebben de volgende voordelen:<\/p>\n<ul>\n<li> De tijd tot de markt wordt verkort.<\/li>\n<li> Nieuwe functies komen sneller bij gebruikers.<\/li>\n<li> Klantfeedback bereikt het ontwikkelingsteam sneller. Dit betekent dat het team functies kan aanvullen en problemen sneller kan verhelpen.<\/li>\n<li> De moraal van de ontwikkelaars stijgt: met meer functies in ontwikkeling is het interessanter om te werken.<\/li>\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nMaar met een toename in de frequentie van releases, neemt ook de kans toe om de betrouwbaarheid van de applicatie of de gebruikerservaring negatief te be\u00efnvloeden. Daarom is het voor operationele teams en DevOps belangrijk om processen te bouwen en implementatiestrategie\u00ebn te beheren zodat de risico's voor het product en de gebruikers minimaal blijven. (Lees meer over het automatiseren van de CI\/CD-pijplijn) <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/assets\/images\/blta8084030436bce24\/CICD_eBook_Web.pdf\">hier<\/a><\/noindex>.)<\/p>\n<p>In deze publicatie zullen we verschillende implementatiestrategie\u00ebn in Kubernetes bespreken, inclusief rolling-implementaties en geavanceerdere methoden zoals canary-releases en hun varianten.<\/p>\n<h2>Implementatiestrategie\u00ebn<\/h2>\n<p>\nEr zijn verschillende soorten implementatiestrategie\u00ebn die je kunt gebruiken, afhankelijk van het doel. Zo kan het nodig zijn om wijzigingen aan te brengen in een omgeving voor verder testen, of in een subset van gebruikers\/clienten, of het kan noodzakelijk zijn om een beperkte test uit te voeren bij gebruikers voordat je een bepaalde functie <i>publiek beschikbaar maakt<\/i>.<\/p>\n<h3>Rolling (geleidelijke, 'opbouwende' implementatie)<\/h3>\n<p>\nDit is de standaard inzetstrategie in Kubernetes. Het vervangt stapsgewijs, \u00e9\u00e9n voor \u00e9\u00e9n, pods met de oude versie van de applicatie door pods met de nieuwe versie \u2014 zonder downtime van het cluster.<\/p>\n<p><img decoding=\"async\" alt=\"Implementatiestrategie\u00ebn in Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-testing)\" src=\"\/wp-content\/uploads\/2019\/11\/cbd490f1ef8311ff4c242726e947248c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKubernetes wacht tot de nieuwe pods gereed zijn voor gebruik (door ze te controleren met <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/blog\/resilient-apps-with-liveness-and-readiness-probes-in-kubernetes\">readiness-tests<\/a><\/noindex>), voordat het begint met het verwijderen van de oude. Als er een probleem optreedt, kan deze rollende update worden onderbroken zonder het hele cluster stil te leggen. In het YAML-bestand dat het type deployment beschrijft, vervangt de nieuwe afbeelding de oude afbeelding:<\/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>\nDe parameters voor de roll-out kunnen worden gespecificeerd in het manifestbestand:<\/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<\/h3>\n<p>\nIn dit eenvoudigste type deployment worden de oude pods allemaal tegelijk vernietigd en vervangen door nieuwe:<\/p>\n<p><img decoding=\"async\" alt=\"Implementatiestrategie\u00ebn in Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-testing)\" src=\"\/wp-content\/uploads\/2019\/11\/46168e36b7f44c76bcea40ab3a1a2cad.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHet bijbehorende manifest ziet er ongeveer zo uit:<\/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<\/h3>\n<p>\nDe blue-green implementatiestrategie (soms ook wel red\/black genoemd) omvat gelijktijdige implementatie van de oude (groene) en nieuwe (blauwe) versies van de applicatie. Na het plaatsen van beide versies krijgen gewone gebruikers toegang tot de groene versie, terwijl de blauwe beschikbaar is voor het QA-team voor automatiseringstests via een afzonderlijke service of directe poortdoorsturen:<\/p>\n<p><img decoding=\"async\" alt=\"Implementatiestrategie\u00ebn in Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-testing)\" 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>\nNadat de blauwe (nieuwe) versie is getest en de release is goedgekeurd, schakelt de service over naar deze versie en wordt de groene (oude) versie afgeschakeld:<\/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<\/h3>\n<p>\nCanary-implementaties lijken op blue-green, maar worden beter beheerd en gebruiken een <noindex><a rel=\"nofollow\" href=\"https:\/\/redmonk.com\/jgovernor\/2018\/08\/06\/towards-progressive-delivery\/\">progressieve<\/a><\/noindex> stapsgewijze aanpak. Dit type omvat verschillende strategie\u00ebn, waaronder \"stille\" uitrol en A\/B-testen.<\/p>\n<p>Deze strategie wordt toegepast wanneer er nieuwe functionaliteit getest moet worden, meestal in de backend van de applicatie. Het idee achter deze aanpak is om twee nagenoeg identieke servers te cre\u00ebren: \u00e9\u00e9n die vrijwel alle gebruikers bedient en de andere, met de nieuwe functies, die slechts een kleine subgroep van gebruikers bedient. Daarna worden de resultaten vergeleken. Als alles zonder fouten verloopt, wordt de nieuwe versie geleidelijk uitgerold naar de volledige infrastructuur.<\/p>\n<p>Hoewel deze strategie uitsluitend met de middelen van Kubernetes kan worden ge\u00efmplementeerd, is het veel handiger en eenvoudiger om een service mesh zoals Istio te gebruiken.<\/p>\n<p>Bijvoorbeeld, je kunt twee verschillende manifesten in Git hebben: een gewone met tag 0.1.0 en een 'canary' met tag 0.2.0. Door de gewichten in het virtuele gatewaymanifest van Istio te wijzigen, kun je het verkeer tussen deze twee deployments beheren:<\/p>\n<p><img decoding=\"async\" alt=\"Implementatiestrategie\u00ebn in Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-testing)\" src=\"\/wp-content\/uploads\/2019\/11\/d75dc34fea187c4e67879d0f64f9251c.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEen stapsgewijze handleiding voor het implementeren van canary-deployments met Istio vind je in het materiaal <noindex><a rel=\"nofollow\" href=\"https:\/\/www.weave.works\/blog\/gitops-workflows-for-istio-canary-deployments\">GitOps Workflows with Istio<\/a><\/noindex>. <i>(<b>Opmerking vertaler.<\/b>: We hebben ook materiaal vertaald over canary releases in Istio. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/440378\/\">hier<\/a><\/noindex>.)<\/i><\/p>\n<h4>Canary deployments met Weaveworks Flagger<\/h4>\n<p>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.flagger.app\/\">Weaveworks Flagger<\/a><\/noindex> maakt het gemakkelijk en effectief om canary-releases te beheren.<\/p>\n<p>Flagger automatiseert het werk met hen. Het gebruikt Istio of AWS App Mesh voor het routeren en schakelen van verkeer, evenals Prometheus-metrieken voor het analyseren van resultaten. Bovendien kan de analyse van canary deployments worden uitgebreid met webhooks voor acceptatietests, belastingstests en andere soorten controles.<\/p>\n<p>Op basis van de Kubernetes deployment en, indien nodig, de horizontale schaalvergroting van pods (HPA), cre\u00ebert Flagger sets van objecten (Kubernetes deployments, ClusterIP-services en virtuele services van Istio of App Mesh) voor de analyse en uitvoering van canary deployments:<\/p>\n<p><img decoding=\"async\" alt=\"Implementatiestrategie\u00ebn in Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-testing)\" src=\"\/wp-content\/uploads\/2019\/11\/99aa426bbcf59edcb70d5637e32d8ff7.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDoor een controlelus <i>(control loop)<\/i>, Flagger schakelt geleidelijk het verkeer over naar de canary-server terwijl het belangrijke prestatie-indicatoren meet, zoals het percentage succesvolle HTTP-aanvragen, de gemiddelde duur van een aanvraag en de gezondheid van de pods. Gebaseerd op de analyse van KPI's (belangrijke prestatie-indicatoren), groeit of krimpt het canary-gedeelte en worden de analysemethoden gepubliceerd in Slack. Een beschrijving en demonstratie van dit proces zijn te vinden in het materiaal <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=\"Implementatiestrategie\u00ebn in Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-testing)\" src=\"\/wp-content\/uploads\/2019\/11\/f9fa1ba66edecc2b3e971952a318ea40.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Donkere (verborgen) of A\/B-implementaties<\/h3>\n<p>\nVerborgen implementatie is een andere variant van de canary-strategie (hiervoor kan Flagger ook werken). Het verschil tussen verborgen en canary-implementaties is dat verborgen implementaties betrekking hebben op de frontend, in tegenstelling tot de backend, zoals bij canary-implementaties.<\/p>\n<p>Een andere naam voor deze implementaties is A\/B-testen. In plaats van de nieuwe functie aan alle gebruikers beschikbaar te stellen, wordt deze slechts aan een beperkte groep aangeboden. Gewoonlijk weten deze gebruikers niet dat ze test-pioniers zijn (vandaar de term 'verborgen implementatie').<\/p>\n<p>Met behulp van functionaliteits schakelaars <i>(feature toggles)<\/i> en andere tools kan worden gevolgd hoe gebruikers interageren met de nieuwe functie, of ze erbij betrokken zijn of de nieuwe gebruikersinterface verwarrend vinden, evenals andere soorten statistieken.<\/p>\n<p><img decoding=\"async\" alt=\"Implementatiestrategie\u00ebn in Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-testing)\" src=\"\/wp-content\/uploads\/2019\/11\/037b5ccca2e1d99ac142d2ce734f954d.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h4>Flagger en A\/B-implementaties<\/h4>\n<p>\nNaast gewicht-gebaseerde routering kan Flagger ook het verkeer naar een canary-server omleiden op basis van HTTP-parameters. Bij A\/B-testen kunnen HTTP-headers of cookies worden gebruikt om een specifiek segment van gebruikers om te leiden. Dit is vooral effectief in geval van frontend-applicaties die sessie-affiniteit met de server vereisen <i>(session affinity)<\/i>. Verdere informatie is te vinden in de documentatie van Flagger.<\/p>\n<p><i>De auteur bedankt <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/stefanprodan\">Stefan Prodan<\/a><\/noindex>, ingenieur bij Weaveworks (en maker van Flagger), voor al deze geweldige implementatieschema\u2019s.<\/i><\/p>\n<h2>P.S. van de vertaler<\/h2>\n<p>\nLees ook op onze blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447180\/\">Overzicht en vergelijking van Ingress-controllers voor Kubernetes<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/460351\/\">werf \u2014 onze tool voor CI\/CD in Kubernetes (overzicht en video van de presentatie)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/469541\/\">Opbouw en implementatie van homogene microservices met werf en GitLab CI<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/458878\/\">Wat is GitOps?<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Bron: <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.3 - 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\/nl\/blog\/administrirovanie\/strategii-deploya-v-kubernetes-rolling-recreate-blue-green-canary-dark-a-b-testirovanie\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/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\udd47Implementatiestrategie\u00ebn in Kubernetes: rolling, recreate, blue\/green, canary, dark (A\/B-testen) | ProHoster","description":"Opmerking.","canonical_url":"https:\/\/prohoster.info\/nl\/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":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/52688","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=52688"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/52688\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=52688"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=52688"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=52688"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}