Samtang nagsugod ka sa paghimo og dugang ug dugang nga mga serbisyo sa Kubernetes, ang mga buluhaton nga sa sinugdan yano magsugod nga mahimong mas komplikado. Pananglitan, ang mga development team dili makahimo og mga serbisyo o deployment ubos sa samang ngalan. Kung ikaw adunay liboan ka mga pod, ang paglista lang niini magkinahanglan daghang oras, labi na ang husto nga pagdumala niini. Ug kini mao lamang ang tumoy sa iceberg.
Atong tan-awon kon sa unsang paagi ang namespace nagpasayon sa pagdumala sa mga kapanguhaan sa Kubernetes. Busa unsa ang usa ka namespace? Ang namespace mahimong isipon isip usa ka virtual cluster sulod sa imong Kubernetes cluster. Mahimo kang adunay daghang mga namespace nga nahimulag gikan sa usag usa sulod sa usa ka Kubernetes cluster. Makatabang gyud sila kanimo ug sa imong mga team sa organisasyon, seguridad, ug bisan sa performance sa sistema.

Sa kadaghanan sa mga distribusyon sa Kubernetes, ang cluster migawas sa kahon nga adunay namespace nga gitawag og "default". Adunay tinuod nga tulo ka namespaces nga giatubang sa Kubernetes: default, kube-system, ug kube-public. Sa pagkakaron, ang Kube-publiko dili kaayo kanunay gigamit.

Ang pagbiya sa kube namespace nga nag-inusara usa ka maayong ideya, labi na sa usa ka gidumala nga sistema sama sa Google Kubernetes Engine. Gigamit niini ang "default" nga namespace isip lugar diin gihimo ang imong mga serbisyo ug aplikasyon. Wala’y hingpit nga espesyal bahin niini, gawas nga ang Kubernetes gi-configure sa gawas sa kahon aron magamit kini, ug dili nimo kini makuha. Maayo kini alang sa pagsugod ug ubos nga mga sistema sa pasundayag, apan dili ko irekomendar ang paggamit sa default nga namespace sa dagkong prod system. Sa ulahing kaso, ang usa ka development team dali nga makasulat pag-usab sa code sa laing tawo ug makaguba sa trabaho sa laing team nga wala gani makaamgo niini.
Busa, kinahanglan nga maghimo ka daghang mga namespace ug gamiton kini aron mabahin ang imong mga serbisyo sa madumala nga mga yunit. Ang usa ka namespace mahimong mabuhat gamit ang usa ka mando. Kung gusto nimong maghimo ug namespace nga gihinganlan og pagsulay, unya gamita ang command $ kubectl create namespace test o paghimo lang og YAML file ug gamita kini sama sa ubang mga kapanguhaan sa Kubernetes.

Mahimo nimong tan-awon ang tanang namespace gamit ang $ kubectl get namespace command.

Kung nahuman na kini, makita nimo ang tulo nga mga built-in nga namespace ug usa ka bag-ong namespace nga gitawag nga "pagsulay". Atong tan-awon ang usa ka yano nga YAML file aron makahimo og pod. Mamatikdan nimo nga wala’y paghisgot sa namespace.

Kung mogamit ka og kubectl sa pagpadagan niini nga payl, kini maghimo sa mypod module sa kasamtangan nga aktibo nga namespace. Kini ang default nga namespace hangtod nga imong usbon kini. Adunay 2 ka paagi aron isulti sa Kubernetes kung unsang namespace ang gusto nimo nga himuon ang imong kapanguhaan. Ang una nga paagi mao ang paggamit sa bandila sa namespace kung maghimo usa ka kapanguhaan.

Ang ikaduha nga paagi mao ang pagtino sa namespace sa deklarasyon sa YAML.

Kung imong gipiho ang usa ka namespace sa YAML, ang kapanguhaan kanunay nga himuon sa kana nga namespace. Kon mosulay ka sa paggamit sa lain nga namespace samtang naggamit sa namespace nga bandila, ang sugo mapakyas. Karon kung sulayan nimo pagpangita ang imong pod, dili nimo kini mahimo.

