Kubernetes Networking - põhjalik juhend Kubernetes asuvate võrgundusmõistete kohta

See Kubernetes Networkingu ajaveeb uurib põhjalikult Kubernetes sisalduvaid mõisteid, nagu suhtlus kaunadega, teenused ja sissepääsuvõrgud.

Eelmises ajaveebis , peate olema Kubernetesest aru saanud. Selles Kubernetes'e võrguühenduse ajaveebis keskendun peamiselt Kubernetesega seotud võrgukontseptsioonidele.

Selles Kubernetes Networkingu ajaveebis saate aru järgmistest teemadest:





What Is Kubernetes?

Kubernetes saate määratleda avatud lähtekoodiga konteinerorkestratsiooni tööriistana, mis pakub kaasaskantavat platvormi konteinerirakenduste juurutamise automatiseerimiseks.

Nüüd peavad kõik, kes Kubernetesega töötavad, Kubernetes klastrist selgelt aru saama, sest see aitab teil Kubernetes Networkingust aru saada.



Kubernetes Cluster

Kubernetes platvorm pakub soovitud olekuhaldust, mis võimaldab klastriteenuste käitamist, ühendatud konfiguratsiooni infrastruktuuris. Lubage mul selgitada ühe näitega.

Mõelge YAML-failile, millel on kogu konfiguratsiooniteave, mis tuleb klastriteenustesse sisestada. Niisiis, see fail sisestatakse klastriteenuste API-le ja siis on klastriteenustel ülesandeks välja selgitada, kuidas ajastada keskkonnas pakette. Oletame, et pod 1-l on kaks konteineripilti koos kolme koopiaga ja üks konteiner-pilt kauba 2 jaoks koos kahe koopiaga, klastriteenuste ülesanne on need pod-replica paarid töötajatele eraldada.

kuidas kasutada br HTML-is

Kubernetes Cluster - Kubernetes Networking - Edureka



Vaadake ülaltoodud skeemi. Nüüd, nagu näete, et klastriteenused on määranud esimese töötaja kahe kauba koopia paariga, teise töötaja ühe kauba ja koopia paariga ning kolmanda töötaja kahe kauba koopia paariga. Nüüd vastutab klastriteenuste töötajatega suhtlemise eest Kubeleti protsess.

Nii et kogu see klastriteenuste seadistus ja töötajad ise moodustavad selle Kubernetes cluster !!

Kuidas teie arvates need individuaalselt eraldatud kaunad omavahel suhtlevad?

Vastus peitub Kubernetes Networkingus!

Uute värskenduste saamiseks tellige meie youtube'i kanal ..!

Võrgustiku kontseptsioonidega tuleb lahendada peamiselt 4 probleemi.

  • Konteiner konteinerisuhtlusele
  • Pod to pod Side
  • Teenindusside pakkumine
  • Teenuseväline suhtlus

Lubage mul teile öelda, kuidas ülaltoodud probleemid Kubernetes Networkinguga lahendatakse.

Kubernetes Networking

Kaunade, teenuste ja välisteenuste omavaheline suhtlus klastri teenustega toob sisse Kubernetese võrgu kontseptsiooni.

Nii et lubage mul teie mõistmise huvides jagada mõisted järgmisteks.

  • Kaunad ja konteinerite suhtlus
  • Teenused
  • Välise ühenduse loomine teenustega sissetuleva võrgu kaudu

Kaunad ja konteinerite suhtlus

Enne kui ma ütlen teile, kuidas kaunad suhtlevad, lubage mul teile tutvustada, mis on kaunad?

Kaunad

Kaunad on Kubernetes-rakenduste põhiüksused, mis koosnevad ühest või mitmest konteinerist, mis on eraldatud samale hostile võrgupinu ja muude ressursside jagamiseks. Niisiis tähendab see, et kõik pakendis olevad konteinerid võivad kohaliku hostiga teisteni jõuda.

Lubage mul nüüd lühidalt teada saada, kuidas need kaunad suhtlevad?

Suhtlust on kahte tüüpi. The sõlmedevaheline suhtlus ja sõlmesisene suhtlus.

Alustame siis sõlmesisesest suhtlusest, kuid enne seda lubage mul teile tutvustada pod-võrgu komponente.

