Kubernetes

Kubernetes Ingress

Kubernetes Ingress
Kubernetes ir daudz kustīgu daļu. Tas ir sagaidāms no jebkura modeļa, kas paredzēts sadalītai skaitļošanai. Lai izpētītu, ko Kubernetes Ingress palīdz mums paveikt, vispirms atkārtosim dažas būtiskas detaļas par tipisku Kubernetes kopu:

  1. Kubernetes kopā izvietotā lietojumprogramma darbojas kā kolekcijas pākstis.
  2. Pākstis būtībā ir konteineri, kas ir ieplānoti vairākos mezglos.
  3. Mezgli var būt jūsu servera nodrošinātāja piedāvātie fiziskie serveri vai virtuālās mašīnas. Acīmredzot, ja vēlaties, Kubernetes varat izmantot arī uz vietas esošajā serverī.
  4. Katram Pod ir unikāla IP adrese.
  5. Jūsu lietojumprogramma ir sadalīta daudzos apakškomponentos, kurus bieži dēvē par mikropakalpojumiem.
  6. Katram jūsu lietojumprogrammas mikropakalpojumam Kubernetes ir atbilstošs pakalpojums.
  7. Kubernetes kontekstā a apkalpošana pakļauj pākšu kolekciju pārējai kopai kā vienotu abstrakciju. Viens virtuāls IP.
  8. Tas palīdz vienam jūsu lietojumprogrammas dienestam sazināties ar citu pakalpojumu. Tā ir abstrakcija, kas ļauj adresēt pākšu kolekcijai, nevis norādīt pākšu IP adresi, ikreiz, kad vēlaties ar to runāt.
  9. Kubernetes serviss darbojas arī kā slodzes līdzsvarotājs visām pākstīm, kuras tas pārstāv. Datplūsma vienmērīgi sadalās pa visiem mezgliem.

Tik tālu, labi. Katrs dienests var sarunāties ar citu dienestu. Šī saziņa ir iespējama visā Kubernetes kopā

Pakļaušana Pakalpojumi

Ja koks nokrīt mežā un neviens nav blakus, kas to dzirdētu, vai tas izdod skaņu?

Līdzīgi, ja jūsu lietojumprogramma nedarbojas mērķim ārpus Kubernetes kopas, vai tiešām ir svarīgi, vai jūsu kopa ir izveidota labi? Visticamāk ne.

Lai sniegtu jums konkrētu piemēru, pieņemsim, ka mums ir klasiska tīmekļa lietotne, kas sastāv no Nodejs rakstītās frontend un Python rakstītās backend, kas izmanto MySQL datu bāzi. Jūs izvietojat divus atbilstošus pakalpojumus savā Kubernetes klasterī.

Jūs izveidojat Dockerfile, norādot, kā priekšējā programmatūra jāiepako konteinerā, un līdzīgi jūs iesaiņojat savu aizmuguri. Pēc tam savā Kubernetes klasterī izvietosiet divus pakalpojumus, katrā aiz kuriem darbinot pākšu komplektu. Tīmekļa pakalpojums var sarunāties ar datu bāzes kopu un otrādi.

Tomēr Kubernetes neatklāj nevienu no šiem pakalpojumiem (kas ir būtisks HTTP galapunkts) pārējai pasaulei. Kā norādīts oficiālajos dokumentos:

Tiek pieņemts, ka pakalpojumiem virtuālie IP ir maršrutējami tikai kopu tīklā

No drošības viedokļa tas ir pilnīgi saprātīgi, jūsu pakalpojumi var sarunāties savā starpā, bet kopa neļaus ārējām vienībām tieši runāt ar pakalpojumiem. Piemēram, tikai jūsu tīmekļa priekšgals var sazināties ar datu bāzes pakalpojumu, un neviens cits pat nevar nosūtīt pieprasījumus datu bāzes dienestam.

Problēma rodas, aplūkojot frontend pakalpojuma izmantošanas gadījumu. Tam jābūt pakļautam pārējai sabiedrībai, lai galalietotāji varētu izmantot jūsu lietojumprogrammu. Mēs pakļaujam šādus pakalpojumus, izmantojot Kubernetes Ingress.

Kubernetes Ingress

Ingress pakļauj HTTP un HTTPS maršrutus no klastera ārpuses uz klastera pakalpojumiem. Maršrutēšanas kārtulas var kontrolēt, definējot Kubernetes Ingress resursu. Bet tas dara daudz vairāk nekā tas. Atsevišķa pakalpojuma ekspozīciju var panākt, izmantojot dažādas citas alternatīvas, piemēram, NodePort vai Load Balancers, taču šīm iespējām nav pietiekami sarežģītas funkcijas, lai mūsdienīga tīmekļa lietotne.

Tādas funkcijas kā vairāku lietotņu eksponēšana vienā IP, maršrutu noteikšana utt.

Tātad, sapratīsim šīs funkcijas atlikušajam rakstam:

Viena pakalpojuma iekļūšana

Šī ir vienkāršākā versija, kā pakļaut vienu pakalpojumu, piemēram, tīmekļa priekšgali ar IP (vai domēna nosaukumu) un noklusējuma HTTP un HTTPS portiem (i.e, 80 un 443).

Viens Fanout

Šī ir piekļuves iestatīšana, kas ļauj atļaut ienākošo trafiku uz vienu IP un novirzīt to uz vairākiem pakalpojumiem.

Tas sastāv no:

Viena fanout ir gadījums, kad vairākiem pakalpojumiem tiek izmantots viens IP. Pakalpojumi URI var būt dažādi, piemēram, foo.bārs.com / admin var būt pakalpojums administratoriem un foo.bārs.com / home var būt pakalpojums, kas ģenerē katra lietotāja mājas lapu.

Ieejas ports vienmēr būs 80 vai 443, bet osta, kurā darbojas pakalpojumi (klastera iekšienē), var nedaudz atšķirties.

Šāda veida iekļūšana palīdz mums samazināt slodzes līdzsvarotāju skaitu klasterī, jo tas būtībā darbojas kā viens.

Virtuālā mitināšana ar nosaukumu

Publiskās IP adreses ir ierobežotas. Tie ir arī diezgan dārgi. Ideja par nosaukumu virtuālo mitināšanu ir vecāka par Kubernetes. Būtība ir tāda, ka jūs norādāt dažādu vietņu, piemēram, ww1, DNS ierakstus.piemērs.com un ww2.piemērs.com uz to pašu IP adresi. Serveris, kas darbojas ar šo IP adresi, redzēs ienākošo pieprasījumu un, ja pieprasījumā minētais resursdatora nosaukums ir ww1.piemērs.com, tad tas jums apkalpo šo vietni, un, ja ww2.piemērs.com tiek pieprasīts, tad tas tiek pasniegts.

Kubernetes kontekstā mēs varam palaist divus pakalpojumus, kas darbojas, teiksim, 80. portā, un abus pakļaut vienai IP adresei, izmantojot arī 80. portu. Ienākšanas punktā ww1 satiksme.piemērs.com tiks nodalīts no ww2 datplūsmas.piemērs.com. Tādējādi virtuālā mitināšanas pamatā ir nosaukums.

Secinājums

Ingress Kubernetes ir diezgan sarežģīts, lai to varētu aplūkot vienā ierakstā. Tam ir dažādi lietojuma gadījumi un dažādi Ingress kontrolieri, kas pievienos jūsu klasterim Ingress funkcionalitāti. Es ieteiktu sākt ar Nginx Ingress Controller.

Lai iegūtu sīkāku informāciju un specifikācijas, varat arī sekot oficiālajai dokumentācijai.

Kontrolējiet un pārvaldiet peles kustību starp vairākiem monitoriem sistēmā Windows 10
Dual Display Mouse Manager ļauj kontrolēt un konfigurēt peles kustību starp vairākiem monitoriem, palēninot tās kustību robežas tuvumā. Windows 10/8 ļ...
WinMouse ļauj jums pielāgot un uzlabot peles rādītāja kustību Windows datorā
Ja vēlaties uzlabot peles rādītāja noklusējuma funkcijas, izmantojiet bezmaksas programmatūru WinMouse. Tas pievieno vairāk funkciju, kas palīdzēs jum...
Peles kreisā klikšķa poga nedarbojas operētājsistēmā Windows 10
Ja ar klēpjdatoru vai galddatoru izmantojat īpašu peli, bet nedarbojas peles kreisās klikšķa poga kādu iemeslu dēļ operētājsistēmā Windows 10/8/7 šeit...