DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Docker Swarm, Kubernetes, uye Mesos ndiwo anonyanya kufarirwa emidziyo orchestration masimusi. Muhurukuro yake, Arun Gupta anofananidza zvinotevera zveDocker, Swarm, uye Kubernetes:

  • Kuvandudza munharaunda.
  • Deployment mabasa.
  • Multi-container application.
  • Kuwanikwa kwesevhisi.
  • Kuwedzera sevhisi.
  • Mhanya-kamwe mabasa.
  • Kubatanidzwa neMaven.
  • "Rolling" update.
  • Kugadzira Couchbase database cluster.

Nekuda kweizvozvo, iwe unowana kunzwisisa kwakajeka kwezvipi chimwe nechimwe chekushandisa chekuimba uye kudzidza mashandisiro emapuratifomu aya nemazvo.

Arun Gupta ndiye mukuru wetekinoroji wezvakavhurika-sosi zvigadzirwa kuAmazon Web Services, anga achigadzira nharaunda dzeZuva, Oracle, Red Hat uye Couchbase kuvandudza nharaunda kweanopfuura makore gumi. Ane ruzivo rwakakura rwekushanda mukutungamira zvikwata-zvinoshanda zvikwata kugadzira uye kuita zano rekushambadzira mishandirapamwe uye zvirongwa. Akatungamira zvikwata zvemainjiniya eZuva, mumwe wevakatanga timu yeJava EE uye mugadziri webazi reUS reDevoxx10Kids. Arun Gupta ndiye munyori wezvinodarika zviuru zviviri zvakatumirwa mumablog eIT uye akapa hurukuro munyika dzinopfuura makumi mana.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 1
DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 2

Line 55 ine COUCHBASE_URI inongedza kune iyi database sevhisi, iyo yakagadzirwa zvakare uchishandisa Kubernetes kumisikidza faira. Kana iwe ukatarisa pamutsara 2, unogona kuona mhando: Sevhisi ibasa randiri kugadzira rinonzi couchbase-service, uye zita rimwechete rakanyorwa pamutsetse 4. Pazasi pane mamwe madoko.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Mitsetse yakakosha ndeye 6 uye 7. Mushumiro ndinoti, "Hei, aya ndiwo mazita andiri kutsvaga!", Uye mavara aya haasi chimwe chinhu kunze kwemazita maviri akasiyana, uye mutsara wechinomwe kune yangu couchbase-rs-pod. application. Izvi zvinotevera zviteshi zvinopa mukana kune aya mavara akafanana.

Pamutsara 19 ini ndinogadzira rudzi rutsva ReplicaSet, mutsara we31 une zita remufananidzo, uye mitsetse 24-27 inonongedza kune metadata yakabatana nepodhi yangu. Izvi ndizvo chaizvo izvo sevhisi iri kutsvaga uye kuti kubatana kunofanira kuitwa kunei. Pakupera kwefaira pane imwe mhando yekubatana pakati pemitsara 55-56 uye 4, ichiti: "shandisa iyi sevhisi!"

Saka, ini ndinotanga sevhisi yangu kana paine replica set, uye sezvo yega yega replica seti ine chiteshi chayo chine label inoenderana, inosanganisirwa musevhisi. Kubva pakuona kwemugadziri, iwe unongodaidza iyo sevhisi, iyo inobva yashandisa seti yezvinyorwa zvaunoda.

Nekuda kweizvozvo, ini ndine WildFly pod inotaurirana nedatabase backend kuburikidza neCouchbase Service. Ini ndinogona kushandisa kumberi nemapodhi akati wandei eWildFly, ayo zvakare anotaurirana necouchbase backend kuburikidza nesevhisi yemubhedha.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Gare gare isu tichatarisa kuti sevhisi iri kunze kwesumbu inotaurirana sei kuburikidza neiyo IP kero ine zvinhu zviri mukati mesumbu uye ine yemukati IP kero.

Saka, midziyo isina nyika yakakura, asi zvakanaka sei kushandisa midziyo ine nyika? Ngatitarisei masisitimu masisitimu ezvimiro, kana zvinoramba zviripo. MuDocker, kune nzira ina dzakasiyana dzekuchengetedza data dhizaini iwe yaunofanirwa kuterera. Yekutanga ndeyeImplicit Per-Container, zvinoreva kuti kana uchishandisa couchbase, MySQL kana MyDB midziyo ine satateful, vese vanotanga neiyo default Sandbox. Ndiko kuti, zvese zvakachengetwa mudhatabhesi zvakachengetwa mumudziyo pachawo. Kana mudziyo ukanyangarika, iyo data inonyangarika pamwe chete nayo.

