Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Docker Swarm, Kubernetes, ak Mesos se kad òkestrasyon veso ki pi popilè. Nan diskou li a, Arun Gupta konpare aspè sa yo nan Docker, Swarm, ak Kubernetes:

  • Devlopman lokal.
  • Fonksyon deplwaman.
  • Aplikasyon pou plizyè veso.
  • Dekouvèt sèvis.
  • Echèl sèvis la.
  • Kouri-yon fwa travay.
  • Entegrasyon ak Maven.
  • Mizajou "woule".
  • Kreye yon gwoup baz done Couchbase.

Kòm yon rezilta, ou pral jwenn yon konpreyansyon klè sou sa chak zouti òkestrasyon gen pou ofri epi aprann kijan pou itilize platfòm sa yo efektivman.

Arun Gupta se teknològ an chèf pou pwodwi sous louvri nan Amazon Web Services, ki ap devlope kominote devlopè Sun, Oracle, Red Hat ak Couchbase pou plis pase 10 ane. Gen anpil eksperyans k ap travay nan dirijan ekip kwa-fonksyonèl devlope ak aplike estrateji pou kanpay maketing ak pwogram. Li te dirije ekip enjenyè Sun, se youn nan fondatè ekip Java EE ak kreyatè branch Etazini Devoxx4Kids. Arun Gupta se otè plis pase 2 mil posts nan blog IT e li te bay diskou nan plis pase 40 peyi.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 1
Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 2

Liy 55 gen yon COUCHBASE_URI ki montre sèvis baz done sa a, ki te kreye tou lè l sèvi avèk fichye konfigirasyon Kubernetes la. Si w gade liy 2 a, ou ka wè jantiyès: Sèvis se sèvis m ap kreye a ki rele couchbase-service, e menm non an parèt sou liy 4. Anba a gen kèk pò.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Liy kle yo se 6 ak 7. Nan sèvis mwen di, "Hey, sa yo se etikèt yo m ap chèche!", ak etikèt sa yo pa plis pase non pè varyab, ak liy 7 pwen nan couchbase-rs-pod mwen an. aplikasyon. Sa ki anba la yo se pò yo ki bay aksè a etikèt sa yo menm.

Sou liy 19 mwen kreye yon nouvo tip ReplicaSet, liy 31 gen non imaj la, ak liy 24-27 montre metadata ki asosye ak gous mwen an. Sa a se egzakteman sa sèvis la ap chèche pou ak ki sa koneksyon an ta dwe fè. Nan fen dosye a gen yon kalite koneksyon ant liy 55-56 ak 4, ki di: "sèvi ak sèvis sa a!"

Se konsa, mwen kòmanse sèvis mwen an lè gen yon seri kopi, epi kòm chak seri kopi gen pwòp pò pa yo ak etikèt ki koresponn lan, li enkli nan sèvis la. Soti nan pwen de vi pwomotè a, ou tou senpleman rele sèvis la, ki Lè sa a, sèvi ak seri a nan kopi ou bezwen.

Kòm yon rezilta, mwen gen yon gous WildFly ki kominike ak backend baz done a atravè Sèvis Couchbase. Mwen ka itilize entèfas la ak plizyè gous WildFly, ki kominike tou ak backend couchbase atravè sèvis couchbase la.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Pita nou pral gade ki jan yon sèvis ki sitiye deyò gwoup la kominike atravè adrès IP li ak eleman ki sitiye andedan gwoup la epi ki gen yon adrès IP entèn.

Kidonk, kontenè apatrid yo bon, men ki jan li bon pou itilize resipyan ki gen eta? Ann gade nan paramèt sistèm yo pou veso ki gen eta oswa ki pèsistan. Nan Docker, gen 4 apwòch diferan nan layout depo done ke ou ta dwe peye atansyon sou. Premye a se Implicit Per-Container, ki vle di ke lè w ap itilize resipyan couchbase, MySQL oswa MyDB, yo tout kòmanse ak Sandbox default la. Sa vle di, tout bagay ki estoke nan baz done a estoke nan veso a li menm. Si veso a disparèt, done yo disparèt ansanm ak li.

