L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

L-aħjar prattiki ta' Kubernetes. Noħolqu kontenituri żgħar

Hekk kif tibda toħloq aktar u aktar servizzi Kubernetes, il-kompiti li inizjalment huma sempliċi jibdew isiru aktar kumplessi. Pereżempju, timijiet ta' żvilupp ma jistgħux joħolqu servizzi jew skjeramenti taħt l-istess isem. Jekk għandek eluf ta 'miżwed, sempliċement elenkarhom se tieħu ħafna ħin, aħseb u ara li timmaniġġjahom kif suppost. U dan huwa biss il-ponta tal-iceberg.

Ejja nħarsu lejn kif l-ispazju tal-isem jagħmilha aktar faċli biex timmaniġġja r-riżorsi Kubernetes. Allura x'inhu namespace? L-ispazju tal-isem jista' jitqies bħala cluster virtwali fi ħdan il-cluster Kubernetes tiegħek. Jista' jkollok spazji tal-isem multipli iżolati minn xulxin fi ħdan cluster wieħed ta' Kubernetes. Jistgħu verament jgħinuk u lit-timijiet tiegħek bl-organizzazzjoni, is-sigurtà, u anke l-prestazzjoni tas-sistema.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Fuq il-biċċa l-kbira tad-distribuzzjonijiet Kubernetes, il-cluster joħroġ mill-kaxxa bi spazju tal-isem imsejjaħ "default". Fil-fatt hemm tliet namespaces li Kubernetes jittratta magħhom: default, kube-system, u kube-public. Bħalissa, Kube-public ma jintużax ħafna drabi.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Li tħalli l-ispazju tal-isem kube waħdu hija idea tajba, speċjalment fuq sistema ġestita bħal Google Kubernetes Engine. Juża l-ispazju tal-isem "default" bħala l-post fejn jinħolqu s-servizzi u l-applikazzjonijiet tiegħek. M'hemm assolutament xejn speċjali dwarha, ħlief li Kubernetes huwa kkonfigurat barra mill-kaxxa biex jużah, u ma tistax tneħħiha. Dan huwa tajjeb ħafna biex tibda u sistemi ta 'prestazzjoni baxxa, iżda ma nirrakkomandax li tuża l-ispazju tal-isem default fuq sistemi prod kbar. F'dan l-aħħar każ, tim ta 'żvilupp wieħed jista' faċilment jikteb mill-ġdid il-kodiċi ta 'xi ħadd ieħor u jkisser ix-xogħol ta' tim ieħor mingħajr ma jirrealizzah.

Għalhekk, għandek toħloq spazji tal-isem multipli u tużahom biex tissegmenta s-servizzi tiegħek f'unitajiet maniġġabbli. A namespace jista 'jinħoloq bi kmand wieħed. Jekk trid toħloq test tal-ismijiet tal-isem, imbagħad uża l-kmand $ kubectl create test tal-ispazju tal-isem jew sempliċement toħloq fajl YAML u użah bħal kull riżors Kubernetes ieħor.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Tista' tara l-ispazji tal-isem kollha billi tuża l-kmand $ kubectl get namespace.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Ladarba dan ikun lest, tara tliet namespaces inkorporati u namespace ġdid imsejjaħ "test". Ejja nħarsu lejn fajl YAML sempliċi biex toħloq pod. Tinduna li m'hemm l-ebda referenza ta 'namespace.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Jekk tuża kubectl biex tmexxi dan il-fajl, se toħloq il-modulu mypod fl-ispazju tal-isem attiv bħalissa. Dan se jkun l-ispazju tal-isem default sakemm tibdelha. Hemm 2 modi kif tgħid lil Kubernetes f'liema namespace trid toħloq ir-riżorsa tiegħek. L-ewwel mod huwa li tuża bandiera tal-ispazju tal-isem meta toħloq riżors.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

