Kev xa tawm piav qhia yuav ua li cas thiab pes tsawg daim ntawv luam ntawm koj daim ntawv thov yuav tsum tau khiav ntawm lub sijhawm. Txhua daim ntawv thov raug xa mus ua Pod thiab tau muab qhov chaw nyob IP.
Cov kev pabcuam zoo sib xws hauv kev ua haujlwm rau lub load balancer. Lawv yog tsim los faib cov tsheb khiav mus rau ntau lub pods.
Cia peb saib seb nws zoo li cas.
Hauv daim duab hauv qab no koj tuaj yeem pom peb qhov piv txwv ntawm tib daim ntawv thov thiab cov khoom sib npaug:
Lub load balancer hu ua Kev Pabcuam thiab tau muab tus IP chaw nyob. Txhua qhov kev thov nkag tau raug xa mus rau ib qho ntawm cov pods:
Qhov xwm txheej xa tawm txiav txim seb muaj pes tsawg zaus ntawm daim ntawv thov. Koj yuav luag tsis tas yuav nthuav tawm ncaj qha hauv qab no:
Txhua lub pod yog muab nws tus kheej IP chaw nyob:
Nws yog ib qho tseem ceeb kom xav txog cov kev pabcuam raws li kev sau ntawm IP chaw nyob. Txhua zaus koj nkag mus rau qhov kev pabcuam, ib qho ntawm qhov chaw nyob IP raug xaiv los ntawm cov npe thiab siv los ua qhov chaw nyob.
Yog tias koj daim ntawv thov muaj cov frontend thiab backend, ces koj yuav muaj ob qho kev pabcuam thiab kev xa mus rau txhua tus.
Thaum lub frontend thov mus rau lub backend, nws tsis tas yuav paub tseeb tias muaj pes tsawg pods lub backend pab: yuav muaj ib, kaum, los yog ib puas.
Tsis tas li ntawd, lub frontend tsis paub dab tsi txog qhov chaw nyob ntawm cov pods pab lub backend.
Thaum lub frontend thov rau lub backend, nws siv qhov chaw nyob IP ntawm qhov kev pabcuam backend, uas tsis hloov.
Qhov no yog qhov nws zoo li.
Nyob rau hauv 1 thov lub internal backend tivthaiv. Es tsis txhob xaiv ib qho tshwj xeeb rau qhov backend, nws ua rau kev thov rau kev pabcuam:
Koj tseem tsis tuaj yeem nrhiav tus IP chaw nyob uas muab rau cov kev pabcuam.
Qhov kev pabcuam tus IP chaw nyob yog nyob rau hauv cov txheej txheem tswj, hauv cov maub los, thiab kaw rau hauv database - thiab lwm yam. Tib qhov chaw nyob yog siv los ntawm lwm yam - kube-proxy.
Kube-proxy tau txais ib daim ntawv teev npe IP chaw nyob rau txhua qhov kev pabcuam thiab tsim cov txheej txheem iptables ntawm txhua tus ntawm hauv pawg.
Cov cai no hais tias: "Yog tias peb pom qhov chaw nyob IP ntawm qhov kev pabcuam, peb yuav tsum hloov kho qhov chaw nyob ntawm qhov kev thov thiab xa mus rau ib qho ntawm cov pods."
Qhov kev pabcuam IP chaw nyob tsuas yog siv los ua qhov chaw nkag thiab tsis tau txais kev pabcuam los ntawm cov txheej txheem mloog tus IP chaw nyob thiab chaw nres nkoj.
Yuav ua li cas yog tias peb siv kom muaj sia nyob hauv Kubernetes kev pabcuam?
Cia peb xav tias ob qho tib si frontend thiab backend txhawb kom muaj sia nyob.
Peb muaj ib daim qauv ntawm frontend thiab peb daim ntawv ntawm lub backend. Lub frontend ua thawj qhov kev thov thiab qhib qhov kev sib txuas TCP rau lub backend. Qhov kev thov mus txog qhov kev pabcuam, ib qho ntawm cov backend pods raug xaiv raws li qhov chaw nyob. Lub backend xa cov lus teb, thiab frontend tau txais nws.
Tsis zoo li qhov xwm txheej ib txwm muaj qhov kev sib txuas TCP raug kaw tom qab tau txais cov lus teb, tam sim no tau qhib rau kev thov HTTP ntxiv.
Yuav ua li cas yog lub frontend xa ntau thov mus rau lub backend?
Nyob ntawm seb lub tsev qiv ntawv twg koj siv los txuas rau cov ntaub ntawv, koj tuaj yeem muaj ntau txoj hauv kev los daws qhov teeb meem no.
Hauv qab no yog ib qho piv txwv ntawm kev nkag mus rau MySQL database cluster los ntawm 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
Muaj ntau ntau lwm cov kev cai uas siv kev sib txuas tsis tu ncua TCP:
Tab sis yog tias cov txheej txheem no nrov heev, vim li cas ho tsis muaj qhov kev ntsuas ntsuas tus qauv? Vim li cas tus neeg siv khoom xav tau hloov pauv? Puas muaj cov tshuaj Kubernetes ib txwm muaj?
Kube-proxy thiab iptables yog tsim los npog cov neeg siv feem ntau thaum xa mus rau Kubernetes. Qhov no yog rau kev yooj yim.
Tab sis thaum koj pib siv cov kev sib txuas tsis tu ncua TCP, koj yuav tsum paub seb yuav ua li cas thiaj li faib cov khoom sib npaug thoob plaws lub backends. Kubernetes tsis muaj cov kev daws teeb meem npaj rau rooj plaub no.
Txawm li cas los xij, yeej muaj cov kev xaiv uas tuaj yeem pab tau.
Ntsuas kev sib txuas nyob ntev hauv Kubernetes
Muaj plaub hom kev pabcuam hauv Kubernetes:
ClusterIP
NodePort
LoadBalancer
Lub taub hau
Thawj peb qhov kev pabcuam ua haujlwm raws li qhov chaw nyob IP virtual, uas yog siv los ntawm kube-proxy los tsim cov cai iptables. Tab sis lub hauv paus tseem ceeb ntawm tag nrho cov kev pabcuam yog kev pabcuam tsis muaj taub hau.
Cia peb hais tias muaj ob tus neeg siv khoom thiab tsib servers. Hauv qhov zoo tshaj plaws, yuav muaj ob qhov txuas mus tas li rau ob lub servers ntawm tsib.
Cov servers ntxiv yuav tsis ua haujlwm:
Yog tias ob lub servers tsis tuaj yeem tswj cov neeg thov kev thov, kev ntsuas kab rov tav yuav tsis pab.
xaus
Cov kev pabcuam Kubernetes yog tsim los ua haujlwm hauv feem ntau cov qauv web application scenarios.
Txawm li cas los xij, thaum koj pib ua haujlwm nrog daim ntawv thov raws tu qauv uas siv TCP txuas ntxiv, xws li databases, gRPC lossis WebSockets, cov kev pabcuam tsis tsim nyog lawm. Kubernetes tsis muab cov txheej txheem sab hauv los ntsuas kev sib txuas tsis tu ncua TCP.
Qhov no txhais tau tias koj yuav tsum sau cov ntawv thov nrog cov neeg siv khoom sib npaug hauv siab.