Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

Kubernetes best practices. It meitsjen fan lytse konteners

As jo ​​begjinne mei it meitsjen fan mear en mear Kubernetes-tsjinsten, begjinne taken dy't yn earste ynstânsje ienfâldich binne komplekser te wurden. Bygelyks kinne ûntwikkelingsteams gjin tsjinsten of ynset meitsje ûnder deselde namme. As jo ​​tûzenen pods hawwe, sil it gewoan opjaan fan se in protte tiid nimme, lit stean se goed beheare. En dit is mar it tip fan 'e iisberch.

Litte wy sjen nei hoe't de nammeromte it makliker makket om Kubernetes-boarnen te behearjen. Dus wat is in nammeromte? Nammeromte kin beskôge wurde as in firtuele kluster binnen jo Kubernetes-kluster. Jo kinne meardere nammeromten hawwe isolearre fan elkoar binnen ien Kubernetes-kluster. Se kinne jo en jo teams wirklik helpe mei organisaasje, feiligens, en sels systeemprestaasjes.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

Op de measte Kubernetes-distribúsjes komt it kluster út it fak mei in nammeromte neamd "standert". D'r binne eins trije nammeromten wêrmei Kubernetes omgiet: standert, kube-systeem en kube-publyk. Op it stuit wurdt Kube-publyk net heul faak brûkt.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

It ferlitten fan de kube nammeromte allinnich is in goed idee, benammen op in beheard systeem lykas Google Kubernetes Engine. It brûkt de "standert" nammeromte as it plak dêr't jo tsjinsten en applikaasjes wurde makke. Der is hielendal neat spesjaal oer it, útsein dat Kubernetes is konfigurearre út it fak foar in gebrûk it, en do kinst net fuortsmite it. Dit is geweldich om te begjinnen en systemen mei lege prestaasjes, mar ik soe de standert nammeromte net oanrikkemandearje op grutte prodsystemen. Yn it lêste gefal kin ien ûntwikkelteam de koade fan in oar maklik oerskriuwe en it wurk fan in oar team brekke sûnder it sels te realisearjen.

Dêrom moatte jo meardere nammeromten oanmeitsje en se brûke om jo tsjinsten te segmentearjen yn behearbere ienheden. In nammeromte kin makke wurde mei ien kommando. As jo ​​​​in nammeromte mei de namme test wolle oanmeitsje, brûk dan it kommando $ kubectl meitsje nammeromte test of meitsje gewoan in YAML-bestân en brûk it lykas elke oare Kubernetes-boarne.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

Jo kinne alle nammeromten besjen mei it kommando $ kubectl get namespace.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

As it klear is, sille jo trije ynboude nammeromten sjen en in nije nammeromte mei de namme "test". Litte wy nei in ienfâldich YAML-bestân sjen om in pod te meitsjen. Jo sille merke dat der gjin sprake is fan nammeromte.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

As jo ​​kubectl brûke om dit bestân út te fieren, sil it de mypod-module meitsje yn 'e op it stuit aktive nammeromte. Dit sil de standert nammeromte wêze oant jo it wizigje. D'r binne 2 manieren om Kubernetes te fertellen yn hokker nammeromte jo jo boarne wolle oanmeitsje. De earste manier is om in nammeromteflagge te brûken by it meitsjen fan in boarne.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

De twadde manier is om de nammeromte oan te jaan yn 'e YAML-deklaraasje.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

As jo ​​in nammeromte yn YAML oantsjutte, sil de boarne altyd yn dy nammeromte oanmakke wurde. As jo ​​besykje in oare nammeromte te brûken by it brûken fan de nammeromteflagge, sil it kommando mislearje. No as jo besykje jo pod te finen, kinne jo dat net dwaan.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

Dit bart omdat alle kommando's wurde útfierd bûten de op it stuit aktive nammeromte. Om jo pod te finen, moatte jo in nammeromteflagge brûke, mar dit wurdt rap saai, foaral as jo in ûntwikkelder binne yn in team dat syn eigen nammeromte brûkt en dy flagge net foar elk inkeld kommando brûke wol. Litte wy sjen hoe't wy dit kinne reparearje.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