Kini mahitabo tungod kay ang tanan nga mga sugo gipatuman sa gawas sa kasamtangan nga aktibo nga namespace. Aron makit-an ang imong pod, kinahanglan nimo nga mogamit usa ka namespace nga bandila, apan kini dali nga makalaay, labi na kung ikaw usa ka developer sa usa ka team nga naggamit sa kaugalingon nga namespace ug dili gusto nga gamiton kana nga bandila alang sa matag usa nga command. Atong tan-awon kon unsaon nato pag-ayo kini.

Gawas sa kahon, ang imong aktibo nga namespace gitawag nga default. Kung wala ka mag-specify og namespace sa resource YAML, nan ang tanang Kubernetes commands mogamit niining aktibong default namespace. Ikasubo, ang pagsulay sa pagdumala sa aktibo nga namespace gamit ang kubectl mahimong mapakyas. Bisan pa, adunay usa ka maayo kaayo nga himan nga gitawag Kubens nga naghimo niini nga proseso nga labi kadali. Kung gipadagan nimo ang kubens command, imong makita ang tanan nga mga namespace nga adunay gipasiugda nga aktibo nga namespace.

Aron ibalhin ang aktibong namespace ngadto sa test namespace, ipadagan mo lang ang $kubens test command. Kung imong ipadagan pag-usab ang $kubens command, imong makita nga usa ka bag-ong aktibo nga namespace ang gigahin karon - pagsulay.

Kini nagpasabot nga dili nimo kinahanglan ang namespace flag aron makita ang pod sa test namespace.

Niining paagiha ang mga namespace gitago gikan sa usag usa, apan dili nahimulag sa usag usa. Ang usa ka serbisyo sa usa ka namespace dali nga makigkomunikar sa usa ka serbisyo sa lain nga namespace, nga sagad mapuslanon kaayo. Ang abilidad sa pagkomunikar sa lain-laing namespaces nagpasabot nga ang serbisyo sa imong developers makakomunikar sa serbisyo sa laing dev team sa lain nga namespace.
Kasagaran, kung ang imong aplikasyon gusto nga maka-access sa usa ka serbisyo sa Kubernetes, imong gamiton ang built-in nga DNS discovery nga serbisyo ug ihatag lang sa imong aplikasyon ang ngalan sa serbisyo. Bisan pa, pinaagi sa pagbuhat sa ingon, mahimo ka maghimo usa ka serbisyo sa ilawom sa parehas nga ngalan sa daghang mga namespace, nga dili madawat.

Sa swerte, kini dali nga malibot pinaagi sa paggamit sa gipalapdan nga porma sa DNS address. Ang mga serbisyo sa Kubernetes nagbutyag sa ilang mga endpoint gamit ang komon nga DNS template. Ingon niini ang hitsura:

Kasagaran, kinahanglan nimo ang ngalan sa serbisyo ug awtomatiko nga mahibal-an sa DNS ang tibuuk nga adres.

Bisan pa, kung kinahanglan nimo nga ma-access ang usa ka serbisyo sa lahi nga namespace, gamita lang ang ngalan sa serbisyo ug ang ngalan sa namespace:
![]()
Pananglitan, kung gusto nimo magkonektar sa usa ka database sa serbisyo sa usa ka namespace sa pagsulay, mahimo nimong gamiton ang database database.test

Kung gusto nimo nga makonektar sa database sa serbisyo sa prod namespace, gamita nimo ang database.prod.