Dezyèm lan se Explicit Per-Container, lè ou kreye yon depo espesifik ak volim nan Docker kreye lòd ak estoke done nan li. Twazyèm apwòch pou chak lame a asosye ak kat depo, lè tout bagay ki estoke nan veso a an menm tan kopi sou lame a. Si veso a echwe, done yo ap rete sou lame a. Lèt la se sèvi ak plizyè lame Multi-Host, ki se rekòmande nan etap pwodiksyon an nan solisyon divès kalite. Ann di kontenè ou yo ak aplikasyon ou yo ap kouri sou lame a, men ou vle estoke done ou yon kote sou entènèt la, epi pou sa ou itilize kat otomatik pou sistèm distribye.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Chak nan metòd sa yo sèvi ak yon kote depo espesifik. Done enplis ak eksplisit pou chak veso sou lame a nan /var/lib/docker/volumes. Lè w ap itilize metòd Per-Host, depo a monte andedan veso a, epi veso a li menm monte sou lame a. Pou multihosts, solisyon tankou Ceph, ClusterFS, NFS, elatriye ka itilize.

Si yon veso ki pèsistan echwe, anyè depo a vin inaksesib nan de premye ka yo, men nan de dènye ka yo aksè a konsève. Sepandan, nan premye ka a, ou ka jwenn aksè nan repozitwa a atravè yon lame Docker ki kouri sou yon machin vityèl. Nan dezyèm ka a, done yo pa pral pèdi tou, paske ou te kreye yon depo Eksplis.

Si lame a echwe, anyè depo a pa disponib nan twa premye ka yo; nan dènye ka a, koneksyon an ak depo a pa entèwonp. Finalman, fonksyon an pataje konplètman eskli pou depo nan premye ka a epi li posib nan rès la. Nan dezyèm ka a, ou ka pataje depo selon si baz done ou a sipòte depo distribiye oswa ou pa. Nan ka Per-Host, distribisyon done posib sèlman sou yon lame bay, epi pou yon multihost li bay pa ekspansyon gwoup.

Sa a ta dwe pran an kont lè yo kreye resipyan eta. Yon lòt zouti Docker itil se Plugin Volim, ki travay sou prensip "pil prezan, men yo dwe ranplase." Lè ou kòmanse yon veso Docker, li di, "Hey, yon fwa ou kòmanse yon veso ak yon baz done, ou ka estoke done ou nan veso sa a!" Sa a se karakteristik default la, men ou ka chanje li. Plugin sa a pèmèt ou sèvi ak yon kondwi rezo oswa yon bagay ki sanble olye de yon baz done veso. Li gen ladann yon chofè default pou depo ki baze sou lame epi li pèmèt entegrasyon veso ak sistèm depo ekstèn tankou Amazon EBS, Azure Storage ak GCE Persistent disk.

Diapositive kap vini an montre achitekti Plugin Docker Volume.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Koulè ble a reprezante kliyan Docker ki asosye ak lame Docker ble a, ki gen yon motè depo lokal ki bay ou kontenè pou estoke done yo. Green endike Plugin Kliyan an ak Plugin Daemon, ki konekte tou ak lame a. Yo bay opòtinite pou estoke done nan depo rezo ki kalite Backend Depo ou bezwen an.

Docker Volim Plugin a ka itilize ak depo Portworx. Modil PX-Dev la se aktyèlman yon veso ou kouri ki konekte ak lame Docker ou a epi ki pèmèt ou fasilman estoke done sou Amazon EBS.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Kliyan Portworx a pèmèt ou kontwole estati divès kalite resipyan depo ki konekte ak lame w la. Si w vizite blog mwen an, ou ka li kijan pou w pwofite Portworx ak Docker.