Intersõlm võrgu all

Sõlmesisene pod-võrk on põhimõtteliselt sama podi kahe erineva sõlme vaheline suhtlus. Lubage mul selgitada teile ühe näitega.

Oletame, et pakett liigub pod1-lt pod2-le.

  • Pakett lahkub Pod 1 võrgust aadressil eth0 ja siseneb juurvõrku aadressil veth0
  • Seejärel liigub pakett Linuxi sillale (cbr0), mis avastab sihtkoha ARP-päringu abil
  • Nii et kui veth1 omab IP-d, teab sild nüüd, kuhu pakett edastada.

Nüüd lubage mul samamoodi rääkida sõlmedevahelisest pod-suhtlusest.

Interested in Learning Kubernetes?
Sõlmedevaheline võrgu all

Vaatleme kahte sõlme, millel on erinevad võrgu nimeruumid, võrguliidesed ja Linuxi sild.

Oletame nüüd, et pakett liigub pod1-st pod4-ni, mis asub teises sõlmes.

  • Pakett lahkub 1. taskust ja siseneb juurvõrku aadressil veth0
  • Seejärel läheb pakett edasi Linuxi sillale (cbr0), kelle ülesandeks on sihtkoha leidmiseks ARP-taotlus esitada.
  • Kui sild saab aru, et sellel podil pole sihtkoha aadressi, naaseb pakett põhivõrgu liidesesse eth0.
  • Pakett lahkub nüüd sõlmest 1, et leida teisest sõlmest sihtkoht, ja sisestab marsruuditabeli, kes suunab paketi sellesse sõlme, mille CIDR-plokk sisaldab pod4-d.
  • Nüüd jõuab pakett sõlme2 ja siis võtab sild paketi, mis esitab ARP-taotluse, et teada saada, kas veth0-le kuuluv IP.
  • Lõpuks ületab pakett torupaari ja jõuab pod4-ni.

Nii suhtlevad kaunad omavahel. Nüüd lähme edasi ja näeme, kuidas teenused aitavad kaunade suhtlemisel.

Mis on teie arvates teenused?

Teenused

Põhimõtteliselt on teenused ressursitüüp, mis konfigureerib puhverserveri edastama päringud jaotuskomplektile, mis võtab vastu liikluse ja mille määrab valija. Kui teenus on loodud, on talle määratud IP-aadress, mis võtab pordis päringud vastu.

Nüüd on mitmesuguseid teenusetüüpe, mis võimaldavad teil teenust paljastada väljaspool teie klastri IP-aadressi.

Teenuste tüübid

Teenuseid on peamiselt 4 tüüpi.

ClusterIP: See on vaiketeenuse tüüp, mis paljastab teenuse klastri sisemisel IP-l, muutes teenuse kättesaadavaks ainult klastris.

NodePort: See paljastab teenuse iga sõlme IP-s staatilises pordis. Kuna, a KlasterIP teenus, kuhu NodePorti teenus suunab, luuakse automaatselt. NodePorti teenusega saame ühendust võtta väljaspool klastrit.

LoadBalancer: See on teenusetüüp, mis paljastab teenuse väliselt pilveteenuse pakkuja koormuse tasakaalustaja abil. Niisiis luuakse automaatselt teenused NodePort ja ClusterIP, kuhu marsruutib väline koormuse tasakaalustaja.

ExternalName : See teenusetüüp kaardistab teenuse externalName välja tagastades a CNAME rekord selle väärtusega.

Niisiis, poisid, kes olid seotud teenustega Nüüd võite mõelda, kuidas saavad välisteenused nende võrkudega ühenduse luua?

Noh, see pole keegi muu kui Sissepääsuvõrk .

Sissepääsuvõrk

Noh, sissetungivõrk on kõige võimsam viis teenuseid paljastada, kuna see on sissetulevaid ühendusi võimaldavate reeglite kogum, mida saab konfigureerida väljastpoolt teenuseid pakkuma kättesaadavate URL-ide kaudu. Nii toimib see põhimõtteliselt Kubernetes-klastri sisenemispunktina, mis haldab klastri teenustele välist juurdepääsu.