Ut it fak wurdt jo aktive nammeromte standert neamd. As jo ​​gjin nammeromte yn 'e boarne YAML spesifisearje, dan sille alle Kubernetes-kommando's dizze aktive standertnammeromte brûke. Spitigernôch kin it besykjen om de aktive nammeromte te behearjen mei kubectl mislearje. D'r is lykwols in heul goed ark neamd Kubens dat dit proses folle makliker makket. As jo ​​it kommando kubens útfiere, sjogge jo alle nammeromten mei de aktive nammeromte markearre.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

Om de aktive nammeromte te wikseljen nei de testnammeromte, kinne jo gewoan it testkommando $kubens útfiere. As jo ​​dan it kommando $kubens nochris útfiere, sille jo sjen dat der no in nije aktive nammeromte is tawiisd - test.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

Dit betsjut dat jo de nammeromteflagge net nedich hawwe om de pod yn 'e testnammeromte te sjen.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

Sa wurde de nammeromten fan inoar ferburgen, mar net fan inoar isolearre. In tsjinst yn ien nammeromte kin frij maklik kommunisearje mei in tsjinst yn in oare nammeromte, wat faaks tige nuttich is. De mooglikheid om te kommunisearjen oer ferskate nammeromten betsjut dat de tsjinst fan jo ûntwikkelders kin kommunisearje mei de tsjinst fan in oar dev-team yn in oare nammeromte.

Typysk, as jo applikaasje tagong wol ta in Kubernetes-tsjinst, brûke jo de ynboude DNS-ûntdekkingstsjinst en jou jo applikaasje gewoan de namme fan 'e tsjinst. Troch dit te dwaan kinne jo lykwols in tsjinst meitsje ûnder deselde namme yn meardere nammeromten, wat net akseptabel is.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

Gelokkich is dit maklik om te kommen troch de útwreide foarm fan it DNS-adres te brûken. Tsjinsten yn Kubernetes bleatstelle har einpunten mei in mienskiplik DNS-sjabloan. It sjocht der sa út:

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

Typysk hawwe jo gewoan de tsjinstnamme nedich en DNS sil automatysk it folsleine adres bepale.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

As jo ​​​​lykwols tagong moatte ta in tsjinst yn in oare nammeromte, brûk dan gewoan de tsjinstnamme plus de nammeromte:

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

As jo ​​bygelyks ferbine wolle mei in tsjinstdatabase yn in testnammeromte, kinne jo de adresdatabase database.test brûke

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

As jo ​​wolle ferbine mei de tsjinst databank yn de prod nammeromte, Jo brûke database.prod.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

As jo ​​wirklik tagong ta nammeromte isolearje en beheine wolle, lit Kubernetes jo dit dwaan mei Kubernetes Network Policies. Ik sil it oer dit yn 'e folgjende ôflevering.

Ik wurd faak de fraach steld, hoefolle nammeromten moat ik meitsje en foar hokker doelen? Wat is in beheard stik gegevens?

As jo ​​​​tefolle nammeromten oanmeitsje, sille se jo gewoan yn 'e wei komme. As d'r te min binne, sille jo alle foardielen fan sa'n oplossing ferlieze. Ik tink dat d'r fjouwer haadstadia binne dy't elk bedriuw trochgiet by it meitsjen fan har organisaasjestruktuer. Ofhinklik fan it stadium fan ûntwikkeling wêryn jo projekt of bedriuw is, wolle jo miskien in passende nammeromtestrategy oannimme.

Stel jo foar dat jo diel útmeitsje fan in lyts team dat wurket oan it ûntwikkeljen fan 5-10 mikrotsjinsten en jo kinne alle ûntwikkelders maklik yn ien keamer sammelje. Yn dizze situaasje makket it sin om alle prod-tsjinsten út te fieren yn 'e standert nammeromte. Fansels kinne jo foar mear fleksibiliteit 2 nammeromten brûke - apart foar prod en dev. En wierskynlik testje jo jo ûntwikkeling op jo lokale komputer mei soksoarte as Minikube.