Yechipiri ndeye Explicit Per-Container, kana iwe ukagadzira chaiyo yekuchengetedza ine docker vhoriyamu gadzira rairo uye chengetedza data mairi. Yechitatu Per-Host maitiro inodyidzana nemepu yekuchengetera, kana zvese zvakachengetwa mumudziyo zvichidzokororwa panguva imwe chete pamugamuchiri. Kana iyo mudziyo ikakundikana, iyo data icharamba iri pamubati. Iyo yekupedzisira ndeye kushandiswa kweakawanda Multi-Host mauto, ayo anokurudzirwa padanho rekugadzira remhinduro dzakasiyana. Ngatitii midziyo yako ine maapplication ari kushanda pane anotambira, asi iwe unoda kuchengeta data rako kumwe paInternet, uye kune izvi unoshandisa otomatiki mepu kune akagoverwa masisitimu.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Imwe neimwe yenzira idzi inoshandisa imwe nzvimbo yekuchengetedza. Zvakajeka uye Zvakajeka Per-Container chengetedza data pane iyo host pa /var/lib/docker/volumes. Paunenge uchishandisa nzira yePer-Host, chengetedzo inoiswa mukati memudziyo, uye mudziyo wacho pachawo wakaiswa pamutariri. Kune akawanda akawanda, mhinduro dzakadai seCeph, ClusterFS, NFS, nezvimwe zvinogona kushandiswa.

Kana chigadziko chinoramba chichikundikana, dhairekitori rekuchengetedza rinova risingasvikike mumakesi maviri ekutanga, asi mumakesi maviri ekupedzisira kuwana kunochengetedzwa. Nekudaro, mune yekutanga kesi, unogona kuwana iyo repository kuburikidza neDocker host inomhanya pamushini chaiwo. Muchiitiko chechipiri, iyo data haizorasikirwe zvakare, nekuti iwe wakagadzira Yakajeka yekuchengetedza.

Kana iyo saiti ikatadza, dhairekitori rekuchengetedza hariwanikwe mumakesi matatu ekutanga; mune yekupedzisira, kubatana nekuchengetedza hakukanganiswe. Pakupedzisira, iyo yakagovaniswa basa haina kuisirwa zvachose kuchengetedza mukutanga kesi uye inogoneka mune yakasara. Muchiitiko chechipiri, unogona kugovera kuchengetedza zvichienderana nekuti dhatabhesi yako inotsigira yakagoverwa kuchengetedza kana kwete. Panyaya yePer-Host, kugovera data kunogoneka chete pane yakapihwa muenzi, uye kune yakawanda host inopihwa nekuwedzera kweboka.

Izvi zvinofanirwa kucherechedzwa pakugadzira midziyo yemhando. Chimwe chinobatsira Docker chishandiso iVolume plugin, inoshanda pamusimboti we "mabhatiri aripo, asi anofanira kutsiviwa." Paunotanga mudziyo weDocker, unoti, "Hei, kana wangotanga mudziyo une dhatabhesi, unogona kuchengeta data rako mumudziyo uyu!" Ichi ndicho chimiro chekare, asi unogona kuchichinja. Iyi plugin inokutendera kuti ushandise network drive kana chimwe chinhu chakafanana pachinzvimbo chedhatabhesi. Inosanganisira mutyairi akasarudzika wekuchengetedza-yakavakirwa kuchengetedza uye inobvumira mudziyo kubatanidzwa nekunze ekuchengetedza masisitimu akadai seAmazon EBS, Azure Storage uye GCE Persistent disks.

Iyo inotevera siraidhi inoratidza dhizaini yeDocker Vhoriyamu plugin.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Ruvara rwebhuruu runomiririra mutengi weDocker ane hukama neBlue Docker host, iyo ine Yenzvimbo yekuchengetedza injini inokupa iwe midziyo yekuchengetera data. Green inoratidza Plugin Client uye Plugin Daemon, iyo yakabatana zvakare kune iyo host. Ivo vanopa mukana wekuchengeta data mune network kuchengetedza yerudzi rweKuchengetedza Backend yaunoda.

