Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Mbinu bora za Kubernetes. Kutengeneza vyombo vidogo

Unapoanza kuunda huduma zaidi na zaidi za Kubernetes, kazi ambazo mwanzoni ni rahisi huanza kuwa ngumu zaidi. Kwa mfano, timu za maendeleo haziwezi kuunda huduma au usambazaji chini ya jina moja. Ikiwa una maelfu ya maganda, kuorodhesha tu kutachukua muda mwingi, achilia mbali kuyasimamia ipasavyo. Na hii ni ncha tu ya barafu.

Hebu tuangalie jinsi nafasi ya majina inavyorahisisha kudhibiti rasilimali za Kubernetes. Kwa hivyo nafasi ya majina ni nini? Nafasi ya majina inaweza kuzingatiwa kama nguzo pepe ndani ya nguzo yako ya Kubernetes. Unaweza kuwa na nafasi nyingi za majina zilizotengwa kutoka kwa kila mmoja ndani ya nguzo moja ya Kubernetes. Wanaweza kukusaidia wewe na timu zako na shirika, usalama na hata utendakazi wa mfumo.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Kwenye usambazaji mwingi wa Kubernetes, nguzo hutoka kwenye kisanduku na nafasi ya jina inayoitwa "chaguo-msingi". Kwa kweli kuna nafasi tatu za majina ambazo Kubernetes inashughulikia: chaguo-msingi, mfumo wa kube, na kube-public. Hivi sasa, Kube-public haitumiwi mara kwa mara.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Kuacha nafasi ya majina ya kube peke yake ni wazo nzuri, haswa kwenye mfumo unaodhibitiwa kama Injini ya Google Kubernetes. Inatumia nafasi ya majina "chaguo-msingi" kama mahali ambapo huduma na programu zako zinaundwa. Hakuna kitu maalum kuihusu, isipokuwa kwamba Kubernetes imesanidiwa nje ya kisanduku kuitumia, na huwezi kuiondoa. Hii ni nzuri kwa kuanza na mifumo ya chini ya utendaji, lakini singependekeza kutumia nafasi ya majina kwenye mifumo mikubwa ya uzalishaji. Katika hali ya mwisho, timu moja ya ukuzaji inaweza kuandika upya msimbo wa mtu mwingine kwa urahisi na kuvunja kazi ya timu nyingine bila hata kutambua.

Kwa hivyo, unapaswa kuunda nafasi nyingi za majina na uzitumie kugawa huduma zako katika vitengo vinavyoweza kudhibitiwa. Nafasi ya majina inaweza kuundwa kwa amri moja. Ikiwa unataka kuunda jaribio la nafasi ya majina, basi tumia amri $ kubectl unda jaribio la nafasi ya majina au uunde faili ya YAML na uitumie kama rasilimali nyingine yoyote ya Kubernetes.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Unaweza kutazama nafasi zote za majina kwa kutumia $ kubectl get namespace amri.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Ikikamilika, utaona nafasi tatu za majina zilizojengwa ndani na nafasi mpya ya majina inayoitwa "mtihani". Hebu tuangalie faili rahisi ya YAML ili kuunda ganda. Utagundua kuwa hakuna kutajwa kwa nafasi ya majina.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Ukitumia kubectl kuendesha faili hii, itaunda moduli ya mypod katika nafasi ya majina inayotumika kwa sasa. Hili litakuwa nafasi ya majina chaguomsingi hadi uibadilishe. Kuna njia 2 za kumwambia Kubernetes ni nafasi gani ya majina unataka kuunda rasilimali yako. Njia ya kwanza ni kutumia bendera ya nafasi ya majina wakati wa kuunda rasilimali.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Njia ya pili ni kubainisha nafasi ya majina katika tamko la YAML.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Ukibainisha nafasi ya majina katika YAML, rasilimali itaundwa kila mara katika nafasi hiyo ya majina. Ukijaribu kutumia nafasi tofauti ya majina huku ukitumia bendera ya nafasi ya majina, amri itashindwa. Sasa ukijaribu kutafuta ganda lako, hutaweza kufanya hivyo.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Hii hutokea kwa sababu amri zote zinatekelezwa nje ya nafasi ya majina inayotumika sasa. Ili kupata ganda lako, unahitaji kutumia bendera ya nafasi ya majina, lakini hii huchosha haraka, haswa ikiwa wewe ni msanidi programu kwenye timu inayotumia nafasi yake ya majina na haitaki kutumia bendera hiyo kwa kila amri moja. Hebu tuone jinsi tunaweza kurekebisha hili.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Nje ya kisanduku, nafasi yako ya majina inayotumika inaitwa chaguo-msingi. Ikiwa hutabainisha nafasi ya majina katika rasilimali ya YAML, basi amri zote za Kubernetes zitatumia nafasi hii chaguomsingi inayotumika. Kwa bahati mbaya, kujaribu kudhibiti nafasi ya majina inayotumika kwa kutumia kubectl kunaweza kushindwa. Hata hivyo, kuna chombo kizuri sana kinachoitwa Kubens ambacho hurahisisha mchakato huu. Unapoendesha amri ya kubens, unaona nafasi zote za majina zilizo na nafasi ya jina inayotumika imeangaziwa.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Ili kubadilisha nafasi ya jina inayotumika kuwa nafasi ya jina ya jaribio, unaendesha tu amri ya jaribio la $kubens. Ikiwa utaendesha amri ya $kubens tena, utaona kuwa nafasi mpya ya jina sasa imetengwa - test.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Hii inamaanisha kuwa hauitaji bendera ya nafasi ya majina ili kuona ganda kwenye nafasi ya majina ya majaribio.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Kwa njia hii nafasi za majina zimefichwa kutoka kwa kila mmoja, lakini hazijatengwa kutoka kwa kila mmoja. Huduma katika nafasi moja ya majina inaweza kuwasiliana kwa urahisi kabisa na huduma katika nafasi nyingine ya majina, ambayo mara nyingi ni muhimu sana. Uwezo wa kuwasiliana katika nafasi tofauti za majina unamaanisha kuwa huduma ya wasanidi programu wako inaweza kuwasiliana na huduma ya timu nyingine ya wasanidi programu katika nafasi tofauti ya majina.