Kung gusto nimo nga ibulag ug higpitan ang pag-access sa namespace, gitugotan ka sa Kubernetes nga buhaton kini gamit ang Mga Patakaran sa Kubernetes Network. Hisgutan ko kini sa sunod nga yugto.
Kanunay kong gipangutana sa pangutana, pila ka mga namespace ang akong buhaton ug alang sa unsa nga katuyoan? Unsa ang usa ka gidumala nga piraso sa datos?
Kung maghimo ka ug daghang mga namespaces, makabalda ra sila sa imong agianan. Kung gamay ra kaayo sila, mawala nimo ang tanan nga mga benepisyo sa ingon nga solusyon. Sa akong hunahuna adunay upat ka panguna nga yugto nga giagian sa matag kompanya sa paghimo sa istruktura sa organisasyon. Depende sa yugto sa kalamboan nga naa sa imong proyekto o kompanya, mahimo nimong gamiton ang angay nga diskarte sa namespace.
Hunahunaa nga ikaw usa ka bahin sa usa ka gamay nga team nga nagtrabaho sa pagpalambo sa 5-10 nga microservice ug dali nimo matigum ang tanan nga mga developer sa usa ka kwarto. Niini nga sitwasyon, makatarunganon nga ipadagan ang tanan nga mga serbisyo sa prod sa default nga namespace. Siyempre, alang sa dugang nga pagka-flexible, mahimo nimong gamiton ang 2 namespaces - gilain alang sa prod ug dev. Ug lagmit, gisulayan nimo ang imong pag-uswag sa imong lokal nga kompyuter gamit ang usa ka butang sama sa Minikube.
Ingnon ta nga ang mga butang mausab ug ikaw karon adunay usa ka paspas nga nagtubo nga team nga nagtrabaho sa labaw sa 10 ka microservice sa usa ka higayon. Adunay moabut nga panahon nga gikinahanglan ang paggamit sa daghang mga kumpol o mga namespace, nga gilain alang sa prod ug dev. Mahimo nimong bungkagon ang team ngadto sa pipila ka mga sub-team aron ang matag usa kanila adunay kaugalingong microservices ug ang matag usa niini nga mga team makapili sa kaugalingong namespace aron mapadali ang proseso sa pagdumala sa software development ug release.

Samtang ang matag miyembro sa team nakakuha og panabut sa kung giunsa ang sistema sa kinatibuk-an molihok, labi nga labi ka lisud ang pag-coordinate sa matag pagbag-o sa tanan nga uban pang mga developer. Ang pagsulay sa pag-spin up sa tibuok nga stack sa imong lokal nga makina nagkalisud kada adlaw.
Sa dagkong mga kompanya, ang mga developer sa kasagaran wala mahibal-an kung kinsa gyud ang nagtrabaho kung unsa. Ang mga team nakigkomunikar gamit ang mga kontrata sa serbisyo o naggamit sa teknolohiya sa mesh sa serbisyo, nga nagdugang usa ka layer sa abstraction sa network, sama sa tool sa pag-configure sa Istio. Ang pagsulay sa pagpadagan sa usa ka tibuok stack sa lokal dili mahimo. Girekomenda ko ang paggamit sa usa ka padayon nga pagpadala (CD) nga plataporma sama sa Spinnaker sa Kubernetes. Mao nga, adunay moabut nga punto diin ang matag mando siguradong nanginahanglan kaugalingon nga namespace. Ang matag team makapili pa gani og daghang mga namespaces alang sa dev environment ug sa prod environment.
Sa katapusan, adunay mga dagkong kompanya sa negosyo diin ang usa ka grupo sa mga developer wala gani nahibal-an bahin sa paglungtad sa ubang mga grupo. Ang ingon nga kompanya mahimong kasagarang mag-hire og mga third-party nga developer nga makig-uban niini pinaagi sa maayo nga dokumentado nga mga API. Ang matag grupo adunay daghang mga team ug daghang mga microservice. Sa kini nga kaso, kinahanglan nimo nga gamiton ang tanan nga mga himan nga akong gihisgutan kaniadto.

Ang mga programmer dili kinahanglan nga mano-mano nga mag-deploy sa mga serbisyo ug dili kinahanglan nga adunay access sa mga namespaces nga wala’y labot kanila. Sa niini nga yugto, kini mao ang advisable nga adunay pipila ka mga clusters sa pagpakunhod sa "blast radius" sa dili maayo nga configured aplikasyon, sa pagpayano sa mga proseso sa billing ug resource management.
Busa, ang hustong paggamit sa mga namespaces sa imong organisasyon nagtugot kanimo sa paghimo sa Kubernetes nga mas madumala, makontrol, luwas, ug flexible.

Pipila ka mga ad 🙂
Salamat sa pagpabilin kanamo. Ganahan ka ba sa among mga artikulo? Gusto nga makakita og mas makapaikag nga sulod? Suportahi kami pinaagi sa pag-order o pagrekomenda sa mga higala, , usa ka talagsaon nga analogue sa mga entry-level server, nga giimbento namo alang kanimo: (anaa sa RAID1 ug RAID10, hangtod sa 24 ka mga core ug hangtod sa 40GB DDR4).
Dell R730xd 2 ka beses nga mas barato sa Equinix Tier IV data center sa Amsterdam? Dinhi lang sa Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - gikan sa $99! Basaha ang mahitungod sa
Source: www.habr.com