Iyo Docker Vhoriyamu plugin inogona kushandiswa nePortworx kuchengetedza. Iyo PX-Dev module inongova mudziyo waunomhanyisa unobatanidza kune yako Docker host uye inobvumidza iwe kuchengetedza nyore data paAmazon EBS.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Iyo Portworx mutengi inokutendera iwe kuti utarise mamiriro eakasiyana emidziyo yekuchengetera ayo akabatana nemugamuchiri wako. Kana iwe ukashanyira blog yangu, unogona kuverenga maitiro ekuita zvakanyanya zvePortworx neDocker.

Iyo pfungwa yekuchengetedza muKubernetes yakafanana neDocker uye inomiririrwa nemadhairekitori anowanikwa kune mudziyo wako mune pod. Izvo zvakasununguka pahupenyu hwese chero mudziyo. Mhando dzekuchengetedza dzakajairika dziripo hostPath, nfs, awsElasticBlockStore, uye gsePersistentDisk. Ngatitarisei kuti zvitoro izvi zvinoshanda sei muKubernetes. Kazhinji, maitiro ekuvabatanidza ane matanho matatu.

Chekutanga ndechekuti mumwe munhu ari kudivi retiweki, kazhinji maneja, anokupa iwe kuchengetedza kunoramba kuripo. Pane inoenderana PersistentVolume gadziriso faira yeiyi. Tevere, mugadziri wekushandisa anonyora faira yekumisikidza inonzi PersistentVolumeClaim, kana chikumbiro chePVC chekuchengetedza, icho chinoti: "Ndine 50GB yekuchengetedza yakagoverwa, asi kuti vamwe vanhu vashandisewo kugona kwayo, ndiri kuudza iyi PVC yandiri parizvino. vanoda chete 10 GB". Chekupedzisira, danho rechitatu nderekuti chikumbiro chako chinoiswa sechichengetedzo, uye application ine pod, kana replica set, kana chimwe chinhu chakafanana, inotanga kuishandisa. Zvakakosha kuyeuka kuti maitiro aya ane matanho matatu ataurwa uye ari scalable.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Iyo inotevera siraidhi inoratidza Kubernetes Kushingirira Container yeAWS yekuvakisa.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Mukati merectangle yebrown inomiririra Kubernetes cluster, pane imwe master node nemanodhi maviri evashandi, anoratidzwa neyero. Imwe yemanodhi evashandi ine orenji pod, chengetedzo, replica controller, uye girini Docker Couchbase mudziyo. Mukati meboka, pamusoro pemanodhi, rectangle yepepuru inoratidza Sevhisi inowanikwa kubva kunze. Iyi dhizaini inokurudzirwa kuchengetedza data pane mudziyo pachayo. Kana zvichidikanwa, ndinogona kuchengeta data rangu muEBS kunze kwesumbu, sezvakaratidzwa mune inotevera siraidhi. Iyi ndiyo yakajairika modhi yekuyera, asi pane mari yekufunga kana uchiishandisa - kuchengetedza data pane imwe nzvimbo panetiweki kunogona kudhura kupfuura pane mugamuchiri. Pakusarudza zvigadziriso zvemidziyo, iyi ndeimwe yenharo dzinorema.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Sezvakangoita neDocker, unogona kushandisa zvinoramba zvichiitika Kubernetes midziyo ine Portworx.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Izvi ndizvo zviri mune yazvino Kubernetes 1.6 terminology inodaidzwa kuti "StatefulSet" - nzira yekushanda neStateful application iyo inogadzirisa zviitiko nezvekumisa Pod uye kuita Graceful Shutdown. Muchiitiko chedu, zvikumbiro zvakadaro ndeye databases. Mune yangu blog iwe unogona kuverenga maitiro ekugadzira StatefulSet muKubernetes uchishandisa Portworx.
Ngatitaurei nezve budiriro. Sezvandakataura, Docker ine 2 shanduro - CE uye EE, mune yekutanga kesi tiri kutaura nezve yakagadzikana vhezheni yeCommunity Edition, iyo inovandudzwa kamwe chete mwedzi mitatu yega yega, mukupesana neiyo pamwedzi yakagadziridzwa vhezheni yeEE. Unogona kudhawunirodha Docker yeMac, Linux kana Windows. Kana yangoiswa, Docker inozvigadzirisa uye zviri nyore kuti utange.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