Kwa kawaida, programu yako inapotaka kufikia huduma ya Kubernetes, unatumia huduma ya ugunduzi iliyojengewa ndani ya DNS na kuipa programu yako jina la huduma. Hata hivyo, kwa kufanya hivyo, unaweza kuunda huduma chini ya jina moja katika nafasi nyingi za majina, ambayo haikubaliki.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Kwa bahati nzuri, hii ni rahisi kuzunguka kwa kutumia fomu iliyopanuliwa ya anwani ya DNS. Huduma katika Kubernetes hufichua ncha zao kwa kutumia kiolezo cha kawaida cha DNS. Inaonekana kitu kama hiki:

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Kwa kawaida, unahitaji tu jina la huduma na DNS itaamua moja kwa moja anwani kamili.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Walakini, ikiwa unahitaji kupata huduma katika nafasi tofauti ya majina, tumia tu jina la huduma pamoja na jina la nafasi ya majina:

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Kwa mfano, ikiwa unataka kuunganisha kwenye hifadhidata ya huduma katika nafasi ya jina ya jaribio, unaweza kutumia hifadhidata ya anwani database.test.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Ikiwa unataka kuunganisha kwenye hifadhidata ya huduma katika nafasi ya majina ya prod, unatumia database.prod.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Ikiwa kweli unataka kutenga na kuzuia ufikiaji wa nafasi ya majina, Kubernetes hukuruhusu kufanya hivi kwa kutumia Sera za Mtandao za Kubernetes. Nitalizungumza hili katika sehemu inayofuata.

Mara nyingi mimi huulizwa swali, ni nafasi ngapi za majina ninapaswa kuunda na kwa madhumuni gani? Kipande cha data kinachodhibitiwa ni nini?

Ukiunda nafasi nyingi za majina, zitakuzuia tu. Ikiwa kuna wachache wao, utapoteza faida zote za suluhisho hilo. Nadhani kuna hatua kuu nne ambazo kila kampuni hupitia wakati wa kuunda muundo wake wa shirika. Kulingana na hatua ya maendeleo ambayo mradi au kampuni yako iko, unaweza kutaka kupitisha mkakati unaofaa wa nafasi ya majina.

Fikiria kuwa wewe ni sehemu ya timu ndogo ambayo inafanya kazi katika kutengeneza huduma ndogo 5-10 na unaweza kukusanya watengenezaji wote kwa urahisi katika chumba kimoja. Katika hali hii, inaeleweka kuendesha huduma zote za prod katika nafasi ya jina chaguo-msingi. Kwa kweli, kwa kubadilika zaidi, unaweza kutumia nafasi 2 za majina - kando kwa prod na dev. Na uwezekano mkubwa, unajaribu ukuzaji wako kwenye kompyuta yako ya karibu kwa kutumia kitu kama Minikube.

Hebu tuseme mambo yanabadilika na sasa una timu inayokua kwa kasi inayofanya kazi kwenye zaidi ya huduma ndogo 10 kwa wakati mmoja. Inakuja wakati ambapo ni muhimu kutumia makundi kadhaa au nafasi za majina, tofauti kwa prod na dev. Unaweza kuvunja timu katika timu ndogo ndogo ili kila moja iwe na huduma zake ndogo na kila moja ya timu hizi inaweza kuchagua nafasi yake ya majina ili kuwezesha mchakato wa kudhibiti uundaji na uchapishaji wa programu.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Kila mshiriki wa timu anapopata maarifa kuhusu jinsi mfumo kwa ujumla unavyofanya kazi, inakuwa vigumu zaidi na zaidi kuratibu kila mabadiliko na wasanidi wengine wote. Kujaribu kusokota rundo kamili kwenye mashine yako ya karibu inazidi kuwa ngumu kila siku.

Katika makampuni makubwa, watengenezaji kwa ujumla hawajui ni nani hasa anafanya kazi juu ya nini. Timu huwasiliana kwa kutumia kandarasi za huduma au kutumia teknolojia ya wavu wa huduma, ambayo huongeza safu ya uondoaji kwenye mtandao, kama vile zana ya usanidi ya Istio. Kujaribu kuendesha mrundikano mzima ndani ya nchi haiwezekani. Ninapendekeza sana kutumia jukwaa la uwasilishaji endelevu (CD) kama Spinnaker kwenye Kubernetes. Kwa hivyo, inakuja wakati ambapo kila amri hakika inahitaji nafasi yake ya jina. Kila timu inaweza hata kuchagua nafasi nyingi za majina kwa mazingira ya uboreshaji na mazingira ya uzalishaji.

Hatimaye, kuna makampuni makubwa ya ujasiriamali ambayo kundi moja la watengenezaji hawajui hata kuwepo kwa makundi mengine. Kampuni kama hii kwa ujumla inaweza kuajiri wasanidi programu wengine ambao huwasiliana nayo kupitia API zilizohifadhiwa vizuri. Kila kikundi kama hicho kina timu kadhaa na huduma ndogo ndogo. Katika kesi hii, unahitaji kutumia zana zote ambazo nilizungumza mapema.

Mbinu bora za Kubernetes. Shirika la Kubernetes lenye nafasi ya majina

Watayarishaji programu hawapaswi kupeleka huduma wao wenyewe na hawapaswi kufikia nafasi za majina ambazo haziwahusu. Katika hatua hii, inashauriwa kuwa na makundi kadhaa ili kupunguza "radius ya mlipuko" ya programu zilizosanidiwa vibaya, ili kurahisisha michakato ya bili na usimamizi wa rasilimali.

Kwa hivyo, matumizi sahihi ya nafasi za majina na shirika lako hukuruhusu kufanya Kubernetes kudhibitiwa zaidi, kudhibitiwa, salama na rahisi kunyumbulika.

Mbinu bora za Kubernetes. Kuthibitisha Uhai wa Kubernetes kwa Majaribio ya Utayari na Uhai

Baadhi ya matangazo πŸ™‚

Asante kwa kukaa nasi. Je, unapenda makala zetu? Je, ungependa kuona maudhui ya kuvutia zaidi? Tuunge mkono kwa kuweka agizo au kupendekeza kwa marafiki, VPS ya wingu kwa watengenezaji kutoka $4.99, analogi ya kipekee ya seva za kiwango cha kuingia, ambayo ilivumbuliwa na sisi kwa ajili yako: Ukweli wote kuhusu VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps kutoka $19 au jinsi ya kushiriki seva? (inapatikana kwa RAID1 na RAID10, hadi cores 24 na hadi 40GB DDR4).

Dell R730xd 2x nafuu katika kituo cha data cha Equinix Tier IV huko Amsterdam? Hapa tu 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV kutoka $199 nchini Uholanzi! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - kutoka $99! Soma kuhusu Jinsi ya kujenga miundombinu ya Corp. darasa na matumizi ya seva za Dell R730xd E5-2650 v4 zenye thamani ya euro 9000 kwa senti?

Chanzo: mapenzi.com

Kuongeza maoni