Konsèp depo nan Kubernetes sanble ak Docker epi li reprezante pa anyè ki aksesib a veso ou a nan yon gous. Yo endepandan de tout lavi nenpòt veso. Kalite depo ki pi komen ki disponib yo se hostPath, nfs, awsElasticBlockStore, ak gsePersistentDisk. Ann pran yon gade nan ki jan magazen sa yo travay nan Kubernetes. Tipikman, pwosesis la nan konekte yo konsiste de 3 etap.

Premye a se ke yon moun sou bò rezo a, anjeneral, yon administratè, bay ou ak depo ki pèsistan. Gen yon dosye konfigirasyon PersistentVolume korespondan pou sa a. Apre sa, devlopè aplikasyon an ekri yon fichye konfigirasyon ki rele PersistentVolumeClaim, oswa yon demann depo PVC, ki di: "Mwen gen 50 GO depo distribiye pwovizyon, men pou lòt moun sèvi ak kapasite li tou, m ap di PVC sa a mwen kounye a. bezwen sèlman 10 GB". Finalman, twazyèm etap la se ke demann ou an monte kòm depo, ak aplikasyon an ki gen gous la, oswa seri kopi, oswa yon bagay ki sanble, kòmanse sèvi ak li. Li enpòtan sonje ke pwosesis sa a konsiste de 3 etap yo mansyone epi li se évolutive.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Pwochen glisad la montre Kubernetes Persistence Container achitekti AWS la.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Anndan rektang mawon an ki reprezante gwoup Kubernetes la, gen yon nœud mèt ak de nœud travayè, ki endike an jòn. Youn nan nœuds travayè yo gen yon gous zoranj, depo, yon kontwolè kopi, ak yon veso vèt Docker Couchbase. Anndan gwoup la, anlè nœuds yo, yon rektang koulè wouj violèt endike Sèvis la aksesib soti deyò. Achitekti sa a rekòmande pou estoke done sou aparèy nan tèt li. Si sa nesesè, mwen ka estoke done mwen yo nan EBS andeyò gwoup la, jan yo montre nan pwochen diapositif la. Sa a se yon modèl tipik pou dekale, men gen yon aspè finansye yo konsidere lè w ap itilize li - estoke done yon kote sou rezo a ka pi chè pase sou yon lame. Lè w ap chwazi solisyon kontenèrizasyon, sa a se youn nan agiman ki enpòtan yo.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Menm jan ak Docker, ou ka itilize kontenè Kubernetes ki pèsistan ak Portworx.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Se sa ki nan tèminoloji aktyèl Kubernetes 1.6 yo rele yon "StatefulSet" - yon fason pou travay ak aplikasyon Stateful ki trete evènman sou kanpe Pod la ak fè Graceful Shutdown. Nan ka nou an, aplikasyon sa yo se baz done. Nan blog mwen an ou ka li ki jan yo kreye yon StatefulSet nan Kubernetes lè l sèvi avèk Portworx.
Ann pale sou aspè devlopman an. Kòm mwen te di, Docker gen 2 vèsyon - CE ak EE, nan premye ka a nou ap pale de yon vèsyon ki estab nan edisyon an Kominote, ki mete ajou yon fwa chak 3 mwa, nan kontras ak vèsyon an chak mwa mete ajou nan EE. Ou ka telechaje Docker pou Mac, Linux oswa Windows. Yon fwa enstale, Docker pral otomatikman mete ajou epi li trè fasil pou kòmanse.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Pou Kubernetes, mwen prefere vèsyon Minikube a - se yon bon fason pou kòmanse ak platfòm la lè w kreye yon gwoup sou yon sèl ne. Pou kreye grap nan plizyè nœuds, chwa vèsyon yo pi laj: sa yo se kops, kube-aws (CoreOS + AWS), kube-up (demode). Si w ap chèche sèvi ak AWS ki baze sou Kubernetes, mwen rekòmande rantre nan AWS SIG la, ki rankontre sou entènèt chak Vandredi epi pibliye yon varyete materyèl enteresan sou travay ak AWS Kubernetes.