KwaKubernetes, ini ndinosarudza iyo Minikube vhezheni - inzira yakanaka yekutanga nepuratifomu nekugadzira sumbu pane imwechete node. Kugadzira masumbu emanode akati wandei, sarudzo yeshanduro yakakura: idzi kops, kube-aws (CoreOS + AWS), kube-up (yechinyakare). Kana iwe uchitsvaga kushandisa AWS-based Kubernetes, ini ndinokurudzira kujoinha iyo AWS SIG, iyo inosangana online neChishanu chega chega uye inoburitsa zvakasiyana siyana zvinonakidza zvekushanda neAWS Kubernetes.

Ngatitarisei kuti Rolling Update inoitwa sei pamapuratifomu aya. Kana paine sumbu remanodhi akati wandei, saka rinoshandisa chaiyo vhezheni yemufananidzo, semuenzaniso, WildFly:1. A rolling update zvinoreva kuti mufananidzo vhezheni inotsiviwa neimwe itsva pane imwe neimwe node, imwe mushure meimwe.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Kuti ndiite izvi, ndinoshandisa docker service update (zita rebasa) murairo, umo ini ndinotsanangura shanduro itsva yeWildFly: 2 mufananidzo uye nzira yekuvandudza update-parallelism 2. Nhamba ye2 inoreva kuti hurongwa huchagadzirisa 2 mifananidzo yekushandisa. panguva imwe chete, ipapo 10-yechipiri update inononoka 10s, mushure meiyo inotevera 2 mifananidzo ichagadziridzwa pane 2 mamwe node, nezvimwe. Iyi yakapfava yekutenderedza dhizaini inopihwa kwauri sechikamu cheDocker.

MuKubernetes, iyo rolling update inoshanda seizvi. Iyo inodzokorodza controller rc inogadzira seti yezvinyorwa zveiyo vhezheni imwe chete, uye yega yega mune ino webapp-rc inopihwa ine label iri mu etcd. Pandinoda pod, ini ndinoshandisa iyo Yekushandisa Sevhisi kuwana iyo etcd repository, iyo inondipa iyo pod ndichishandisa iyo yakataurwa label.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Muchiitiko ichi, tine 3 pods muReplication controller inoshandisa WildFly version 1. Paunenge uchivandudza kumashure, imwe dhigirii yekudzokorora inogadzirwa ine zita rimwechete uye indekisi pamagumo - - xxxxx, apo x nhamba dzisinganzwisisiki, uye ane mavara akafanana. Ikozvino Kushanda Sevhisi ine mapodhi matatu ane yekare vhezheni yekushandisa uye matatu mapodhi ane vhezheni nyowani mune itsva Replication controller. Mushure meizvi, mapodhi ekare anobviswa, mutongi wekudzokorora ane mapodhi matsva anotumidzwa zita uye anoiswa mukushanda.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Ngatienderere mberi kune monitoring. Docker ine akawanda akavakirwa-mukati ekutarisa mirairo. Semuenzaniso, iyo docker container stats command line interface inobvumidza iwe kuratidza ruzivo nezve mamiriro emidziyo kune console sekondi yega yega - processor kushandiswa, disk kushandiswa, network mutoro. Iyo Docker Remote API chishandiso inopa data nezve matauriro anoita mutengi nesevha. Inoshandisa mirairo yakapusa, asi yakavakirwa paDocker REST API. Panyaya iyi, mazwi anoti REST, Flash, Remote anoreva chinhu chimwe chete. Paunotaurirana nemugamuchiri, iREST API. Iyo Docker Remote API inobvumidza iwe kuti uwane rumwe ruzivo nezve inomhanya midziyo. Bhurogi yangu inotsanangura ruzivo rwekushandisa iyi yekutarisa neWindows Server.

Kutarisisa docker system zviitiko kana uchimhanyisa akawanda-anotambira cluster anoita kuti zvikwanise kuwana data nezve kuparara kwemuenzi kana kuparara kwemudziyo pane yakasarudzika muenzi, kuyera masevhisi, nezvimwe zvakadaro. Kutanga neDocker 1.20, inosanganisira Prometheus, iyo inomisikidza magumo mumashandisirwo aripo. Izvi zvinokutendera kuti ugamuchire metrics kuburikidza neHTTP uye woaratidza pamadhibhodhi.