Litte wy sizze dat dingen feroarje en jo hawwe no in rap groeiend team dat wurket oan mear dan 10 mikrotsjinsten tagelyk. Der komt in tiid dat it nedich is om ferskate klusters of nammeromten te brûken, apart foar prod en dev. Jo kinne it team yn ferskate sub-teams brekke, sadat elk fan har har eigen mikrotsjinsten hat en elk fan dizze teams kin har eigen nammeromte kieze om it proses fan it behearen fan softwareûntwikkeling en frijlitting te fasilitearjen.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

As elk teamlid ynsjoch krijt yn hoe't it systeem as gehiel wurket, wurdt it hieltyd dreger om elke feroaring te koördinearjen mei alle oare ûntwikkelders. Besykje te spin up in folsleine steapel op jo lokale masine wurdt hieltyd dreger eltse dei.

Yn grutte bedriuwen witte ûntwikkelders oer it generaal net wa't krekt oan wat wurket. Teams kommunisearje mei tsjinstkontrakten of brûke tsjinstmesh-technology, dy't in abstraksjelaach tafoeget oer it netwurk, lykas it Istio-konfiguraasjeark. Besykje te rinnen in hiele stack lokaal is gewoan net mooglik. Ik riede tige oan in gebrûk in trochgeande levering (CD) platfoarm lykas Spinnaker op Kubernetes. Dat, d'r komt in punt wêr't elk kommando perfoarst syn eigen nammeromte nedich hat. Elk team kin sels meardere nammeromten kieze foar de dev-omjouwing en de prod-omjouwing.

Uteinlik binne d'r grutte ûndernimmende bedriuwen wêryn ien groep ûntwikkelders net iens wit oer it bestean fan oare groepen. Sa'n bedriuw kin oer it algemien ûntwikkelders fan tredden ynhiere dy't mei har ynteraksje fia goed dokuminteare API's. Elke sa'n groep befettet ferskate teams en ferskate mikrotsjinsten. Yn dit gefal moatte jo alle ark brûke wêr't ik earder oer praat.

Kubernetes best practices. Organisaasje fan Kubernetes mei nammeromte

Programmeurs moatte gjin tsjinsten mei de hân ynsette en moatte gjin tagong hawwe ta nammeromten dy't har net oangeane. Op dit stadium is it oan te rieden om ferskate klusters te hawwen om de "blastradius" fan min konfigureare applikaasjes te ferminderjen, om fakturearringprosessen en boarnebehear te ferienfâldigjen.

Sa, goed gebrûk fan nammeromten troch jo organisaasje kinne jo meitsje Kubernetes mear beheare, kontrolearber, feilich, en fleksibeler.

Kubernetes best practices. Validearje Kubernetes Liveness mei Readiness and Liveness Tests

Guon advertinsjes 🙂

Tankewol foar it bliuwen by ús. Hâld jo fan ús artikels? Wolle jo mear ynteressante ynhâld sjen? Stypje ús troch in bestelling te pleatsen of oan te befeljen oan freonen, wolk VPS foar ûntwikkelders fan $ 4.99, in unike analoog fan servers op yngongsnivo, dy't troch ús foar jo útfûn is: De hiele wierheid oer VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps fan $19 of hoe te dielen in tsjinner? (beskikber mei RAID1 en RAID10, oant 24 kearnen en oant 40GB DDR4).

Dell R730xd 2 kear goedkeaper yn Equinix Tier IV data sintrum yn Amsterdam? Allinne hjir 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV fan $199 yn Nederlân! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - fan $99! Lêze oer Hoe kinne jo Infrastructure Corp. klasse mei it brûken fan Dell R730xd E5-2650 v4 tsjinners wurdich 9000 euro foar in penny?

Boarne: www.habr.com

Add a comment