Kubernetes waxay bixisaa laba hab oo ku haboon dirida codsiyada: Adeegyada iyo Hawlgelinta.
Hawlgelintu waxay sharraxaysaa inta iyo inta nuqul ee codsigaaga ay tahay inuu socdo wakhti kasta. Codsi kasta waxa loo geeyaa sidii Pod oo kale waxaana loo qoondeeyay ciwaanka IP-ga.
Adeegyadu waxay la mid yihiin shaqada isku-dheellitirka culeyska. Waxaa loo qaabeeyey in ay u qaybiyaan taraafikada meelo badan.
Isku-dheellitirka culeyska waxaa loo yaqaan Adeeg waxaana loo qoondeeyay cinwaanka IP-ga. Codsi kasta oo imanaya waxa loo weeciyey mid ka mid ah galalka:
Muuqaalka diritaanku wuxuu go'aamiyaa tirada kiisaska codsiga. Ku dhawaad ββwaligaa uma baahnid inaad si toos ah hoos ugu sii fidiso:
Boodh kasta waxaa loo qoondeeyay cinwaankiisa IP-ga:
Waa faa'iido leh in laga fikiro adeegyada inay yihiin ururinta cinwaannada IP. Mar kasta oo aad gasho adeegga, mid ka mid ah ciwaannada IP-yada ayaa laga dhex dooranayaa liiska oo loo isticmaalayaa sida ciwaanka loo socdo.
Waxay u egtahay sidan.
Codsiga curl 10.96.45.152 ayaa la helay adeegga:
Adeeggu wuxuu u doortaa mid ka mid ah saddexda ciwaan ee boodhka ah meesha loo socdo:
Gaadiidka waxaa lagu jiheeyaa meel gaar ah:
Haddii codsigaagu ka kooban yahay gees hore iyo gadaal, markaas waxaad yeelan doontaa labadaba adeeg iyo hawlgelin mid kasta.
Marka geesta hore ay codsi u dirto dhabarka dambe, uma baahna in ay si sax ah u ogaato inta xabo ee gadaasha dambe ay u adeegto: waxa jiri kara hal, toban, ama boqol.
Sidoo kale, dhinaca hore waxba kama yaqaanno ciwaannada cawska u adeega dhabarka.
Marka geesta hore ay codsi u dirto dhabarka, waxay isticmaashaa ciwaanka IP-ga ee adeega dhabarka, kaas oo aan isbedelin.
Tani waa sida ay u egtahay.
Hoosta 1 waxay codsataa qaybta dhabarka dambe ee gudaha. Halkii laga dooran lahaa mid gaar ah dhabarka dambe, waxay codsi u dirtaa adeega:
Adeeggu wuxuu u doortaa mid ka mid ah galalka dambe sida ciwaanka loo socdo:
Taraafikada waxay ka baxdaa Pod 1 ilaa Pod 5, oo ay doorteen adeeggu:
Ka hooseeya 1 si sax ah uma garanayo inta gadhood ee sida 5 ka yar ee ku qarsoon adeegga gadaashiisa:
Laakiin sidee buu adeeggu u qaybiyaa codsiyada? Waxay u egtahay in dheelitirka wareega wareega la isticmaalo? Aynu ogaano.
Isku dheelitirka adeegyada Kubernetes
Adeegyada Kubernetes ma jiraan. Ma jiro habraac loogu talagalay adeegga loo qoondeeyay cinwaanka IP-ga iyo dekedda.
Waxaad taas ku xaqiijin kartaa adiga oo gasha noode kasta oo kutlada ah oo aad socodsiiso amarka netstat -ntlp.
Xitaa ma awoodi doontid inaad heshid cinwaanka IP-ga ee loo qoondeeyay adeegga.
Ciwaanka IP-ga adeeggu wuxuu ku yaalaa lakabka kantaroolka, kontaroolaha, waxaana lagu duubay kaydka xogta - iwm. Isla cinwaankaas waxaa isticmaala qayb kale - kube-proxy.
Kube-proxy waxa uu helayaa liiska ciwaanka IP-ga ee dhammaan adeegyada waxana uu soo saara xeerar iptables ah oo ku yaal meel kasta oo ka mid ah kooxda.
Xeerarkani waxay yiraahdaan: "Haddii aan aragno ciwaanka IP-ga ee adeegga, waxaan u baahanahay inaan wax ka beddelno cinwaanka codsiga oo aan u dirno mid ka mid ah sanduuqyada."
Ciwaanka IP-ga adeega waxa loo istcimaalay oo kaliya meel laga soo galo oo looma adeego hab kasta oo la dhagaysto ciwaanka IP-ga iyo dekedaas.
Xeerarka iptables-ku waxay ogyihiin in adeeggu aanu jirin oo ay ku beddelaan ciwaanka IP-ga mid ka mid ah ciwaannada IP-yada pods-ka ee la xidhiidha adeeggaas:
Codsigu wuxuu helayaa ciwaanka IP-ga oo ansax ah sida ciwaanka loo socdo oo si caadi ah ayaa looga baaraandegayaa:
Hadda oo aad fahantay sida adeegyadu u shaqeeyaan, aynu eegno xaalado adeeg oo aad u xiiso badan.
Isku xirka mudada dheer ee Kubernetes ma cabiraan si caadi ah
Codsi kasta oo HTTP ah oo ka socda geesaha hore ilaa dhabarka dambe waxa u adeega xidhiidh TCP gaar ah, kaas oo la furay lana xidhay.
Haddii dhinaca hore u soo diro 100 codsi ilbiriqsikii dambe, markaa 100 xiriir TCP oo kala duwan ayaa la furay oo la xidhay.
Waxaad yareyn kartaa wakhtiga codsiga iyo culeyska adiga oo furaya hal xiriir TCP oo aad u isticmaasho dhammaan codsiyada HTTP ee xiga.
Hab-maamuuska HTTP wuxuu leeyahay sifo la yiraahdo HTTP keep-alive, ama dib u isticmaalka xiriirka. Xaaladdan oo kale, hal xiriir oo TCP ah ayaa loo isticmaalaa in lagu diro oo la helo codsiyo iyo jawaabo badan oo HTTP ah:
Sifadan looma hawlgelin si toos ah: server-ka iyo macmiilka labadaba waa in loo habeeyaa si waafaqsan.
Habaynta lafteedu waa mid fudud oo la heli karo inta badan luuqadaha barnaamijyada iyo deegaanka.
Waa kuwan qaar ka mid ah xiriiriyeyaasha tusaalooyinka luqadaha kala duwan:
HTTP maaha borotokoolka kaliya ee isticmaali kara xidhiidhada TCP ee joogtada ah.
Haddii codsigaagu isticmaalo xog-ururin, markaa xidhiidhka TCP lama furo mar kasta oo aad u baahato inaad codsato ama aad dukumeenti ka soo saarto kaydka.
Taa baddalkeeda, isku xirka TCP ee joogtada ah ee xogta ayaa la furay oo la isticmaalaa.
Haddii xogtaada la dhigo Kubernetes oo helitaanka adeeg ahaan loo bixiyo, markaa waxaad la kulmi doontaa dhibaatooyin la mid ah oo lagu sharraxay qaybta hore.
Mid ka mid ah nuqul ka mid ah kaydka xogta ayaa aad uga badan kuwa kale. Kube-proxy iyo Kubernetes ma caawin doonaan isku dheelitirka isku xirka. Waa inaad ka taxadartaa inaad isku dheelitirto weydiimaha xogtaada.
Iyadoo ku xiran maktabadda aad isticmaasho si aad ugu xirto keydka xogta, waxaa laga yaabaa inaad haysato ikhtiyaaro kala duwan oo aad ku xalliso dhibaatadan.
Hoos waxaa ku yaal tusaale gelitaanka kooxda xogta MySQL ee Node.js:
var mysql = require('mysql');
var poolCluster = mysql.createPoolCluster();
var endpoints = /* retrieve endpoints from the Service */
for (var [index, endpoint] of endpoints) {
poolCluster.add(`mysql-replica-${index}`, endpoint);
}
// Make queries to the clustered MySQL database
Waxaa jira borotokoolo kale oo badan oo isticmaala isku xirka TCP ee joogtada ah:
WebSockets iyo WebSockets oo sugan
HTTP / 2
gRPC
RSockets
AMQP
Waa inaad horeba u taqaannaa hab-maamuusyadan intooda badan.
Laakiin haddii hab-maamuusyadani ay aad caan u yihiin, maxaa loo waayay xal isku dheelli tiran? Muxuu macmiilka macquulka ah ugu baahan yahay inuu beddelo? Ma jiraa xal u dhashay Kubernetes?
Kube-proxy iyo iptables waxaa loogu talagalay inay daboosho inta badan kiisaska isticmaalka marka la geynayo Kubernetes. Tani waxay ku habboon tahay.
Haddii aad isticmaalayso adeeg shabakadeed oo soo bandhigta API REST, waxaad nasiib u leedahay - kiiskan, xiriirinta joogtada ah ee TCP lama isticmaalo, waxaad isticmaali kartaa adeeg kasta oo Kubernetes ah.
Laakiin marka aad bilowdo isticmaalka isku xirka TCP ee joogtada ah, waa inaad ogaataa sida si siman loogu qaybiyo culeyska dhabarka dambe. Kubernetes kuma jiraan xalal loo diyaariyey kiiskan.
Si kastaba ha ahaatee, waxaa hubaal ah inay jiraan doorashooyin ku caawin kara.
Isku dheelitirka isku xirka muddada dheer ee Kubernetes
Waxaa jira afar nooc oo adeegyo ah gudaha Kubernetes:
Kooxda IP
NodePort
LoadBalancer
Madax laβaan
Saddexda adeeg ee ugu horreeya waxay ku shaqeeyaan ciwaanka IP-ga ah, kaas oo loo isticmaalo kube-proxy si loo dhiso xeerarka iptables. Laakiin saldhigga aasaasiga ah ee dhammaan adeegyada waa adeeg aan madax lahayn.
Adeegga madax la'aanta ah ma laha ciwaan IP ah oo la xidhiidha oo kaliya waxa uu bixiyaa hab lagu soo saaro liiska ciwaannada IP-ga iyo dekedaha boodhka (dhamaadka) ee la xidhiidha.
Dhammaan adeegyadu waxay ku salaysan yihiin adeegga madax-la'aanta.
Sidan ayaad iskaga indho-tiri kartaa kube-wakiilka oo si toos ah ayaad u isticmaali kartaa liiska dhammaadka-dhammaadka ee laga helay adeegga madax-la'aanta si aad isugu dheelitirto codsigaaga.
Laakiin sidee baan ugu dari karnaa caqli-gal la mid ah dhammaan codsiyada la geeyay kooxda?
Haddii codsigaagii hore loo diray, hawshani waxay u ekaan kartaa mid aan macquul ahayn. Si kastaba ha ahaatee, waxaa jira ikhtiyaar kale.
Adeegga Mesh ayaa ku caawin doona
Waxay u badan tahay inaad horeba u dareentay in istaraatijiyad isku dheelitirka culeyska dhinaca macmiilka ay tahay mid heersare ah.
Marka codsigu bilaabmo, waa:
Waxay ka helaysaa liiska cinwaannada IP-ga adeegga.
Wuxuu furaa oo ilaaliyaa barkadda isku xirka.
Marmar waxay cusboonaysiisaa barkada iyadoo ku daraya ama ka saaraysa dhibcaha dhamaadka.
Marka codsigu rabo inuu sameeyo codsi, waa:
Wuxuu doortaa xiriir la heli karo isagoo isticmaalaya xoogaa macquul ah (tusaale-robin).
Haddii aad leedahay macaamiil ka badan server-yada, tani maaha dhibaato sidaas u weyn.
Aynu sheegno inay jiraan shan macmiil oo ku xidha laba server. Xitaa haddii aysan jirin dheellitirnaan, labada server waa la isticmaali doonaa:
Xidhiidhada waxaa laga yaabaa inaan si siman loo qaybin: laga yaabee afar macmiil oo ku xidhan server isku mid ah, laakiin waxaa jirta fursad wanaagsan in labada adeegoodba la isticmaalo.
Waxa ka dhib badan waa xaalad ka soo horjeeda.
Haddii aad leedahay macaamiil yar iyo adeegayaal badan, agabkaaga ayaa laga yaabaa in aan si fiican looga faa'iidaysan waxaana muuqan doonta cidhiidhi suurtagal ah.
Aynu sheegno inay jiraan laba macmiil iyo shan server. Xaaladda ugu fiican, waxaa jiri doona laba xiriir oo joogto ah oo lala yeesho laba server shantiiba.
Server-yada soo hadhay waxay noqon doonaan kuwo aan shaqayn:
Haddii labadan adeege ay xamili waayaan codsiyada macmiilka, cabirka toosan ma caawin doono.
gunaanad
Adeegyada Kubernetes waxaa loogu talagalay inay ka shaqeeyaan inta badan xaaladaha codsiga shabakadda caadiga ah.
Si kastaba ha ahaatee, markaad bilowdo inaad la shaqeyso borotokoolka codsiga ee isticmaala isku xirka TCP ee joogtada ah, sida database-yada, gRPC ama WebSockets, adeegyadu kuma haboona. Kubernetes ma bixiso habab gudaha ah oo lagu dheelitirayo isku xirka TCP ee joogtada ah.
Tani waxay ka dhigan tahay waa inaad qortaa codsiyada adiga oo maskaxda ku haya dheelitirka dhinaca macmiilka.