Kubernetes Networking - celovit vodnik po konceptih mreženja v Kubernetesu



Ta blog o Kubernetes Networking se bo poglobil v koncepte, vključene v Kubernetes, kot so komunikacija s stroki, storitve in vhodna omrežja.

V prejšnjem blogu na , verjetno ste se razumeli o Kubernetesu. V tem blogu o Kubernetesovih omrežjih se bom osredotočil predvsem na koncepte mreženja, vključene v Kubernetes.

V tem blogu o Kubernetes Networking boste razumeli naslednje teme:





Kaj je Kubernetes?

Kubernetes lahko definirate kot odprtokodno orodje za orkestracijo zabojnikov, ki ponuja prenosno platformo za avtomatizacijo uvajanja vsebniških aplikacij.

Zdaj mora vsak, ki sodeluje s Kubernetesom, jasno razumeti Kubernetesov grozd, saj vam bo to pomagalo pri razumevanju Kubernetesovega mreženja.



Grozd Kubernetes

Platforma Kubernetes ponuja želeno upravljanje stanja, ki omogoča izvajanje storitev grozdov, napajano konfiguracijo v infrastrukturi. Naj pojasnim s primerom.

Razmislite o datoteki YAML, ki vsebuje vse informacije o konfiguraciji, ki jih je treba vnesti v storitve gruče. Torej, ta datoteka se pošlje v API storitev grozdov, nato pa bodo storitve grozda morale ugotoviti, kako razporediti pods v okolju. Recimo, da obstajata dve sliki vsebnika za pod 1 s tremi replikami in ena slika vsebnika za pod 2 z dvema replikama, storitve grozda pa bodo morale dodeliti te pare pod-replike delavcem.

ustvari naključni niz v javi

Kubernetesov grozd - Kubernetesovo mreženje - Edureka



Glejte zgornji diagram. Kot lahko vidite, so storitve grozdov prvemu delavcu dodelile dva para replik stroka, drugega delavca en par dvojic replike in tretjega delavca dva para replik stroka. Zdaj je postopek Kubelet tisti, ki je odgovoren za komuniciranje storitev grozdov z delavci.

Torej, celotna postavitev storitev grozdov in sami delavci to sestavljajo Skupina Kubernetes !!

Kako mislite, da ti posamično dodeljeni stroki komunicirajo med seboj?

Odgovor je v Kubernetes Networking!

Naročite se na naš youtube kanal in prejemajte nove posodobitve ..!

Pri konceptih mreženja je treba rešiti predvsem 4 težave.

  • Od kontejnerja do komunikacije zabojnikov
  • Pod to pod Komunikacija
  • Pod za servisno komunikacijo
  • Zunanja komunikacija storitve

Zdaj pa naj vam povem, kako se zgoraj omenjene težave rešujejo s Kubernetes Networking.

Kubernetes Networking

Komunikacija med stroki, storitvami in zunanjimi storitvami do tistih v grozdu prinaša koncept omrežja Kubernetes.

Torej, za vaše boljše razumevanje naj koncepte razdelim na naslednje.

  • Pods in posoda za komunikacijo
  • Storitve
  • Povezava zunanjih s storitvami prek omrežja Ingress

Pods in posoda za komunikacijo

Preden vam povem, kako komunicirajo stroki, naj vam predstavim, kaj so stroki?

Stroki

Pods so osnovne enote aplikacij Kubernetes, ki je sestavljena iz enega ali več vsebnikov, dodeljenih istemu gostitelju za skupno rabo omrežnega sklada in drugih virov. To pomeni, da lahko vsi vsebniki v stroju dosežejo druge na lokalnem gostitelju.

Zdaj, naj vam na kratko predstavim, kako komunicirajo ti stroki?

Obstajata 2 vrsti komunikacije. The komunikacija med vozlišči in komunikacija znotraj vozlišča.

Začnimo torej s komunikacijo znotraj vozlišča, vendar pred tem naj vam predstavim komponente omrežja pod.

Znotraj vozlišča pod omrežjem