Lubage mul selgitada teile Ingress Network'i toimimist ühe näitega.

Meil on 2 sõlme, millel on pod- ja juurvõrgu nimeruumid koos Linuxi sillaga. Lisaks sellele on meil juurvõrku lisatud ka uus virtuaalne võrguseade flannel0 (võrgupistik).

Nüüd tahame, et pakett voolaks 1. ja 4. vahel.

  • Niisiis, pakett jätab pod1 võrgu aadressile eth0 ja siseneb juurvõrku aadressil veth0.
  • Seejärel antakse see edasi cbr0-le, mis teeb ARP-i taotluse sihtkoha leidmiseks ja seejärel saab teada, et kellelgi selles sõlmes pole sihtkoha IP-aadressi.
  • Niisiis, sild saadab paketi flannel0-le, kuna sõlme marsruuditabel on konfigureeritud flannel0-ga.
  • Nüüd räägib flanellidemon Kubernetese API-serveriga, et teada saada kõiki pod-i IP-sid ja nende vastavaid sõlme, et luua IP-de sõlmede IP-de vastendused.
  • Võrgu pistikprogramm ümbritseb selle paketi UDP paketina koos täiendavate päistega, mis muudavad lähte- ja sihtkoha IP-d oma vastavateks sõlmedeks, ja saadab selle paketi eth0 kaudu.
  • Kuna marsruuditabel juba teab, kuidas liiklust sõlmede vahel suunata, saadab see paketi sihtkohasõlmele2.
  • Pakett saabub sõlme2 eth0 juurde ja läheb tagasi flanellile0, et kapseldada, ja emiteerib selle tagasi juurvõrgu nimeruumi.
  • Jällegi edastatakse pakett Linuxi sillale, et teha ARP-taotlus veth1-le kuuluva IP-i väljaselgitamiseks.
  • Pakett läbib lõpuks juurvõrgu ja jõuab sihtkohta Pod4.

Nii ühendatakse välised teenused sissetungiva võrgu abil. Kui ma rääkisin võrgupistikprogrammidest, lubage mul tutvustada teile saadaolevate populaarsete võrgupistikprogrammide loendit.

Nüüd, kui olen teile Kubernetes Networkingust nii palju rääkinud, lubage mul näidata teile reaalse juhtumi uuringut.

Juhtumianalüüs: rikkuse nõustaja Kubernetes Networking'i abil

Wealth Wizards on veebipõhine finantsplaneerimise platvorm, mis ühendab finantsplaneerimise ja nutika tarkvaratehnoloogia ning pakub taskukohase hinnaga ekspertide nõuandeid.

Väljakutsed

Nüüd oli ettevõtte jaoks äärmiselt oluline kiiresti avastada ja kõrvaldada koodipoolsed nõrkused pilvekeskkonna täieliku nähtavusega, kuid soovis liiklust juhtida juurdepääsupiirangute kaudu.

Niisiis kasutasid nad Kubernetese infrastruktuuri klastrite ettevalmistamise ja juurutamise haldamiseks tööriistade abil, et hallata Kube klastrite mikroteenuste juurutamist ja konfigureerimist.

Nad kasutasid ka Kubernetese võrgupoliitika funktsiooni, mis võimaldas neil liiklusjuhtimist juurdepääsupiirangute kaudu juhtida.

Nüüd oli probleemiks see, et need põhimõtted on orienteeritud rakendustele ja saavad areneda ainult koos rakendustega, kuid nende poliitikate jõustamiseks puudus komponent.

Niisiis, ainus lahendus, mille ettevõte selle jaoks leidis, oli võrgupistikprogrammi kasutamine ja seetõttu hakkasid nad kasutama Weave Net'i.

Lahendus

See võrgupistikprogramm loob virtuaalse võrgu, millel on Kubernetes reeglite haldamiseks ja jõustamiseks võrgupoliitika kontroller. Lisaks sellele ühendab see ka Dockeri konteinerid mitme hosti vahel ja võimaldab nende automaatset avastamist.

Oletame, et teil on klastris töökoormus ja soovite peatada kõik muud klastri töökoormused. Selle saavutamiseks saate luua võrgupoliitika, mis piirab juurdepääsu ja lubab sinna siseneda ainult kindla pordi sissepääsukontrolleri kaudu.