Ann gade kijan Rolling Update fèt sou platfòm sa yo. Si gen yon gwoup nan plizyè nœuds, Lè sa a, li itilize yon vèsyon espesifik nan imaj la, pou egzanp, WildFly:1. Yon aktyalizasyon woule vle di ke vèsyon an imaj se sekans ranplase ak yon nouvo sou chak ne, youn apre lòt.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Pou fè sa, mwen sèvi ak lòd aktyalizasyon sèvis docker (non sèvis), kote mwen presize nouvo vèsyon WildFly:2 imaj la ak metòd aktyalizasyon update-parallelism 2. Nimewo 2 vle di ke sistèm lan pral mete ajou 2 imaj aplikasyon. an menm tan, Lè sa a, yon reta aktyalizasyon 10 segonn 10s, apre sa 2 pwochen imaj yo pral mete ajou sou 2 plis nœuds, elatriye. Mekanis senp aktyalizasyon woule sa a bay ou kòm yon pati nan Docker.

Nan Kubernetes, yon aktyalizasyon woule travay tankou sa a. Kontwolè replikasyon rc a kreye yon seri kopi menm vèsyon an, epi chak gous nan webapp-rc sa a bay yon etikèt ki sitiye nan etcd. Lè mwen bezwen yon gous, mwen sèvi ak Sèvis Aplikasyon an pou jwenn aksè nan depo etcd la, ki bay mwen gous la lè l sèvi avèk etikèt ki espesifye a.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Nan ka sa a, nou gen 3 gous nan kontwolè Replikasyon an ki kouri aplikasyon WildFly vèsyon 1. Lè nou mete ajou nan background nan, yo kreye yon lòt kontwolè replikasyon ak menm non ak endèks nan fen - - xxxxx, kote x se nimewo o aza, ak ak menm etikèt yo. Kounye a Sèvis Aplikasyon an gen twa gous ak ansyen vèsyon aplikasyon an ak twa gous ak nouvo vèsyon an nan nouvo kontwolè Replikasyon an. Apre sa, ansyen gous yo efase, kontwolè replikasyon an ak nouvo gous yo chanje non epi li mete an fonksyon.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Ann ale nan siveyans. Docker gen anpil kòmandman siveyans entegre. Pou egzanp, koòdone liy lòd estatistik veso docker a pèmèt ou montre enfòmasyon sou eta a nan resipyan nan konsole a chak segonn - itilizasyon processeur, itilizasyon disk, chaj rezo a. Zouti Docker Remote API bay done sou fason kliyan an kominike ak sèvè a. Li itilize kòmandman senp, men li baze sou Docker REST API. Nan ka sa a, mo REST, Flash, Remote vle di menm bagay la. Lè ou kominike ak lame a, se yon API REST. Docker Remote API a pèmèt ou jwenn plis enfòmasyon sou kouri kontenè yo. Blog mwen an esplike detay sou itilizasyon siveyans sa a ak Windows Server.

Siveyans evènman sistèm docker lè w ap kouri yon gwoup milti-lame fè li posib pou jwenn done sou yon aksidan lame oswa yon aksidan veso sou yon lame espesifik, sèvis dekale, ak lòt bagay. Kòmanse ak Docker 1.20, li gen ladann Prometheus, ki entegre pwen final nan aplikasyon ki deja egziste. Sa a pèmèt ou resevwa mezi atravè HTTP epi montre yo sou tablodbò yo.