Mreža pod-vozlov znotraj je v bistvu komunikacija med dvema različnima vozliščema v istem stroku. Naj vam razložim na primeru.

Predpostavimo, da gre paket od pod1 do pod2.

  • Paket zapusti omrežje Pod 1 na eth0 in vstopi v korensko omrežje na veth0
  • Nato paket preide na most Linux (cbr0), ki s pomočjo zahteve ARP odkrije cilj
  • Torej, če ima veth1 IP, most zdaj ve, kam naj posreduje paket.

Zdaj naj vam podobno povem tudi o komunikaciji med vozlišči.

Vas zanima učenje Kubernetesa?
Med vozliščem pod omrežjem

Razmislite o dveh vozliščih z različnimi imenskimi prostori omrežij, omrežnimi vmesniki in mostom Linux.

Zdaj predpostavimo, da paket potuje od pod1 do pod4, ki je na drugem vozlišču.

  • Paket zapusti omrežje pod 1 in vstopi v korensko omrežje na veth0
  • Nato paket preide na most Linux (cbr0), katerega naloga je izdelati ARP zahtevo za iskanje cilja.
  • Ko most ugotovi, da ta pod nima ciljnega naslova, se paket vrne v glavni omrežni vmesnik eth0.
  • Paket zdaj zapusti vozlišče 1, da poišče svoj cilj na drugem vozlišču, in vnese tabelo poti, ki paket usmeri na vozlišče, katerega blok CIDR vsebuje pod4.
  • Torej, zdaj paket doseže vozlišče2 in nato most sprejme paket, ki naredi zahtevo ARP, da ugotovi, da IP pripada veth0.
  • Nazadnje paket prečka cevni par in doseže pod4.

Torej, tako stroki komunicirajo med seboj. Zdaj pa pojdimo naprej in poglejmo, kako storitve pomagajo pri komunikaciji strokov.

Torej, kaj menite, da so storitve?

Storitve

V bistvu so storitve vrsta vira, ki konfigurira strežnik proxy za posredovanje zahtev naboru pods, ki bodo prejemali promet in ga določi izbirnik. Ko je storitev ustvarjena, ima dodeljen naslov IP, ki bo sprejemal zahteve na vratih.

Zdaj obstajajo različne vrste storitev, ki vam omogočajo razkritje storitve zunaj naslova IP skupine.

Vrste storitev

Obstajajo predvsem 4 vrste storitev.

IP grozd: To je privzeta vrsta storitve, ki storitev izpostavi na notranjem IP-ju grozda, tako da storitev doseže samo znotraj grozda.

NodePort: To izpostavi storitev na IP-ju vsakega vozlišča v statičnih vratih. Ker je a GrozdIP storitev, do katere bo usmerjena storitev NodePort, se samodejno ustvari. Lahko se obrnemo na storitev NodePort zunaj grozda.

LoadBalancer: To je vrsta storitve, ki storitev izpostavi navzven s pomočjo izravnalnika obremenitve ponudnika oblaka. Torej se samodejno ustvarijo storitvi NodePort in ClusterIP, kamor bo usmerjen zunanji izravnalnik obremenitve.

Zunanjeime : Ta vrsta storitve preslika storitev v vsebino externalName polje z vrnitvijo a CNAME zapis s svojo vrednostjo.

Torej, fantje, to je bilo vse okoli storitev. Zdaj se morda sprašujete, kako se zunanje storitve povezujejo s temi omrežji, kajne?

No, to ni nihče drug kot Ingress Network .

Ingress Network

No, omrežje Ingress je najmočnejši način razkrivanja storitev, saj gre za zbirko pravil, ki omogočajo vhodne povezave in jih je mogoče konfigurirati tako, da omogočajo storitve zunaj prek dostopnih URL-jev. Torej v bistvu deluje kot vstopna točka v gručo Kubernetes, ki upravlja zunanji dostop do storitev v gruči.

Zdaj pa vam na primeru razložim delovanje Ingress Network.

Imamo 2 vozlišči z imenskim prostorom pod in korenskim omrežjem z mostom Linux. Poleg tega imamo v korenskem omrežju dodano tudi novo navidezno ethernetno napravo, imenovano flannel0 (omrežni vtičnik).