Nüüd haldab pistikprogramm iga Kubernetese sõlme juurutamisel vahelehtede marsruutimist ja tal on juurdepääs IPtable-reeglite manipuleerimiseks. Lihtsamalt öeldes teisendatakse iga reegel IPtable-reeglite kogumiks, kooskõlastatud ja konfigureeritud igas masinas Kubernetese siltide tõlkimiseks.

Hästi, nüüd, kui olete Kubernetes Networkingu kohta nii palju teooriaid läbi teinud, lubage mul näidata teile, kuidas seda praktiliselt tehakse.

Käed peal

Seega, eeldades, et kõik teie olete Kubernetes oma süsteemidesse installinud, on mul stsenaarium, mida näidata.

Oletame, et soovite salvestada toote nime ja toote ID, selleks vajate veebirakendust. Põhimõtteliselt vajate veebirakenduste jaoks ühte konteinerit ja taustaprogrammi jaoks vajate veel ühte konteinerit MySQL-iga ning see MySQL-i konteiner tuleks linkida veebirakenduse konteineriga.

Kuidas oleks, kui täidaksin ülaltoodud näite praktiliselt.

Alustame!

Samm 1: Looge soovitud kataloogis kaust ja muutke selle kausta töökataloogi tee.

mkdir HandsOn cd HandsOn /

2. samm: Nüüd looge veebirakenduse ja MySQL-i andmebaasi jaoks juurutamise YAML-failid.

3. samm: Pärast juurutusfailide loomist juurutage mõlemad rakendused.

kubectl Apply -f webapp.yml kubectl Apply -f mysql.yml

Samm 3.1: Kontrollige mõlemat juurutust.

kubectl saada kasutusele

4. samm: Nüüd peate looma teenused mõlema rakenduse jaoks.

kubectl Apply -f veebiteenus.yml kubectl Apply -f sqlservice.yml

4.1. Samm: Kui teenused on loodud, juurutage teenused.

Samm 4.2: Kontrollige, kas teenused on loodud või mitte.

kubectl saada teenust

5. samm: Nüüd kontrollige töötavate kaunade konfiguratsiooni.

kubectl saada kaunad

6. samm: Minge veebirakenduse podi konteinerisse.

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

6.1. Samm : Nüüd muutke serveri nimi kohalikust hostist SQL-i teenuse nimeni, mis on webapp-sql1 ”Antud juhul ja $ parool alates kuni ' edureka ”. Samuti täitke kõik vajalikud andmebaasi üksikasjad ja salvestage fail index.php klaviatuuri otsetee abil Ctrl + x ja pärast seda vajutage Y salvestamiseks vajutage sisenema .

7. samm: Minge nüüd podis olevasse MySQL-i konteinerisse.

kubectl exec it container_id bash

7.1. Samm: Hankige juurdepääs MySQL-i konteineri kasutamiseks.

mysql -u root -p edureka

Kus -u tähistab kasutajat ja -p on teie masina parool.

Samm 7.2: Looge MySQL-is andmebaas, mida kasutatakse andmete saamiseks veebirakendusest.

LOO ANDMEBAAS ProductDetails

7. samm: Kasutage loodud andmebaasi.

KASUTAGE toote üksikasju

Samm 7.4: Looge selles andmebaasis MySQL-is tabel, mida kasutatakse andmete saamiseks veebirakendusest.

CREATE TABLE tooted (toote_nimi VARCHAR (10), product_id VARCHAR (11))

Samm 7.5: Nüüd väljuge käsku kasutades ka MySQL-i konteinerist väljumine .

8. samm: Kontrollige pordinumbrit, millel teie veebirakendus töötab.

kubectl saada teenuseid

8.1. Samm: Nüüd avage veebirakendus sellele määratud pordinumbril.

9. samm: Kui klõpsate nupul Esita päring , minge sõlme, milles teie MySQL-teenus töötab, ja minge siis konteinerisse.

See näitab kõigi loenditoodete toodangut, mille üksikasjad olete täitnud.

Interested in Learning Kubernetes?

Kui leiate, et see Kubernetes Networking ajaveeb on asjakohane, vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma.