Ikiwa wewe ni kama watu wengi, labda unatumia rasilimali ambazo ziko nje ya kikundi chako. Labda unatumia API ya Taleo kutuma ujumbe mfupi, au kuchanganua picha kwa kutumia API ya Maono ya Wingu la Google.
Ikiwa unatumia mwisho wa ombi la upande wa seva katika mazingira yako yote na huna mpango wa kuhamisha seva zako hadi Kubernetes, basi ni sawa kabisa kuwa na mwisho wa huduma katika nambari yako ya kuthibitisha. Hata hivyo, kuna matukio mengine mengi kwa ajili ya maendeleo ya matukio. Katika mfululizo huu wa Mbinu Bora za Kubernetes, utajifunza jinsi ya kutumia mbinu zilizojengewa ndani za Kubernetes kugundua huduma ndani na nje ya nguzo.
Mfano wa huduma ya kawaida ya nje ni hifadhidata inayoendesha nje ya nguzo ya Kubernetes. Tofauti na hifadhidata za wingu kama vile Google Cloud Data Store au Google Cloud Spanner, ambazo hutumia mwisho mmoja kwa ufikiaji wote, hifadhidata nyingi zina miisho tofauti kwa hali tofauti.
Mbinu bora za kutumia hifadhidata za kitamaduni kama vile MySQL na MongoDB kawaida humaanisha kuwa unaunganisha kwa vipengee tofauti vya mazingira tofauti. Unaweza kuwa na mashine kubwa ya data ya uzalishaji na mashine ndogo kwa mazingira ya majaribio. Kila moja yao itakuwa na anwani yake ya IP au jina la kikoa, lakini labda hautataka kubadilisha msimbo wako unapohama kutoka mazingira moja hadi nyingine. Kwa hivyo badala ya kuweka msimbo kwa bidii kwenye anwani hizi, unaweza kutumia ugunduzi wa huduma ya nje ya Kubernetes iliyojengwa ndani ya DNS kwa njia sawa na huduma asilia za Kubernetes.
Wacha tuseme unaendesha hifadhidata ya MongoDB kwenye Injini ya Kuhesabu ya Google. Utakwama katika ulimwengu huu wa mseto hadi utakapoweza kuihamisha hadi kwenye kundi.
Kwa bahati nzuri, unaweza kutumia huduma tuli za Kubernetes kurahisisha maisha yako. Katika mfano huu, niliunda seva ya MongoDB kwa kutumia Kizinduzi cha Wingu la Google. Kwa kuwa imeundwa kwenye mtandao sawa (au Kubernetes cluster VPC), inafikiwa kwa kutumia anwani ya IP ya utendaji wa juu.
Huu ndio mpangilio chaguomsingi kwenye Wingu la Google, kwa hivyo huhitaji kusanidi chochote. Sasa kwa kuwa una anwani ya IP, hatua ya kwanza ni kuunda huduma. Unaweza kugundua kuwa hakuna viteuzi vya pod kwa huduma hii. Hiyo ni, tumeunda huduma ambayo haitajua wapi kutuma trafiki. Hii itakuruhusu kuunda kipengee cha mwisho ambacho kitapokea trafiki kutoka kwa huduma hii.
Mfano wa msimbo ufuatao unaonyesha kuwa ncha huamua anwani ya IP ya hifadhidata kwa kutumia jina la mongo sawa na huduma.
Kubernetes itatumia anwani zote za IP kupata miisho kana kwamba ni Podi za Kubernetes za kawaida, kwa hivyo sasa unaweza kufikia hifadhidata kwa kamba rahisi ya unganisho kwa jina la hapo juu mongodb://mongo. Hakuna haja ya kutumia anwani za IP katika msimbo wako hata kidogo.
Ikiwa anwani za IP zitabadilika katika siku zijazo, unaweza kusasisha ncha zako kwa kutumia anwani mpya ya IP na programu zako hazitahitaji kurekebishwa kwa njia yoyote ya ziada.
Ikiwa unatumia hifadhidata iliyopangishwa kwa seva pangishi ya wahusika wengine, kuna uwezekano kuwa wamiliki wa seva pangishi wamekupa URI ya Kitambulisho cha Rasilimali Iliyofanana ili kuunganisha kwayo. Kwa hivyo ikiwa umepewa anwani ya IP, unaweza kutumia njia ya hapo awali. Mfano huu unaonyesha kuwa nina hifadhidata mbili za MongoDB zilizowekwa kwenye mwenyeji wa mLab.
Moja ni hifadhidata ya msanidi programu na nyingine ni hifadhidata ya uzalishaji. Mifuatano ya muunganisho ya hifadhidata hizi inaonekana kama hii - mLab hukupa URI inayobadilika na mlango unaobadilika. Kama unaweza kuona, wao ni tofauti.
Ili kuondoa hili, hebu tutumie Kubernetes na tuunganishe kwenye hifadhidata ya msanidi. Unaweza kuunda jina la huduma ya Kubernetes ya nje, ambayo itakupa huduma tuli ambayo itasambaza trafiki kwa huduma ya nje.
Huduma hii itafanya usambazaji rahisi wa CNAME kwenye kiwango cha kernel na athari ndogo ya utendakazi. Shukrani kwa hili unaweza kutumia kamba rahisi ya uunganisho.
Lakini kwa sababu jina la nje linatumia usambazaji wa CNAME, haliwezi kutekeleza usambazaji wa mlango. Kwa hivyo, suluhisho hili linatumika tu kwa bandari tuli na haliwezi kutumika na milango inayobadilika. Lakini mLab Free Tier humpa mtumiaji nambari ya bandari inayobadilika kwa chaguo-msingi na huwezi kuibadilisha. Hii inamaanisha kuwa unahitaji mistari tofauti ya amri ya unganisho kwa dev na prod. Jambo mbaya ni kwamba hii itakuhitaji kuweka nambari ya bandari ngumu. Kwa hivyo unapataje usambazaji wa bandari kufanya kazi?
Hatua ya kwanza ni kupata anwani ya IP kutoka kwa URI. Ukiendesha nslookup, jina la mpangishaji, au kubandika URI, unaweza kupata anwani ya IP ya hifadhidata. Ikiwa huduma inarudi anwani kadhaa za IP kwako, basi anwani hizi zote zinaweza kutumika katika mwisho wa kitu.
Jambo moja la kukumbuka ni kwamba URI za IP zinaweza kubadilika bila taarifa, na kuzifanya kuwa hatari sana kutumia katika uzalishaji. Kwa kutumia anwani hii ya IP, unaweza kuunganisha kwenye hifadhidata ya mbali bila kutaja bandari. Kwa hivyo, huduma ya Kubernetes hufanya usambazaji wa bandari kwa uwazi kabisa.
Kuchora ramani, au kuchora rasilimali za nje kwa zile za ndani, hukupa urahisi wa kutumia huduma hizi ndani ya kundi katika siku zijazo huku ukipunguza juhudi za kuchagiza upya. Pia hurahisisha udhibiti na kutoa maarifa kuhusu huduma za nje ambazo kampuni yako inatumia.
Itaendelea hivi punde...
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,
Dell R730xd 2x nafuu katika kituo cha data cha Equinix Tier IV huko Amsterdam? Hapa tu
Chanzo: mapenzi.com