Zdaj želimo, da paket teče iz pod1 v pod 4.

  • Torej, paket zapusti omrežje pod1 na eth0 in vstopi v korensko omrežje na veth0.
  • Nato se posreduje na cbr0, ki poda zahtevo ARP za iskanje cilja in nato ugotovi, da nihče na tem vozlišču nima ciljnega naslova IP.
  • Torej most pošlje paket na flannel0, saj je tabela poti vozlišča konfigurirana s flannel0.
  • Zdaj se flanel demon pogovarja s API-jevim strežnikom Kubernetes, da pozna vse IP-je pod in njihova ustrezna vozlišča, da ustvari preslikave za IP-je pods-ov za vozlišče IP-jev.
  • Omrežni vtičnik ta paket ovije v paket UDP z dodatnimi glavami, ki spremenijo izvorni in ciljni IP-ji na svoja vozlišča in pošljejo ta paket prek eth0.
  • Ker zdaj tabela poti že ve, kako usmerjati promet med vozlišči, pošlje paket na ciljno vozlišče2.
  • Paket prispe na eth0 vozlišča2 in se vrne v flannel0, da se dekapsulira in odda nazaj v imenski prostor korenskega omrežja.
  • Paket se ponovno posreduje mostu Linux, da poda zahtevo ARP, da ugotovi IP, ki pripada veth1.
  • Paket končno prečka korensko omrežje in doseže ciljni Pod4.

Torej, tako so zunanje storitve povezane s pomočjo vhodnega omrežja. Zdaj, ko sem govoril o omrežnih vtičnikih, naj vam predstavim seznam priljubljenih omrežnih vtičnikov.

Zdaj, ko sem vam že toliko povedal o Kubernetes Networking, naj vam pokažem resnično študijo primera.

Študija primera: Čarovnik za bogastvo z uporabo omrežja Kubernetes

Wealth Wizards je spletna platforma za finančno načrtovanje, ki združuje finančno načrtovanje in pametno programsko tehnologijo za strokovno svetovanje po dostopni ceni.

Izzivi

Zdaj je bilo za podjetje izredno pomembno, da hitro odkrije in odpravi ranljivosti kod s popolno vidnostjo njihovega oblačnega okolja, vendar je želelo nadzor prometa nadgraditi z omejitvami dostopa.

Tako so uporabili Kubernetesovo infrastrukturo za upravljanje zagotavljanja in uvajanja grozdov s pomočjo orodij za upravljanje uvajanja in konfiguriranja mikro storitev v grozdih Kube.

Uporabili so tudi funkcijo omrežne politike Kubernetes, da jim omogočijo nadzor prometa z omejitvami dostopa.

Težava je bila v tem, da so te usmeritve usmerjene v aplikacije in se lahko razvijajo samo z aplikacijami, vendar za uveljavitev teh pravil ni bilo nobene komponente.

Edina rešitev, ki jo je podjetje lahko našlo za to, je bila uporaba omrežnega vtičnika, zato so začeli uporabljati Weave Net.

Rešitev

Ta omrežni vtičnik ustvari navidezno omrežje, ki ima krmilnik omrežne politike za upravljanje in uveljavljanje pravil v Kubernetesu. Ne samo to, ampak tudi povezuje vsebnike Dockerja na več gostiteljih in omogoča njihovo samodejno odkrivanje.

Recimo, da imate v gruči delovno obremenitev in želite ustaviti katero koli drugo delovno obremenitev v gruči, ki govori z njo. To lahko dosežete z ustvarjanjem omrežne politike, ki omejuje dostop in omogoča vstop vanj samo prek krmilnika vstopa na določena vrata.

Zdaj, ko je razporejen na vsakem vozlišču Kubernetes, vtičnik upravlja usmerjanje med napravami in ima dostop do manipuliranja s pravili IPtables. Preprosto povedano, vsak pravilnik se pretvori v zbirko pravil IPtables, ki se uskladijo in konfigurirajo v vsaki napravi za prevajanje oznak Kubernetes.

V redu, zdaj, ko ste že prešli toliko teorije o Kubernetesovem omrežju, naj vam pokažem, kako se to počne v praksi.

Hands-On

Torej, ob predpostavki, da ste vsi namestili Kubernetes v svoje sisteme, imam scenarij za predstavitev.

Recimo, da želite shraniti ime izdelka in ID izdelka, za to boste potrebovali spletno aplikacijo. V bistvu potrebujete en vsebnik za spletno aplikacijo in še en vsebnik kot MySQL za zaledje in ta vsebnik MySQL mora biti povezan s vsebnikom spletne aplikacije.

Kako pa je, da zgoraj navedeni primer izvedem praktično.

Začnimo!

Korak 1: Ustvarite mapo v želenem imeniku in spremenite pot delovne mape v to mapo.

mkdir HandsOn cd HandsOn /

2. korak: Zdaj ustvarite razmestitvene datoteke YAML za spletno aplikacijo in bazo podatkov MySQL.

3. korak: Ko ustvarite datoteke za razmestitev, namestite obe aplikaciji.

kubectl uveljavi -f webapp.yml kubectl prijavi -f mysql.yml

Korak 3.1: Preverite obe namestitvi.

kubectl dobili uvajanje

4. korak: Zdaj morate ustvariti storitve za obe aplikaciji.

kubectl prijava -f webservice.yml kubectl prijava -f sqlservice.yml

Korak 4.1: Ko so storitve ustvarjene, jih razmestite.

Korak 4.2: Preverite, ali so bile storitve ustvarjene ali ne.

kubectl dobite storitev

5. korak: Zdaj preverite konfiguracijo delujočih pods.

kubectl dobite stroke

6. korak: Pojdite v posodo znotraj webapp pod.

kubectl exec -it container_id bash nano var / www / html / index.php

Korak 6.1 : Zdaj pa spremenite $ servername od localhost do imena storitve SQL, ki je ' webapp-sql1 'V tem primeru in $ geslo od '' do ' edureka '. Izpolnite tudi vse potrebne podatke o zbirki podatkov in z bližnjico na tipkovnici shranite datoteko index.php Ctrl + x in po tem pritisnite Y. shranite in pritisnite vnesite .

7. korak: Zdaj pojdite v vsebnik MySQL, ki je prisoten v stroku.

kubectl exec it container_id bash

Korak 7.1: Pridobite dostop do uporabe vsebnika MySQL.

mysql -u root -p edureka

Kjer -u predstavlja uporabnika, -p pa je geslo vaše naprave.

Korak 7.2: Ustvarite bazo podatkov v MySQL, ki bo uporabljena za pridobivanje podatkov iz webappa.

USTVARI PODATKOVNO BAZO PODATKOV o izdelku

Korak 7.3: Uporabite ustvarjeno bazo podatkov.

UPORABITE podrobnosti o izdelku

Korak 7.4: V tej zbirki podatkov v MySQL ustvarite tabelo, ki bo uporabljena za pridobivanje podatkov iz webappa.

USTVARI TABELO izdelkov (ime_izdelka VARCHAR (10), ID_izdelka VARCHAR (11))

Korak 7.5: Zdaj s pomočjo ukaza zapustite tudi vsebnik MySQL izhod .

8. korak: Preverite številko vrat, na katerih deluje vaša spletna aplikacija.

kubectl dobili storitve

Korak 8.1: Zdaj odprite spletno aplikacijo na dodeljeni številki vrat.

9. korak: Ko kliknete na Pošlji poizvedbo , pojdite na vozlišče, v katerem se izvaja vaša storitev MySQL, in nato pojdite v vsebnik.

To vam bo pokazalo rezultate vseh izdelkov s seznama, o katerih ste izpolnili podrobnosti.

Vas zanima učenje Kubernetesa?

Če se vam zdi ta spletni dnevnik Kubernetes Networking ustrezen, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje z mrežo več kot 250.000 zadovoljnih učencev, ki se širijo po vsem svetu.