It-tieni mod huwa li tispeċifika l-ispazju tal-isem fid-dikjarazzjoni YAML.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Jekk tispeċifika spazju tal-isem f'YAML, ir-riżorsa dejjem tinħoloq f'dak l-ispazju tal-isem. Jekk tipprova tuża spazju tal-isem differenti waqt li tuża l-bandiera tal-ispazju tal-isem, il-kmand ifalli. Issa jekk tipprova ssib il-pod tiegħek, ma tkunx tista' tagħmel dan.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Dan iseħħ minħabba li l-kmandi kollha huma eżegwiti barra l-ispazju tal-isem attiv bħalissa. Biex issib il-pod tiegħek, trid tuża bandiera tal-ispazju tal-isem, iżda dan isir boring malajr, speċjalment jekk int żviluppatur fuq tim li juża l-ispazju tal-isem tiegħu stess u ma jridx juża dik il-bandiera għal kull kmand wieħed. Ejja naraw kif nistgħu nirranġaw dan.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Barra mill-kaxxa, l-ispazju tal-isem attiv tiegħek jissejjaħ default. Jekk ma tispeċifikax spazju tal-isem fir-riżorsa YAML, allura l-kmandi kollha ta 'Kubernetes se jużaw dan l-ispazju tal-isem default attiv. Sfortunatament, tipprova timmaniġġja l-ispazju tal-isem attiv bl-użu ta 'kubectl tista' tfalli. Madankollu, hemm għodda tajba ħafna msejħa Kubens li tagħmel dan il-proċess ħafna aktar faċli. Meta tmexxi l-kmand kubens, tara l-ispazji tal-isem kollha bl-ispazju tal-isem attiv enfasizzat.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Biex taqleb l-ispazju tal-isem attiv għall-ispazju tal-isem tat-test, sempliċement tħaddem il-kmand tat-test $kubens. Jekk imbagħad terġa' tħaddem il-kmand $kubens, tara li issa huwa allokat namespace attiv ġdid - test.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Dan ifisser li m'għandekx bżonn il-bandiera tal-ispazju tal-isem biex tara l-pod fl-ispazju tal-isem tat-test.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

B'dan il-mod l-ispazji tal-isem huma moħbija minn xulxin, iżda mhux iżolati minn xulxin. Servizz fi namespace wieħed jista’ jikkomunika pjuttost faċilment ma’ servizz fi namespace ieħor, li ħafna drabi jkun utli ħafna. Il-kapaċità li tikkomunika tul spazji tal-isem differenti tfisser li s-servizz tal-iżviluppaturi tiegħek jista 'jikkomunika ma' servizz ta' tim ta 'dev ieħor fi spazju tal-isem differenti.

Tipikament, meta l-applikazzjoni tiegħek tkun trid taċċessa servizz Kubernetes, tuża s-servizz ta’ skoperta DNS integrat u sempliċement tagħti lill-applikazzjoni tiegħek l-isem tas-servizz. Madankollu, billi tagħmel hekk, tista 'toħloq servizz taħt l-istess isem f'bosta namespaces, li mhux aċċettabbli.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Fortunatament, dan huwa faċli biex tiċċaqlaq billi tuża l-forma estiża tal-indirizz DNS. Is-servizzi f'Kubernetes jesponu l-endpoints tagħhom billi jużaw mudell DNS komuni. Jidher xi ħaġa bħal din:

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Tipikament, għandek bżonn biss l-isem tas-servizz u d-DNS jiddetermina awtomatikament l-indirizz sħiħ.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Madankollu, jekk għandek bżonn taċċessa servizz fi spazju tal-isem differenti, sempliċement uża l-isem tas-servizz flimkien mal-isem tal-ispazju tal-isem:

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Pereżempju, jekk trid tikkonnettja ma 'database tas-servizz fi spazju tal-isem tat-test, tista' tuża d-database tal-indirizzi database.test

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Jekk trid tikkonnettja mad-database tas-servizz fl-ispazju tal-isem tal-prod, tuża database.prod.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Jekk verament trid tiżola u tirrestrinġi l-aċċess għall-ispazju tal-isem, Kubernetes jippermettilek tagħmel dan billi tuża l-Politiki tan-Netwerk ta 'Kubernetes. Nitkellem dwar dan fl-episodju li jmiss.

Spiss nistaqsi l-mistoqsija, kemm għandi noħloq namespaces u għal liema skop? X'inhi biċċa dejta ġestita?

Jekk toħloq wisq namespaces, dawn se jfixklulek. Jekk ikun hemm ftit wisq minnhom, titlef il-benefiċċji kollha ta 'soluzzjoni bħal din. Naħseb li hemm erba' stadji ewlenin li kull kumpanija tgħaddi minnhom meta toħloq l-istruttura organizzattiva tagħha. Skont l-istadju tal-iżvilupp tal-proġett jew il-kumpanija tiegħek, tista' tkun trid tadotta strateġija xierqa tal-ispazju tal-isem.

Immaġina li inti parti minn tim żgħir li qed jaħdem fuq l-iżvilupp ta 'mikroservizzi 5-10 u faċilment tista' tiġbor l-iżviluppaturi kollha f'kamra waħda. F'din is-sitwazzjoni, jagħmel sens li tħaddem is-servizzi prod kollha fl-ispazju tal-isem default. Naturalment, għal aktar flessibilità, tista' tuża 2 namespaces - separatament għal prod u dev. U x'aktarx, tittestja l-iżvilupp tiegħek fuq il-kompjuter lokali tiegħek billi tuża xi ħaġa bħal Minikube.