Yon lòt karakteristik siveyans se cAdvisor (ki kout pou konseye veso). Li analize epi li bay done itilizasyon resous ak pèfòmans ki soti nan kontenè k ap kouri, li bay mezi Prometheus soti nan bwat la. Bagay espesyal sou zouti sa a se ke li sèlman bay done pou 60 segonn ki sot pase yo. Se poutèt sa, ou bezwen kapab kolekte done sa yo epi mete yo nan yon baz done pou ou ka kontwole yon pwosesis alontèm. Li kapab tou itilize pou montre metrik tablodbò grafikman lè l sèvi avèk Grafana oswa Kibana. Blog mwen an gen yon deskripsyon detaye sou fason pou itilize cAdvisor pou kontwole veso yo lè l sèvi avèk tablodbò Kibana.

Pwochen glise a montre kisa pwodiksyon pwen final Prometheus la sanble ak mezi ki disponib pou montre.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Anba bò gòch ou wè mezi pou demann HTTP, repons, elatriye, sou bò dwat la se ekspozisyon grafik yo.

Kubernetes gen ladan tou zouti siveyans entegre. Slide sa a montre yon gwoup tipik ki gen yon sèl mèt ak twa travayè nœuds.

Konferans UK DEVOXX. Chwazi yon kad: Docker Swarm, Kubernetes oswa Mesos. Pati 3

Chak nan nœuds k ap travay yo gen yon cAdvisor otomatikman lanse. Anplis de sa, gen Heapster, yon siveyans pèfòmans ak sistèm koleksyon mezi konpatib ak Kubernetes vèsyon 1.0.6 ak pi wo. Heapster pèmèt ou kolekte non sèlman mezi pèfòmans nan chaj travay, gous ak resipyan, men tou, evènman ak lòt siyal ki te pwodwi pa tout gwoup la. Pou kolekte done, li pale ak Kubelet chak gous la, otomatikman estoke enfòmasyon yo nan baz done InfluxDB a, epi li bay li kòm mezi nan tablodbò Grafana la. Sepandan, kenbe nan tèt ou ke si w ap itilize miniKube, karakteristik sa a pa disponib pa default, kidonk w ap oblije sèvi ak addons pou siveyans. Se konsa, li tout depann de kote ou kouri kontenè yo ak ki zouti siveyans ou ka itilize pa default ak ki ou bezwen enstale kòm adisyon separe.

Diapositive kap vini an montre tablodbò Grafana ki montre sitiyasyon kontenè mwen yo ap fonksyone. Gen anpil done enteresan isit la. Natirèlman, gen anpil zouti komèsyal Docker ak Kubernetes siveyans pwosesis, tankou SysDig, DataDog, NewRelic. Kèk nan yo gen yon peryòd esè gratis 30 ane, kidonk, ou ka eseye jwenn youn ki pi bon pou ou. Pèsonèlman, mwen prefere sèvi ak SysDig ak NewRelic, ki entegre byen ak Kubernetes. Gen zouti ki entegre egalman byen nan tou de platfòm Docker ak Kubernetes.

Kèk piblisite 🙂

Mèsi paske w rete avèk nou. Ou renmen atik nou yo? Vle wè plis kontni enteresan? Sipòte nou pa mete yon lòd oswa rekòmande pou zanmi, nwaj VPS pou devlopè soti nan $ 4.99, yon analogue inik nan sèvè nivo antre, ki te envante pa nou pou ou: Tout verite sou VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps soti nan $ 19 oswa ki jan yo pataje yon sèvè? (disponib ak RAID1 ak RAID10, jiska 24 nwayo ak jiska 40GB DDR4).

Dell R730xd 2 fwa pi bon mache nan sant done Equinix Tier IV nan Amstèdam? Sèlman isit la 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV soti nan $199 nan Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - soti nan $ 99! Li sou Ki jan yo bati enfrastrikti corp. klas ak itilizasyon Dell R730xd E5-2650 v4 serveurs ki vo 9000 ero pou yon jounen travay?

Sous: www.habr.com

Add nouvo kòmantè