Imwe yekutarisa ndeye cAdvisor (pfupi kune mudziyo chipangamazano). Inoongorora uye inopa mashandisirwo ekushandisa uye data rekuita kubva mumidziyo inomhanya, ichipa Prometheus metrics kunze kwebhokisi. Chinhu chakakosha pamusoro pechishandiso ichi ndechekuti chinongopa data kwemasekonzi makumi matanhatu ekupedzisira. Naizvozvo, iwe unofanirwa kukwanisa kuunganidza iyi data uye kuiisa mudhatabhesi kuitira kuti iwe ugone kutarisa maitiro enguva refu. Inogona zvakare kushandiswa kuratidza dashboard metrics zvine graphic uchishandisa Grafana kana Kibana. Blog rangu rine tsananguro yakadzama yekushandisa cAdvisor kutarisa midziyo uchishandisa Kibana dashboard.

Iyo inotevera slide inoratidza izvo Prometheus endpoint inobuda inotaridzika uye metrics inowanikwa kuratidza.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Pazasi kuruboshwe unoona mametrics ezvikumbiro zveHTTP, mhinduro, nezvimwe, kurudyi ndiko kuratidzwa kwavo kwemifananidzo.

Kubernetes inosanganisirawo akavakirwa-mukati ekutarisa maturusi. Iyi siraidhi inoratidza yakajairwa cluster ine tenzi mumwe chete nemanodhi matatu evashandi.

DEVOXX UK Musangano. Sarudza chimiro: Docker Swarm, Kubernetes kana Mesos. Chikamu 3

Imwe neimwe yeanoshanda node ine yakatangwa otomatiki cAdvisor. Pamusoro pezvo, kune Heapster, yekutarisa maitiro uye metrics yekuunganidza sisitimu inoenderana neKubernetes vhezheni 1.0.6 uye yepamusoro. Heapster inobvumidza iwe kuunganidza kwete chete maitiro ekuita metrics emabasa, pods uye midziyo, asiwo zviitiko uye mamwe masaini anogadzirwa nesumbu rese. Kuti utore data, inotaura kune yega pod's Kubelet, inozvichengeta iyo ruzivo muInfluxDB dhatabhesi, uye inoburitsa semetrics kuGrafana dashboard. Nekudaro, ramba uchifunga kuti kana uri kushandisa miniKube, chimiro ichi hachiwanikwe nekukasira, saka uchafanirwa kushandisa maaddon ekutarisisa. Saka zvese zvinoenderana nekwaunomhanyisa midziyo uye kuti ndeapi maturusi ekutarisa aunogona kushandisa nekusarudzika uye aunoda kuisa seakasiyana ekuwedzera.

Siraidhi inotevera inoratidza Grafana dashboards inoratidza kushanda kwemidziyo yangu. Pane data rakawanda rinonakidza pano. Ehe, kune akawanda ekutengesa Docker uye Kubernetes maitiro ekutarisa maturusi, akadai seSysDig, DataDog, NewRelic. Vamwe vacho vane makore makumi matatu emahara ekuyedzwa nguva, saka unogona kuedza nekutsvaga iyo inonyatsokunakira iwe. Ini pachangu, ini ndinosarudza kushandisa SysDig uye NewRelic, iyo inobatanidza zvakanaka neKubernetes. Kune maturusi anobatanidza zvakaenzana mune ese Docker uye Kubernetes mapuratifomu.

Dzimwe ads πŸ™‚

Ndinokutendai nekugara nesu. Unoda zvinyorwa zvedu here? Unoda kuona zvimwe zvinonakidza zvemukati? Titsigire nekuisa odha kana kukurudzira kushamwari, Cloud VPS yevagadziri kubva kumadhora 4.99, yakasarudzika analogue yekupinda-level maseva, iyo yakagadzirwa nesu kuti iwe: Chokwadi chese nezveVPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps kubva pamadhora makumi maviri kana kugovera sevha? (inowanikwa neRAID1 uye RAID10, kusvika ku24 cores uye kusvika ku40GB DDR4).

Dell R730xd 2 nguva yakachipa muEquinix Tier IV data center muAmsterdam? Chete pano 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV kubva $199 muNetherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - kubva pamadhora makumi mapfumbamwe nemapfumbamwe! Verenga nezve Nzira yekuvaka Infrastructure Corp. kirasi nekushandiswa kweDell R730xd E5-2650 v4 maseva anokosha 9000 euros penny?

Source: www.habr.com

Voeg