Ejja ngħidu li l-affarijiet jinbidlu u issa għandek tim li qed jikber malajr li jaħdem fuq aktar minn 10 mikroservizzi kull darba. Jasal żmien meta jkun meħtieġ li jintużaw diversi clusters jew namespaces, separatament għal prod u dev. Tista' tkisser it-tim f'diversi sub-timijiet sabiex kull wieħed minnhom ikollu l-mikroservizzi tiegħu u kull wieħed minn dawn it-timijiet jista' jagħżel l-ispazju tal-isem tiegħu biex jiffaċilita l-proċess tal-ġestjoni tal-iżvilupp u r-rilaxx tas-softwer.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Hekk kif kull membru tat-tim jikseb għarfien dwar kif taħdem is-sistema kollha kemm hi, isir aktar u aktar diffiċli li tikkoordina kull bidla mal-iżviluppaturi l-oħra kollha. Jippruvaw spin up munzell sħiħ fuq il-magna lokali tiegħek qed issir aktar diffiċli kuljum.

F'kumpaniji kbar, l-iżviluppaturi ġeneralment ma jafux min qed jaħdem eżattament fuq xiex. It-timijiet jikkomunikaw bl-użu ta’ kuntratti ta’ servizz jew jużaw it-teknoloġija tal-malji tas-servizz, li żżid saff ta’ astrazzjoni fuq in-netwerk, bħall-għodda ta’ konfigurazzjoni Istio. Li tipprova tmexxi munzell kollu lokalment sempliċement mhux possibbli.Nirrakkomanda ħafna li tuża pjattaforma ta' kunsinna kontinwa (CD) bħal Spinnaker fuq Kubernetes. Allura, jasal punt fejn kull kmand definittivament jeħtieġ l-ispazju tal-isem tiegħu stess. Kull tim jista 'anki jagħżel spazji tal-isem multipli għall-ambjent dev u l-ambjent prod.

Fl-aħħarnett, hemm kumpaniji intraprenditorjali kbar li fihom grupp wieħed ta 'żviluppaturi lanqas biss jaf dwar l-eżistenza ta' gruppi oħra. Kumpanija bħal din tista' ġeneralment timpjega żviluppaturi ta' partijiet terzi li jinteraġixxu magħha permezz ta' APIs dokumentati tajjeb. Kull grupp bħal dan fih diversi timijiet u diversi mikroservizzi. F'dan il-każ, għandek bżonn tuża l-għodod kollha li tkellimt dwarhom qabel.

L-aħjar prattiki ta' Kubernetes. Organizzazzjoni ta' Kubernetes bi namespace

Il-programmaturi m'għandhomx jużaw is-servizzi manwalment u m'għandhomx ikollhom aċċess għall-ispazji tal-isem li ma jikkonċernawhomx. F'dan l-istadju, huwa rakkomandabbli li jkun hemm diversi clusters biex jitnaqqas ir-"raġġ tal-blast" ta 'applikazzjonijiet konfigurati ħażin, biex jissimplifikaw il-proċessi tal-kontijiet u l-ġestjoni tar-riżorsi.

Għalhekk, l-użu xieraq tal-ispazji tal-isem mill-organizzazzjoni tiegħek jippermettilek li tagħmel Kubernetes aktar maniġġabbli, kontrollabbli, sigur u flessibbli.

L-aħjar prattiki ta' Kubernetes. Il-validazzjoni ta' Kubernetes Liveness b'Testijiet ta' Prontezza u Liveness

Xi reklami 🙂

Grazzi talli bqajt magħna. Tħobb l-artikoli tagħna? Trid tara aktar kontenut interessanti? Appoġġuna billi tagħmel ordni jew tirrakkomanda lill-ħbieb, Cloud VPS għall-iżviluppaturi minn $4.99, analogu uniku ta 'servers ta' livell ta 'dħul, li ġie ivvintat minna għalik: Il-verità kollha dwar VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps minn $19 jew kif taqsam server? (disponibbli b'RAID1 u RAID10, sa 24 core u sa 40GB DDR4).

Dell R730xd 2 darbiet orħos fiċ-ċentru tad-dejta Equinix Tier IV f'Amsterdam? Hawn biss 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV minn $199 fl-Olanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - minn $99! Aqra dwar Kif tibni l-infrastruttura corp. klassi bl-użu ta 'servers Dell R730xd E5-2650 v4 li jiswew 9000 ewro għal ċenteżmu?

Sors: www.habr.com

Żid kumment