Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Praktikat më të mira Kubernetes. Krijimi i konteinerëve të vegjël

Ndërsa filloni të krijoni gjithnjë e më shumë shërbime Kubernetes, detyrat që në fillim duken të thjeshta fillojnë të komplikohet. Për shembull, ekipet e zhvilluesve nuk mund të krijojnë shërbime ose meksë me të njëjtin emër. Nëse keni mijëra pod-e, thjesht listimi i tyre do të marrë shumë kohë, pa përmendur menaxhimin e tyre të duhur. Dhe kjo është vetëm maja e akullnajes.

Le të shohim se si hapësira emërtimi (namespace) lehtëson menaxhimin e burimeve Kubernetes. Pra, çfarë është hapësira emërtimi? Ajo mund të shihet si një klaster virtual brenda klasterit tuaj Kubernetes. Mund të keni disa hapësira emërtimi të izoluara nga njëri-tjetri brenda një klasteri Kubernetes. Ato mund t'ju ndihmojnë juve dhe ekipeve tuaja me organizimin, sigurinë dhe madje edhe performancën e sistemit.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Në shumicën e shpërndarjeve Kubernetes, klasteri del 'nga kutia' me një hapësirë emërtimi që quhet 'default'. Në të vërtetë ekzistojnë tri hapësira emërtimi me të cilat merret Kubernetes: default, kube-system dhe kube-public. Aktualisht, kube-public nuk përdoret shumë.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Të mos prekni hapësirën emërtimi kube është një ide e mirë, veçanërisht në një sistem të menaxhuar si Google Kubernetes Engine. Ai përdor hapësirën emërtimi 'default' si vend ku krijohen shërbimet dhe aplikacionet tuaja. Nuk ka asgjë të veçantë përveç faktit se Kubernetes 'nga kutia' është i konfiguruar për ta përdorur, dhe nuk mund ta fshini. Kjo është e shkëlqyer për nisjen dhe sistemet me performancë të ulët, por nuk do ta rekomandoja përdorimin e hapësirës emërtimi default në sisteme të mëdha prodhimi. Në këtë rast, një ekip zhvilluesish mund të rishkruajë lehtësisht kodin e dikujt tjetër dhe të prishë funksionimin e ekipit tjetër, pa e kuptuar fare.

Prandaj, është e nevojshme të krijoni disa hapësira emërtimi dhe t'i përdorni ato për të segmentuar shërbimet tuaja në pjesë të menaxhuara. Një hapësirë emërtimi mund të krijohet me një komandë. Nëse dëshironi të krijoni një hapësirë emërtimi me emrin test, përdorni komandën $ kubectl create namespace test ose thjesht krijoni një skedar YAML dhe përdoreni atë si çdo burim tjetër Kubernetes.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Për të parë të gjitha hapësirat emërtimi, mund të përdorni komandën $ kubectl get namespace.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Pas pas përfundimit të saj, do të shihni tre hapësira emrash të ndërtuara dhe një hapësirë emri të re të quajtur "test". Le të shqyrtojmë një skedar të thjeshtë YAML, i destinuar për të krijuar një pod. Mund të vërehet se nuk ka asnjë përmendje të hapësirës emri.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Nëse aplikoni kubectl për të ekzekutuar këtë skedar, ai do të krijojë modulin mypod në hapësirën aktuale aktive të emrit. Kjo do të jetë hapësira emri për default, derisa ta ndryshoni atë. Ekzistojnë dy mënyra për t'i treguar Kubernetes-it se në cilën hapësirë emri dëshironi të krijoni burimin tuaj. Mënyra e parë është përdorimi i flamurit të hapësirës emri gjatë krijimit të burimit.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Mënyra e dytë është përcaktimi i hapësirës emri në deklaratën YAML.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Nëse përcaktoni hapësirën emri në YAML, burimi gjithmonë do të krijohet në këtë hapësirë. Nëse përpiqeni të përdorni një hapësirë emri tjetër duke përdorur flamurin e hapësirës emri, komandimi do të dështojë. Tani, nëse përpiqeni të gjeni pod-in tuaj, nuk do të jeni në gjendje ta bëni atë.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Kjo ndodh sepse të gjitha komandat ekzekutohen jashtë hapësirës aktuale aktive të emrit. Për të gjetur pod-in tuaj, duhet të përdorni flamurin e hapësirës emri, megjithatë, kjo bëhet shpejt e mërzitshme, veçanërisht nëse jeni një zhvillues në një grup që përdor hapësirën e vet të emrit dhe nuk dëshiron të përdorë një flamur për çdo komandë të veçantë. Le të shohim se si mund ta rregullojmë këtë.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Nga kutia, hapësira juaj aktive e emrit quhet default. Nëse nuk përcaktoni hapësirën emri në burimin YAML, të gjitha komandat Kubernetes do të përdorin këtë hapësirë aktive default. Fatkeqësisht, përpjekja për të menaxhuar hapësirën aktive të emrit me kubectl mund të dështojë. Megjithatë, ekziston një mjet shumë të mirë të quajtur Kubens, i cili e bën këtë proces shumë më të lehtë. Kur ekzekutoni komandën kubens, shihni të gjitha hapësirat e emrave me hapësirën e ndriçuar aktive të emrit.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Për të kaluar hapësirën aktive të emrit në hapësirën e emrit test, thjesht ekzekutoni komandën $ kubens test. Nëse pas kësaj shkruani përsëri komandën $ kubens, mund të shihni se tani është ndriçuar një hapësirë e re aktive e emrit - test.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Kjo do të thotë se nuk keni nevojë për një flamur emri hapësire për të parë pod në hapësirën e emrit test.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Kështu hapësirat e emrave janë të fshehura nga njëra-tjetra, por nuk janë të izoluar nga njëra-tjetra. Një shërbim nga një hapësirë emri mund të komunikojë lehtësisht me një shërbim në një hapësirë tjetër emri, gjë që shpesh është shumë e dobishme. Mundësia e komunikimit midis hapësirave të ndryshme emrash do të thotë që shërbimi i zhvilluesve tuaj mund të interaktojë me shërbimin e një ekipi tjetër zhvilluesish në një hapësirë emri tjetër.

Zakonisht, kur aplikacioni juaj dëshiron të ketë akses në një shërbim Kubernetes, përdorni shërbimin e integruar për zbulimin e DNS dhe thjesht i thoni aplikacionit tuaj emrin e shërbimit. Megjithatë, në këtë rast, mund të krijoni një shërbim me të njëjtin emër në disa hapësira emrash, gjë që është e papranueshme.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Fatmirësisht, kjo është lehtësisht e mundur për t'u anashkaluar duke përdorur formën e zgjeruar të adresës DNS. Shërbimet në Kubernetes ekspozojnë pikët e tyre të përfundimit duke përdorur një model të përbashkët DNS. Kjo duket më pak si kjo:

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Si rregull, ju thjesht keni nevojë për emrin e shërbimit, dhe DNS automatikisht do të përcaktojë adresën e plotë.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Megjithatë, nëse keni nevojë për të hyrë në një shërbim në një hapësirë tjetër emri, thjesht përdorni emrin e shërbimit plus emrin e hapësirës emri:

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Për shembull, nëse dëshironit të lidheni me bazën e të dhënave të shërbimit në hapësirën e emrit test, mund të përdorni adresën database.test.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Nëse dëshironit të lidheni me bazën e të dhënave të shërbimit në hapësirën e emrit prod, përdorni database.prod.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Nëse vërtet dëshiron të izolohesh dhe të kufizosh aksesin në hapësirën e emrit, Kubernetes e lejon këtë me anë të politikave rrjetesh Kubernetes Network Policies. Për këtë do të flas në serinë e ardhshme.

MĂ« pyetet shpesh se sa hapĂ«sira emrash duhet tĂ« krijohen dhe pĂ«r çfarĂ« qĂ«llimesh? ÇfarĂ« Ă«shtĂ« njĂ« fragment tĂ« dhĂ«nash i menaxhuar?

Nëse krijoni shumë hapësira emrash, ato do t'ju pengojnë. Nëse ndonjëra është tepër e vogël, do të humbni të gjitha përfitimet e këtij zgjidhjeje. Mendoj se ka katër faza kryesore që kalon çdo kompani gjatë procesit të krijimit të strukturës së saj organizative. Në varësi të fazës së zhvillimit, në të cilën ndodhet projekti ose kompania juaj, mund të adoptoni strategjinë e duhur për krijimin e hapësirave emrash.

Imaginoni qĂ« jeni pjesĂ« e njĂ« ekipi tĂ« vogĂ«l qĂ« punon nĂ« zhvillimin e 5-10 mikroshĂ«rbimeve dhe ju lehtĂ« mund tĂ« mbledhni tĂ« gjithĂ« zhvilluesit nĂ« njĂ« dhomĂ«. NĂ« kĂ«tĂ« situatĂ«, ka kuptim tĂ« lanconi tĂ« gjitha shĂ«rbimet prodhuese nĂ« hapĂ«sirĂ«n emĂ«rore default. Sigurisht, pĂ«r mĂ« shumĂ« hapĂ«sirĂ« veprimi, mund tĂ« pĂ«rdorni 2 hapĂ«sira emrash — njĂ« pĂ«r prodhimin dhe njĂ« pĂ«r zhvillimin. Dhe shumĂ« gjasĂ«, jeni duke testuar zhvillimin tuaj nĂ« kompjuterin lokal me ndihmĂ«n e diçkaje si Minikube.

Supozoni se kushtet kanë ndryshuar dhe tani keni një ekip në rritje të shpejtë që po punon njëkohësisht mbi më shumë se 10 mikroshërbime. Arrin një moment kur duhet të përdorni disa grupe klasteresh ose hapësirash emrash, ndaras për prodhimin dhe zhvillimin. Mund ta ndani ekipin në disa nën-grupe në mënyrë që secila të ketë mikroshërbimet e veta dhe secila nga këto ekipe të mund të zgjedhë hapësirën e saj emërore për të lehtësuar procesin e menaxhimit të zhvillimit dhe lëshimit të software-it.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Ndërsa çdo anëtar i ekipit fiton një kuptim se si funksionon sistemi në tërësi, koordinimi i çdo ndryshimi me të gjithë zhvilluesit e tjerë bëhet gjithnjë e më i vështirë. Tentimi për të drejtuar një stak të plotë në kompjuterin tuaj lokal bëhet çdo ditë më i komplikuar.

Në kompanitë e mëdha, zhvilluesit në përgjithësi nuk dinë se kush konkretisht po punon mbi çfarë. Ekipet komunikojnë përmes kontratave të shërbimeve ose përdorin teknologjinë Service mesh, e cila shton një nivel abstraksioni mbi rrjetin, siç është mjeti i konfigurimit Istio. Përpjekja për të nisur të gjithë stek-un lokalisht është për njëkohësisht e pamundur. Unë e rekomandoj fuqishëm përdorimin e një platforme të dërgesës së vazhdueshme (CD) si Spinnaker në Kubernetes. Prandaj, vjen një moment kur secilit ekip patjetër i nevojitet hapësira e vet emërore. Secili ekip madje mund të zgjedhë disa hapësira emërore për mjedisin dev dhe për mjedisin prod.

Më në fund, ekzistojnë kompani të mëdha sipërmarrëse ku një grup zhvilluesish nuk di as për ekzistencën e grupeve të tjera. Një kompani e tillë mund ta angazhojë në tërësi zhvillues të jashtëm që komunikojnë përmes API-ve të dokumentuara mirë. Në secilën nga këto grupe ka disa ekipe dhe disa mikroshërbime. Në këtë rast, është e nevojshme të përdoren të gjitha mjetet për të cilat fola më parë.

Praktikat më të mira Kubernetes. Organizimi i Kubernetes me hapësira emri

Programuesit nuk duhet të publikojnë shërbimet manualisht dhe nuk duhet të kenë akses në hapësirat emërore që nuk i përkasin. Në këtë fazë, është e arsyeshme të kemi disa klasterë për të zvogëluar "rrezikun e shpërthimit" të aplikacioneve të konfigurura keq, për të thjeshtuar proceset e faturimit dhe menaxhimin e burimeve.

Prandaj, përdorimi i duhur i hapësirave emërore nga organizata juaj e bën Kubernetes më të menaxhueshëm, të kontrollueshëm, të sigurt dhe fleksibël.

Praktikat më të mira të Kubernetes. Verifikimi i jetës së Kubernetes me ndihmën e testeve Readiness dhe Liveness

Luaj videon

Pak reklamĂ« 🙂

Faleminderit që po qëndroni me ne. Ju pëlqen artikujt tanë? Doni të shihni më shumë materiale interesante? Na mbështesni duke bërë një porosi ose duke rekomanduar tek miqtë tuaj, VPS cloud për zhvillues nga $4.99, një analog unik i serverëve entry-level që e kemi shpikur për Ju: E gjithë e vërteta në lidhje me VPS (KVM) E5-2697 v3 (6 Bërthama) 10GB DDR4 480GB SSD 1Gbps nga $19 ose si ta ndajmë saktësisht serverin? (opcionet me RAID1 dhe RAID10, deri në 24 bërthama dhe deri në 40GB DDR4 janë të disponueshme).

Dell R730xd dyfish mĂ« i lirĂ« nĂ« qendĂ«r tĂ« tĂ« dhĂ«nave Equinix Tier IV nĂ« Amsterdam? VetĂ«m te ne 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB nga $199 nĂ« HolandĂ«! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — nga $99! Lexoni rreth Si tĂ« ndĂ«rtoni njĂ« infrastrukturĂ« tĂ« klasĂ«s korporative me pĂ«rdorimin e serverĂ«ve Dell R730xd E5-2650 v4 me çmim 9000 euro pĂ«r pak para?

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster