{"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\/sv\/blog\/administrirovanie\/devoxx-uk-kubernetes-v-prodakshene-blue-green-deployment-avtomasshtabirovanie-i-avtomatizacziya-razvertyvaniya-chast-2","title":{"rendered":"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Kubernetes \u00e4r ett utm\u00e4rkt verktyg f\u00f6r att k\u00f6ra Docker-containrar i en klustrad produktionsmilj\u00f6. Men det finns uppgifter som Kubernetes inte kan l\u00f6sa. Vid frekvent distribution i produktionsmilj\u00f6 beh\u00f6ver vi en helt automatiserad Blue\/Green-distribution f\u00f6r att undvika driftstopp i denna process, d\u00e4r det ocks\u00e5 \u00e4r n\u00f6dv\u00e4ndigt att hantera externa HTTP-f\u00f6rfr\u00e5gningar och genomf\u00f6ra SSL-avlastning. Detta kr\u00e4ver integration med en lastbalanserare, s\u00e5som ha-proxy. En annan uppgift \u00e4r semi-automatiserad skalning av sj\u00e4lva Kubernetes-klustret n\u00e4r man arbetar i molnmilj\u00f6, till exempel delvis nedskalning av klustret under nattetid.<\/p>\n<p>\u00c4ven om Kubernetes inte har dessa funktioner direkt \"ur l\u00e5dan\", erbjuder det ett API som kan anv\u00e4ndas f\u00f6r att l\u00f6sa s\u00e5dana uppgifter. Verktyg f\u00f6r automatiserad Blue\/Green-distribution och skalning av Kubernetes-klustret har utvecklats inom projektet Cloud RTI, som skapats baserat p\u00e5 \u00f6ppen programvara.<\/p>\n<p>I denna artikel, en avkodning av videon, diskuteras hur man konfigurerar Kubernetes tillsammans med andra komponenter med \u00f6ppen k\u00e4llkod f\u00f6r att skapa en produktionsklar milj\u00f6 som oavbrutet tar emot kod fr\u00e5n git commit.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 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 i produktion: Blue\/Green-distribution, automatisk skalning och automatisering av distribution. Del 1<\/a><\/noindex><\/p>\n<p>S\u00e5 snart du har f\u00e5tt tillg\u00e5ng till dina applikationer fr\u00e5n den externa v\u00e4rlden, kan du p\u00e5b\u00f6rja den fullst\u00e4ndiga automatiseringsinst\u00e4llningen, det vill s\u00e4ga att ta den till en punkt d\u00e4r du kan g\u00f6ra en git commit och vara s\u00e4ker p\u00e5 att denna git commit n\u00e5r produktionen. Naturligtvis vill vi inte uppleva driftstopp vid genomf\u00f6randet av dessa steg under distributionen. S\u00e5 varje automatisering i Kubernetes b\u00f6rjar med API:et. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/aa470c1562e49d98a164e0485196426e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKubernetes \u00e4r inte ett verktyg som kan anv\u00e4ndas produktivt \"direkt ur l\u00e5dan\". Sj\u00e4lvklart kan du g\u00f6ra s\u00e5, anv\u00e4nda kubectl och s\u00e5 vidare, men API:et \u00e4r \u00e4nd\u00e5 det mest intressanta och anv\u00e4ndbara med denna plattform. Genom att anv\u00e4nda API:et som en upps\u00e4ttning funktioner kan du f\u00e5 tillg\u00e5ng till n\u00e4stan allt du vill g\u00f6ra i Kubernetes. Kubectl sj\u00e4lv anv\u00e4nder ocks\u00e5 REST API. <\/p>\n<p>Det h\u00e4r \u00e4r REST, s\u00e5 du kan anv\u00e4nda vilket spr\u00e5k och verktyg som helst f\u00f6r att arbeta med det h\u00e4r API:et, men anv\u00e4ndarbiblioteken kommer att g\u00f6ra ditt liv betydligt enklare. Mitt team har skrivit tv\u00e5 s\u00e5dana bibliotek: ett f\u00f6r Java \/ OSGi och ett f\u00f6r Go. Det andra anv\u00e4nds inte s\u00e5 ofta, men ni har dessa anv\u00e4ndbara verktyg tillg\u00e4ngliga. De utg\u00f6r ett delvis licensierat open-source-projekt. Det finns m\u00e5nga s\u00e5dana bibliotek f\u00f6r olika spr\u00e5k, s\u00e5 du kan v\u00e4lja de som passar b\u00e4st. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/808865e4cda6023c6775ec9e581fc46e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nS\u00e5 innan du b\u00f6rjar automatisera distributionen, \u00e4r det viktigt att s\u00e4kerst\u00e4lla att denna process inte drabbas av n\u00e5gra driftstopp. Till exempel genomf\u00f6r v\u00e5rt team produktiondistribution mitt p\u00e5 dagen, n\u00e4r folk anv\u00e4nder applikationerna som mest, s\u00e5 det \u00e4r mycket viktigt att undvika f\u00f6rseningar i denna process. F\u00f6r att undvika driftstopp anv\u00e4nds tv\u00e5 metoder: blue\/green distribution eller glidande uppdatering (rolling update). I det senare fallet, om du har fem replikas av applikationen, uppdateras de sekventiellt en efter en. Denna metod fungerar utm\u00e4rkt, men den \u00e4r inte l\u00e4mplig om du har olika versioner av applikationen som k\u00f6rs samtidigt under distributionsprocessen. I s\u00e5 fall kan du uppdatera anv\u00e4ndargr\u00e4nssnittet medan backend fortfarande arbetar med den gamla versionen, vilket skulle inneb\u00e4ra att applikationen skulle upph\u00f6ra att fungera. D\u00e4rf\u00f6r \u00e4r det ganska komplicerat ur en programmeringssynvinkel att arbeta i s\u00e5dana f\u00f6rh\u00e5llanden. <\/p>\n<p>Detta \u00e4r en av anledningarna till att vi f\u00f6redrar att anv\u00e4nda blue\/green deployment f\u00f6r att automatisera distributionen av v\u00e5ra applikationer. Med denna metod m\u00e5ste du s\u00e4kerst\u00e4lla att endast en version av applikationen \u00e4r aktiv vid en given tidpunkt. <\/p>\n<p>Blue\/green deployment-mekanismen fungerar enligt f\u00f6ljande. Vi f\u00e5r trafik till v\u00e5ra applikationer via ha-proxy, som dirigerar det till de k\u00f6rande replikas av applikationen med samma version. <\/p>\n<p>N\u00e4r en ny distribution g\u00f6rs anv\u00e4nder vi Deployer, som tillhandah\u00e5lls nya komponenter, och den genomf\u00f6r distributionen av den nya versionen. Distributionen av den nya versionen av applikationen inneb\u00e4r att en ny upps\u00e4ttning repliker \"startas\", och dessa repliker av den nya versionen k\u00f6rs i en separat, ny pod. Men ha-proxy har ingen k\u00e4nnedom om dem och dirigerar fortfarande ingen arbetsbelastning till dem.<\/p>\n<p>D\u00e4rf\u00f6r \u00e4r det i f\u00f6rsta hand n\u00f6dv\u00e4ndigt att utf\u00f6ra en h\u00e4lsokontroll av de nya versionerna f\u00f6r att s\u00e4kerst\u00e4lla att replikerna \u00e4r redo att hantera belastningen.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/6134f89567ac3627197883b2f4c768d4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAlla distributionskomponenter m\u00e5ste st\u00f6dja n\u00e5gon form av h\u00e4lsokontroll. Detta kan vara en mycket enkel kontroll med en HTTP-anrop, d\u00e4r du f\u00e5r en statuskod 200, eller en mer djupg\u00e5ende kontroll d\u00e4r du kontrollerar replikerna med databasen och andra tj\u00e4nster, stabiliteten i f\u00f6rbindelserna i den dynamiska milj\u00f6n, och att allt startar och fungerar korrekt. Denna process kan vara ganska komplex. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/fdc537599187b32ab97bc00970283e1a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e4r systemet har verifierat att alla uppdaterade repliker fungerar, kommer Deployer att uppdatera konfigurationen och \u00f6verf\u00f6ra r\u00e4tt confd, som omkonfigurerar ha-proxy. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/099240482096c2ac4aafe7e803409511.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nF\u00f6rst efter detta kommer trafiken att dirigeras till podden med repliker av den nya versionen, medan den gamla podden f\u00f6rsvinner. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/f656b3a3adfc27e782e5d9785b8b615e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDenna mekanism \u00e4r inte unik f\u00f6r Kubernetes. Konceptet med Blue\/green deployment har funnits l\u00e4nge, och det har alltid anv\u00e4nt en lastbalanserare. F\u00f6rst dirigerar du all trafik till den gamla versionen av applikationen, och efter uppdateringen v\u00e4xlar du helt \u00f6ver till den nya versionen. Detta princip g\u00e4ller inte bara i Kubernetes.<\/p>\n<p>Nu ska jag introducera er till den nya distributionskomponenten \u2013 Deployer, som utf\u00f6r h\u00e4lsokontroller, omkonfigurerar proxy och s\u00e5 vidare. Detta \u00e4r ett koncept som inte r\u00f6r det externa v\u00e4rlden och existerar inom Kubernetes. Jag kommer att visa hur man kan skapa sitt egna Deployer-koncept med hj\u00e4lp av open source-verktyg. <\/p>\n<p>S\u00e5, det f\u00f6rsta Deployer g\u00f6r \u00e4r att skapa en replikationskontroller RC med hj\u00e4lp av Kubernetes API. Detta API skapar pods och tj\u00e4nster f\u00f6r vidare distribution, det vill s\u00e4ga det skapar ett helt nytt kluster f\u00f6r v\u00e5ra applikationer. S\u00e5 snart RC har bekr\u00e4ftat att replikerna har startat, g\u00f6r den en statuskontroll av deras funktion, Health check. F\u00f6r detta anv\u00e4nds kommandot GET \/health i Deployer. Det aktiverar motsvarande kontrollkomponenter och kontrollerar alla element som g\u00f6r att klustret fungerar. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/f2ef0232e17bc69f0b70ea9eabc2f456.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e4r alla pods har rapporterat sitt \"h\u00e4lsotillst\u00e5nd\", skapar Deployer en ny konfigurationspost \u2013 ett distribuerat lagringssystem etcd, som anv\u00e4nds internt inom Kubernetes, inklusive f\u00f6r att lagra konfigurationen f\u00f6r lastbalanseraren. Vi skriver data till etcd, och ett litet verktyg, confd, \u00f6vervakar etcd f\u00f6r nya data. <\/p>\n<p>Om det uppt\u00e4cker n\u00e5gra \u00e4ndringar i den ursprungliga konfigurationen, genererar det en ny konfigurationsfil och \u00f6verf\u00f6r den till ha-proxy. I detta fall startar ha-proxy om utan att f\u00f6rlora n\u00e5gra anslutningar och dirigerar belastningen till de nya tj\u00e4nster som st\u00f6der den nya versionen av v\u00e5ra applikationer. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/bef1536c2b8dee6b0da710fc6c6fda99.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSom ni ser, trots m\u00e4ngden komponenter, finns det inget sv\u00e5rt h\u00e4r. Du beh\u00f6ver bara \u00e4gna mer uppm\u00e4rksamhet \u00e5t API och etcd. Jag vill ber\u00e4tta om en open-source-deployer som vi sj\u00e4lva anv\u00e4nder \u2013 Amdatu Kubernetes Deployer.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/34124e093d2e16fcbb80fd112c7d223f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDetta \u00e4r ett verktyg f\u00f6r orkestrering av Kubernetes-distributioner, med f\u00f6ljande funktioner: <\/p>\n<ul>\n<li>Blue\/Green distribution;<\/li>\n<li>konfiguration av extern lastbalanserare;<\/li>\n<li>hantering av distributionsbeskrivningar;<\/li>\n<li>hantering av den faktiska distributionen;<\/li>\n<li>h\u00e4lsokontroller under distributionen;<\/li>\n<li>inf\u00f6rande av milj\u00f6variabler i pods.<\/li>\n<\/ul>\n<p>\nDenna Deployer \u00e4r byggd ovanp\u00e5 Kubernetes API och erbjuder ett REST API f\u00f6r hantering av beskrivningar och distributioner, samt Websocket API f\u00f6r str\u00f6mmande loggar under distributionen.<\/p>\n<p>Den placerar konfigurationsdata f\u00f6r lastbalanseraren i etcd, s\u00e5 att du kan anv\u00e4nda din egen lastbalanseringskonfigurationsfil ist\u00e4llet f\u00f6r ha-proxy med \"out-of-the-box\"-st\u00f6d. Amdatu Deployer \u00e4r skriven i Go, precis som Kubernetes, och \u00e4r licensierad under Apache.<\/p>\n<p>Innan jag b\u00f6rjade anv\u00e4nda denna version av deployern anv\u00e4nde jag f\u00f6ljande distributionsbeskrivare, d\u00e4r jag angav de parametrar jag beh\u00f6vde. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/14e9ecca6ad772a43afcf95a4950fad8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn av de viktiga parametrarna i denna kod \u00e4r aktiveringen av flaggan \"useHealthCheck\". Vi beh\u00f6ver specificera att h\u00e4lsokontroller m\u00e5ste utf\u00f6ras under distributionen. Denna parameter kan st\u00e4ngas av n\u00e4r tredjepartscontainrar anv\u00e4nds i distributionen som inte beh\u00f6ver kontrolleras. I denna beskrivare anges \u00e4ven antalet repliker och URL:en f\u00f6r frontenden som beh\u00f6vs av ha-proxy. I slutet anges flaggan f\u00f6r podspecifikationen \"podspec\" som h\u00e4nvisar till Kubernetes f\u00f6r att h\u00e4mta information om portkonfigurationer, bilder etc. Detta \u00e4r en ganska enkel beskrivare i JSON-format. <\/p>\n<p>Ett annat verktyg som \u00e4r en del av open-source-projektet Amdatu, \u00e4r Deploymentctl. Det har ett anv\u00e4ndargr\u00e4nssnitt (UI) f\u00f6r konfiguration av distributionen, lagrar distributionshistorik och inneh\u00e5ller webhooks f\u00f6r callbacks fr\u00e5n tredjepartsanv\u00e4ndare och utvecklare. Du beh\u00f6ver inte anv\u00e4nda UI, eftersom Amdatu Deployer sj\u00e4lv \u00e4r ett REST API, men detta gr\u00e4nssnitt kan avsev\u00e4rt underl\u00e4tta din distribution utan att involvera n\u00e5got API. Deploymentctl \u00e4r skrivet i OSGi\/Vertx med hj\u00e4lp av Angular 2. <\/p>\n<p>Nu kommer jag att visa det som sagts ovan p\u00e5 sk\u00e4rmen, genom att anv\u00e4nda en f\u00f6rinspelad video, s\u00e5 att du inte beh\u00f6ver v\u00e4nta. Vi kommer att distribuera en enkel applikation p\u00e5 Go. Oroa dig inte om du inte har st\u00f6tt p\u00e5 Go tidigare, detta \u00e4r en mycket enkel applikation, s\u00e5 allt b\u00f6r vara klart f\u00f6r dig. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/ab61ada396143e980d73a0bb8ff95076.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nH\u00e4r skapar vi en HTTP-server som bara svarar p\u00e5 \/health, s\u00e5 denna applikation \u00e4r endast avsedd f\u00f6r att kontrollera h\u00e4lsokontrollen och inget mer. Om kontrollen lyckas aktiveras den JSON-struktur som visas nedan. Den inneh\u00e5ller versionen av applikationen som kommer att distribueras av deployern, meddelandet som du ser i toppen av filen, samt en boolean datatyp \u2014 om v\u00e5r applikation \u00e4r fungerande eller inte.<\/p>\n<p>I den sista raden fuskar jag lite, eftersom jag placerade ett fast boolean-v\u00e4rde h\u00f6gst upp i filen, vilket senare kommer att hj\u00e4lpa mig att distribuera \u00e4ven en \"oh\u00e4lsosam\" applikation. Vi kommer att g\u00e5 igenom detta senare. <\/p>\n<p>L\u00e5t oss b\u00f6rja. F\u00f6rst kontrollerar vi om det finns n\u00e5gra aktiva pods genom att k\u00f6ra kommandot ~ kubectl get pods och, genom att inte f\u00e5 n\u00e5got svar p\u00e5 front-end-URL:en, bekr\u00e4ftar vi att inga distributioner f\u00f6r n\u00e4rvarande p\u00e5g\u00e5r. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/4da1ae467993d6e60ec539ae5ff136ff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e4sta p\u00e5 sk\u00e4rmen ser ni det gr\u00e4nssnitt f\u00f6r Deploymentctl som jag n\u00e4mnde, d\u00e4r distributionsparametrarna st\u00e4lls in: namnrymden, applikationsnamnet, distributionsversionen, antalet repliker, front-end-URL:en, containerin\u00e4nget, bilden, resursgr\u00e4nserna, portnumret f\u00f6r h\u00e4lsokontrollen, och s\u00e5 vidare. Resursgr\u00e4nserna \u00e4r mycket viktiga eftersom de m\u00f6jligg\u00f6r maximal anv\u00e4ndning av h\u00e5rdvaran. H\u00e4r kan vi ocks\u00e5 se distributionsloggen Deployment log.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/edf6a02b336f1abce61f0a323edeee9d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOm vi nu upprepar kommandot ~ kubectl get pods, kan vi se att systemet \"fryser\" i 20 sekunder, under vilka ha-proxy rekonfigureras. Efter det startas podden, och vi kan se v\u00e5r replika i distributionsloggen. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/c6c8f6335e00d3a9cfcf4d4792ecf795.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJag har klippt ut de 20 sekunder av v\u00e4ntan fr\u00e5n videon, och nu ser ni p\u00e5 sk\u00e4rmen att den f\u00f6rsta versionen av applikationen har distribuerats. Detta gjordes enbart med hj\u00e4lp av UI. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/d21fa9ad71e22b2bb9efdfc7bc9c8771.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nL\u00e5t oss nu f\u00f6rs\u00f6ka med den andra versionen. F\u00f6r detta \u00e4ndrar jag applikationens meddelande fr\u00e5n \"Hello, Kubernetes!\" till \"Hello, Deployer!\", systemet skapar denna bild och placerar den i Docker-registret, varefter vi bara trycker p\u00e5 knappen \"Deploy\" igen i f\u00f6nstret Deploymentctl. Detta startar automatiskt distributionsloggen precis som det gjorde under distributionen av den f\u00f6rsta versionen av applikationen. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/e4ef784649fd18b1580d2562b318ac0f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKommandot ~ kubectl get pods visar att det f\u00f6r n\u00e4rvarande finns 2 versioner av applikationen aktiva, men front-end visar att vi fortfarande k\u00f6r version 1. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/1d4a9c91f836007325a2a2c833da8eff.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLastbalanseraren v\u00e4ntar p\u00e5 att h\u00e4lsokontrollen ska genomf\u00f6ras, varefter trafiken kommer att omdirigeras till den nya versionen. Efter 20 sekunder v\u00e4xlar vi till curl och ser att vi nu har distribuerat version 2 av applikationen, medan den f\u00f6rsta har tagits bort. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/e123618251e9fcb1c14829772634b6e8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDetta var distributionen av en \"h\u00e4lsosam\" applikation. L\u00e5t oss se vad som h\u00e4nder om jag \u00e4ndrar v\u00e4rdet p\u00e5 parametern Healthy f\u00f6r den nya versionen av applikationen fr\u00e5n true till false, det vill s\u00e4ga om jag f\u00f6rs\u00f6ker distribuera en oh\u00e4lsosam applikation som inte klarade h\u00e4lsokontrollen. Detta kan h\u00e4nda om det under utvecklingen har f\u00f6rekommit konfigurationsfel i applikationen, och den skickas till produktion i detta skick. <\/p>\n<p>Som du kan se, g\u00e5r distributionen igenom alla de ovan n\u00e4mnda stegen, och ~ kubectl get pods visar att b\u00e5da poddar \u00e4r ig\u00e5ng. Men till skillnad fr\u00e5n den tidigare distributionen visar loggen ett timeout-tillst\u00e5nd. Det inneb\u00e4r att eftersom health check inte lyckades kan den nya versionen av applikationen inte distribueras. Som ett resultat ser du att systemet \u00e5terg\u00e5r till att anv\u00e4nda den gamla versionen av applikationen, medan den nya versionen bara har tagits bort. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/4542761328603596704f21cef4c9d4a3.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet b\u00e4sta med detta \u00e4r att \u00e4ven om du har ett stort antal samtidiga f\u00f6rfr\u00e5gningar som kommer till applikationen, kommer de knappt m\u00e4rka av n\u00e5gra driftstopp under distributionsproceduren. Om man testar denna applikation med hj\u00e4lp av Gatling-ramverket, som skickar s\u00e5 m\u00e5nga f\u00f6rfr\u00e5gningar som m\u00f6jligt, s\u00e5 kommer ingen av dessa f\u00f6rfr\u00e5gningar att avvisas. Det betyder att v\u00e5ra anv\u00e4ndare knappt kommer att m\u00e4rka uppdateringar av versionerna i realtid. Om det skulle misslyckas, forts\u00e4tter arbetet p\u00e5 den gamla versionen; om det lyckas, flyttas anv\u00e4ndarna till den nya versionen. <\/p>\n<p>Det finns bara en sak som kan leda till misslyckande \u2013 om health check gick igenom framg\u00e5ngsrikt, men applikationen kraschade s\u00e5 snart den fick arbetsbelastning, det vill s\u00e4ga kollapsen intr\u00e4ffar f\u00f6rst efter att distributionen \u00e4r klar. I s\u00e5 fall m\u00e5ste du manuellt \u00e5terg\u00e5 till den gamla versionen. S\u00e5, vi har sett hur man anv\u00e4nder Kubernetes med avsedda open-source-verktyg. Distributionsproceduren kommer att g\u00e5 mycket smidigare om du integrerar dessa verktyg i Build\/Deploy pipelines. F\u00f6r att starta distributionen kan du anv\u00e4nda b\u00e5de anv\u00e4ndargr\u00e4nssnittet och helt automatisera denna process, till exempel genom att g\u00f6ra en commit till master. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/43b638be9d334c6c4f8e9f4fc00ce2f9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00e5r Build Server skapar en Docker-avbildning, l\u00e4gger den i Docker Hub eller vilket register du anv\u00e4nder. Docker Hub st\u00f6der webhook, s\u00e5 vi kan starta en fj\u00e4rrdistribution genom Deployer p\u00e5 det s\u00e4tt som visades ovan. P\u00e5 s\u00e5 s\u00e4tt kan hela distributionen av applikationen till potentiell produktion automatiseras. <\/p>\n<p>L\u00e5t oss g\u00e5 vidare till n\u00e4sta \u00e4mne \u2013 skalning av Kubernetes-klustret. Jag vill p\u00e5peka att kommandot kubectl \u00e4r ett skalningskommando. Med det kan vi enkelt \u00f6ka antalet repliker i v\u00e5rt befintliga kluster. Men i praktiken vill vi oftast \u00f6ka antalet noder, inte pods. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/890f436b4bc52c81f5db5b35e64e7e18.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUnder arbetstid kan det h\u00e4nda att du beh\u00f6ver \u00f6ka antalet instanser, medan det p\u00e5 natten, f\u00f6r att minska kostnaderna f\u00f6r Amazon, kan vara n\u00f6dv\u00e4ndigt att minska antalet k\u00f6rande instanser av din applikation. Det betyder inte att det r\u00e4cker med att bara skala antalet pods, eftersom \u00e4ven om en av noderna \u00e4r oanv\u00e4nd, m\u00e5ste du \u00e4nd\u00e5 betala f\u00f6r den till Amazon. S\u00e5ledes, f\u00f6rutom att skala pods, beh\u00f6ver du \u00e4ven skala antalet anv\u00e4nda maskiner. <\/p>\n<p>Detta kan skapa problem, eftersom oavsett om vi anv\u00e4nder Amazon eller n\u00e5gon annan molntj\u00e4nst, vet Kubernetes ingenting om antalet anv\u00e4nda maskiner. Det saknas ett verktyg som kan skala systemet p\u00e5 nodniv\u00e5. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/2f00b19f1cb665d8e7bd896fa419554c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nS\u00e5 vi m\u00e5ste ta hand om b\u00e5de noder och pods. Vi kan enkelt skala upp nya noder med hj\u00e4lp av AWS API och autoskalningsgrupper f\u00f6r att konfigurera antalet arbetsnoder i Kubernetes. Det g\u00e5r ocks\u00e5 att anv\u00e4nda cloud-init eller ett liknande skript f\u00f6r att registrera noder i Kubernetes-klustret. <\/p>\n<p>Den nya maskinen startar i Scaling group, registrerar sig sj\u00e4lv som en nod, skrivs in i masterregistren och b\u00f6rjar arbeta. Efter detta kan antalet repliker \u00f6kas f\u00f6r att utnyttja de bildade noderna. Nedsk\u00e4rning kr\u00e4ver st\u00f6rre anstr\u00e4ngningar, eftersom det \u00e4r n\u00f6dv\u00e4ndigt att s\u00e4kerst\u00e4lla att ett s\u00e5dant steg inte leder till att redan fungerande applikationer f\u00f6rst\u00f6rs efter att \"on\u00f6diga\" maskiner har st\u00e4ngts av. F\u00f6r att f\u00f6rhindra detta scenario m\u00e5ste noderna s\u00e4ttas till statusen \"unschedulable\". Det inneb\u00e4r att schemal\u00e4ggaren, vid schemal\u00e4ggning av DaemonSet-pods, kommer att ignorera dessa noder. Schemal\u00e4ggaren kommer inte att ta bort n\u00e5gon information fr\u00e5n dessa servrar, men inte heller starta nya containrar d\u00e4r. Det f\u00f6ljande steget \u00e4r att dr\u00e4nera noden, det vill s\u00e4ga att flytta de fungerande pods fr\u00e5n den till en annan maskin eller andra noder med tillr\u00e4cklig kapacitet. N\u00e4r det har s\u00e4kerst\u00e4llts att det inte finns n\u00e5gra containrar kvar p\u00e5 dessa noder kan de tas bort fr\u00e5n Kubernetes. Efter detta kommer de helt enkelt att upph\u00f6ra att existera f\u00f6r Kubernetes. D\u00e4refter beh\u00f6ver AWS API anv\u00e4ndas f\u00f6r att st\u00e4nga av on\u00f6diga noder eller maskiner. <br \/>\nDu kan anv\u00e4nda Amdatu Scalerd \u2014 ett annat open-source verktyg f\u00f6r skalning, liknande AWS API. Det erbjuder CLI f\u00f6r att l\u00e4gga till eller ta bort noder i klustret. Dess intressanta funktion \u00e4r m\u00f6jligheten att konfigurera schemal\u00e4ggaren med hj\u00e4lp av f\u00f6ljande json-fil. <\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/f70c7c722cacb4792c316e9f80a7500a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKoden som visas minskar kapaciteten i klustret med h\u00e4lften under nattperioden. Den st\u00e4ller in b\u00e5de antalet befintliga repliker och den \u00f6nskade kapaciteten f\u00f6r Amazon-klustret. Anv\u00e4ndningen av denna schemal\u00e4ggare kommer automatiskt att minska antalet noder p\u00e5 natten och \u00f6ka dem p\u00e5 morgonen, vilket sparar kostnaden f\u00f6r anv\u00e4ndning av s\u00e5dana noder fr\u00e5n en molntj\u00e4nst som Amazon. Denna funktion \u00e4r inte inbyggd i Kubernetes, men anv\u00e4ndningen av Scalerd kommer att l\u00e5ta dig skala denna plattform hur som helst. <\/p>\n<p>Jag vill uppm\u00e4rksamma er p\u00e5 att m\u00e5nga m\u00e4nniskor s\u00e4ger till mig: \"Det h\u00e4r \u00e4r allt bra, men vad h\u00e4nder med min databas som vanligtvis \u00e4r statisk?\" Hur kan man f\u00e5 n\u00e5got liknande att fungera i en s\u00e5 dynamisk milj\u00f6 som Kubernetes? Enligt min \u00e5sikt b\u00f6r ni inte g\u00f6ra det, ni b\u00f6r inte f\u00f6rs\u00f6ka organisera databashantering i Kubernetes. Tekniskt sett \u00e4r det m\u00f6jligt, och det finns guider om detta p\u00e5 internet, men det kommer att komplicera ert liv avsev\u00e4rt. <\/p>\n<p>Ja, det finns begreppet best\u00e4ndiga lagringsl\u00f6sningar i Kubernetes, och ni kan f\u00f6rs\u00f6ka k\u00f6ra databaser som Mongo eller MySQL, men det \u00e4r en ganska arbetsintensiv uppgift. Detta beror p\u00e5 att databaser inte helt st\u00f6der interaktion med en dynamisk milj\u00f6. De flesta databaser kr\u00e4ver betydande konfiguration, inklusive manuell klusterinst\u00e4llning, gillar inte automatiserad skalning och liknande. <br \/>\nS\u00e5 det \u00e4r inte v\u00e4rt att komplicera ert liv genom att f\u00f6rs\u00f6ka k\u00f6ra en databas i Kubernetes. Organisera deras arbete p\u00e5 det traditionella s\u00e4ttet med hj\u00e4lp av bekanta tj\u00e4nster och l\u00e5t Kubernetes anv\u00e4nda dem.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/129e8d403f42b7aa6fb022b386955e9e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAvslutningsvis vill jag introducera er f\u00f6r Cloud RTI-plattformen baserad p\u00e5 Kubernetes, som mitt team arbetar med. Den erbjuder centraliserad loggning, \u00f6vervakning av applikationer och kluster och har m\u00e5nga andra anv\u00e4ndbara funktioner som ni kommer att ha nytta av. Den anv\u00e4nder olika open-source verktyg, s\u00e5som Grafana f\u00f6r att visa \u00f6vervakning.<\/p>\n<p><img decoding=\"async\" alt=\"DEVOXX UK. Kubernetes i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 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 i produktion: Blue\/Green deployment, autoskalning och automatisering av distribution. Del 2\" src=\"\/wp-content\/uploads\/2020\/06\/2b1b7ba139053fc492c7ad25e96f362f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDet st\u00e4lldes en fr\u00e5ga om varf\u00f6r man ska anv\u00e4nda lastbalanseraren ha-proxy med Kubernetes. Bra fr\u00e5ga, eftersom det f\u00f6r n\u00e4rvarande finns tv\u00e5 niv\u00e5er av lastbalansering. Kubernetes-tj\u00e4nster \u00e4r fortfarande p\u00e5 virtuella IP-adresser. Ni kan inte anv\u00e4nda dem f\u00f6r portar p\u00e5 externa v\u00e4rd-maskiner, eftersom om Amazon \u00f6verbelastar sin molnserver kommer adressen att \u00e4ndras. Det \u00e4r d\u00e4rf\u00f6r vi placerar ha-proxy framf\u00f6r tj\u00e4nsterna \u2013 f\u00f6r att skapa en mer statisk struktur f\u00f6r s\u00f6ml\u00f6s trafikinteraktion med Kubernetes. <\/p>\n<p>\u00c4nnu en bra fr\u00e5ga \u2013 hur kan man hantera f\u00f6r\u00e4ndringar i databasstrukturen vid blue\/green deployment? Faktum \u00e4r att oavsett om man anv\u00e4nder Kubernetes, s\u00e5 \u00e4r det en komplex uppgift att \u00e4ndra databasstrukturen. Du m\u00e5ste s\u00e4kerst\u00e4lla kompatibilitet mellan den gamla och den nya strukturen, och f\u00f6rst d\u00e4refter kan du uppdatera databasen och sedan sj\u00e4lva applikationerna. Du kan genomf\u00f6ra en 'hot swapping' av databasen och sedan uppdatera applikationerna. Jag k\u00e4nner folk som har laddat upp ett helt nytt databascluster med en ny struktur, vilket \u00e4r ett alternativ om du har en schemaless databas som Mongo, men i vilket fall som helst \u00e4r det inte en enkel uppgift. Om det inte finns fler fr\u00e5gor, tack f\u00f6r uppm\u00e4rksamheten!<\/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=\"Spela 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>Lite reklam \ud83d\ude42<\/h3>\n<p>\nTack f\u00f6r att ni stannar kvar hos oss. Gillar ni v\u00e5ra artiklar? Vill ni se fler intressanta material? St\u00f6d oss genom att g\u00f6ra en best\u00e4llning eller rekommendera oss till era v\u00e4nner, <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">moln-VPS f\u00f6r utvecklare fr\u00e5n $4,99<\/a><\/noindex>, <b>en unik motsvarighet till entry-level servrar som vi har skapat f\u00f6r er:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">Allt om VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps fr\u00e5n $19 eller hur man korrekt delar en server?<\/a><\/noindex> (alternativ med RAID1 och RAID10 finns tillg\u00e4ngliga, upp till 24 k\u00e4rnor och upp till 40GB DDR4).<\/p>\n<p><b>Dell R730xd \u00e4r tv\u00e5 g\u00e5nger billigare i datacentret Equinix Tier IV i Amsterdam?<\/b> Bara hos oss <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 100TB fr\u00e5n $199<\/a><\/noindex> i Nederl\u00e4nderna! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 fr\u00e5n $99!<\/b><\/b> L\u00e4s om <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Hur man bygger en f\u00f6retagsinfrastruktur med Dell R730xd E5-2650 v4-servrar som kostar 9000 euro f\u00f6r en br\u00e5kdel?<\/a><\/noindex><br \/>\n<br \/>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/504672\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>Kubernetes \u2014 \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 Docker \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Kubernetes \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438. \u041f\u0440\u0438 \u0447\u0430\u0441\u0442\u043e\u043c \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0441\u0440\u0435\u0434\u0435 \u043c\u044b \u043d\u0443\u0436\u0434\u0430\u0435\u043c\u0441\u044f \u0432 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c Blue\/Green deployment, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432 \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435, \u043f\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0442\u0430\u043a\u0436\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0432\u043d\u0435\u0448\u043d\u0438\u0435 HTTP-\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0432\u044b\u0433\u0440\u0443\u0437\u043a\u0443 SSL. \u042d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":83788,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-83787","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"Kubernetes \u2014 \u044d\u0442\u043e \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 Docker \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0435. \u041e\u0434\u043d\u0430\u043a\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442 \u0437\u0430\u0434\u0430\u0447\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 Kubernetes \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435 \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/devoxx-uk-kubernetes-v-prodakshene-blue-green-deployment-avtomasshtabirovanie-i-avtomatizacziya-razvertyvaniya-chast-2\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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 i produktion: Blue\/Green deployment, automatiskt skalande och automatisering av distribution. Del 2 | ProHoster","description":"Kubernetes \u00e4r ett utm\u00e4rkt verktyg f\u00f6r att k\u00f6ra Docker-containrar i en klusterbaserad produktionsmilj\u00f6. Det finns dock uppgifter som Kubernetes inte kan l\u00f6sa.","canonical_url":"https:\/\/prohoster.info\/sv\/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":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/83787","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=83787"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/83787\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/83788"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=83787"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=83787"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=83787"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}