Kubernetes

Kubernetes Ingress

Kubernetes Ingress
Kubernetes on palju liikuvaid osi. Seda on oodata igalt hajutatud arvutustehnika jaoks mõeldud mudelilt. Et uurida, mida Kubernetes Ingress aitab meil saavutada, toome kõigepealt kokku mõned asjakohased üksikasjad tüüpilise Kubernetes-klastri kohta:

  1. Kubernetese klastrisse juurutatud rakendus töötab kogumikuna.
  2. Kaunad on sisuliselt konteinerid, mis on ajastatud mitme sõlme vahel.
  3. Sõlmed võivad olla teie hostiteenuse pakkuja pakutavad füüsilised serverid või VM-id. Ilmselt võite Kubernetese ka kohapealses serveris, kui soovite.
  4. Igal Podil on ainulaadne IP-aadress.
  5. Teie rakendus on jagatud paljudeks alakomponentideks, mida sageli nimetatakse mikroteenusteks.
  6. Teie rakenduse iga mikroteenuse jaoks on Kubernetes vastav teenus.
  7. Kubernetese kontekstis a Teenus paljastab kaunade kogu ülejäänud klastris ühe abstraktsioonina. Üks virtuaalne IP.
  8. See aitab teie rakenduse ühel teenusel suhelda teise teenusega. See on abstraktsioon, mis võimaldab teil alati kaunade IP-aadressi määramise asemel adresseerida kaunade kogu.
  9. Kubernetese teenus toimib ka kõigi selle esindatavate kaunade koormuse tasakaalustajana. Liiklus jaotub kõigi sõlmede vahel ühtlaselt.

Siiamaani on kõik korras. Iga teenus võib rääkida teise teenusega. See suhtlus on võimalik kogu Kubernetese klastris

Teenuste eksponeerimine

"Kui puu kukub metsa ja keegi pole läheduses, kes seda kuuleks, kas see annab häält?

Sarnaselt võib öelda, et kui teie rakendus ei täida eesmärki väljaspool Kubernetese klastrit, siis kas on tõesti oluline, kas teie klaster on hästi ehitatud või mitte? Ilmselt mitte.

Konkreetse näite saamiseks oletame, et meil on klassikaline veebirakendus, mis koosneb Nodejs-s kirjutatud esiosast ja Pythonis kirjutatud backendist, mis kasutab MySQL-i andmebaasi. Paigaldate oma Kubernetes-klastrisse kaks vastavat teenust.

Teete Dockerfile'i, milles täpsustatakse, kuidas esipaneeli tarkvara konteinerisse pakkida, ja sarnaselt pakendate oma taustaprogrammi. Järgmisena juurutate oma Kubernetes-klastris kaks teenust, millest igaüks töötab selle taga hulga kaunadega. Veebiteenus saab rääkida andmebaasiklastriga ja vastupidi.

Kuid Kubernetes ei paljasta ühtegi neist teenustest (mis on olulised HTTP-lõpp-punktid) ülejäänud maailmale. Nagu ametlikes dokumentides öeldud:

"Eeldatakse, et teenustel on virtuaalsed IP-d marsruutitavad ainult klastrivõrgus

See on turvalisuse seisukohast täiesti mõistlik, teie teenused saavad omavahel rääkida, kuid klaster ei luba välistel üksustel otse teenustega rääkida. Näiteks saab andmebaasiteenusega suhelda ainult teie veebi kasutajaliides ja keegi teine ​​ei saa isegi andmebaasiteenusele päringuid saata.

Probleem tekib siis, kui vaatame kasutajateenuse kasutusjuhtumit. See peab olema avatud ülejäänud avalikkusele, et lõppkasutajad saaksid teie rakendust kasutada. Sellised teenused paljastame Kubernetes Ingressi abil.

Kubernetes Ingress

Ingress paljastab HTTP ja HTTPS marsruudid väljaspool klastrit klastris asuvatele teenustele. Marsruutimisreegleid saate juhtida, määrates ressursi Kubernetes Ingress. Kuid see teeb palju enamat. Ühe teenuse eksponeerimise saab saavutada mitmesuguste muude alternatiivide abil, näiteks NodePort või Load Balancers, kuid neil teenustel pole funktsioone, mis oleksid kaasaegse veebirakenduse jaoks piisavalt keerukad.

Sellised funktsioonid nagu mitme rakenduse eksponeerimine ühel IP-l, marsruutide määratlemine jne.

Nii et mõistame neid ülejäänud artikli funktsioone:

Ühekordse teenuse sissepääs

See on lihtsaim versioon ühe teenuse, näiteks veebi esiotsa, IP-ga (või domeeninimega) ning HTTP- ja HTTPS-vaikepordidega (i.e, 80 ja 443).

Üksik Fanout

See on sissepääsu seadistus, mis võimaldab teil lubada sissetulevat liiklust ühele IP-le ja suunata see mitmesse teenusesse.

See koosneb:

Ühekordne väljatõmbamine on juhtum, kui ühte teenust kasutatakse mitme teenuse jaoks. Teenused võivad olla URI-l erinevatel radadel nagu foo.baar.com / admin võib olla administraatorite ja foo teenus.baar.com / home võib olla teenus, mis loob iga kasutaja avalehe.

Sisenemisport on alati 80 või 443, kuid sadam, kus teenuseid pakutakse (klastri sees), võib üsna palju erineda.

Selline sissetung aitab meil klastris koormuse tasakaalustajate arvu minimeerida, kuna see toimib põhimõtteliselt nagu üks.

Nimepõhine virtuaalne hostimine

Avalikud IP-aadressid on piiratud. Need on ka üsna kallid. Nimepõhise virtuaalse majutuse idee on vanem kui Kubernetes. Põhimõte on selles, et osutate erinevate veebisaitide, näiteks WW1, DNS-kirjetele.näide.com ja WW2.näide.com samale IP-aadressile. Sellel IP-aadressil töötav server näeb sissetulevat päringut ja kui taotluses nimetatud hosti nimi on ww1.näide.com, siis teenib see teie jaoks seda veebisaiti ja kui ww2.näide.com palutakse, siis seda ka serveeritakse.

Kubernetese kontekstis saame käitada kahte teenust, mis töötavad näiteks pordis 80, ja paljastada mõlemad ühele IP-aadressile, kasutades ka pordi 80 sissepääsu. Sissepääsupunktis w1 liiklus.näide.com eraldub WW2 liiklusest.näide.com. Sellest tuleneb ka nimepõhine virtuaalne hostimine.

Järeldus

Kubernetesesse sissetung on üsna keeruline, et seda saaks kajastada ühes postituses. Selle jaoks on mitmesuguseid kasutusjuhtumeid ja mitmesuguseid sissepääsu kontrollereid, mis lisavad teie klastrisse sissetungimise funktsionaalsuse. Ma soovitaksin alustada Nginx Ingress Controlleriga.

Lisateavet ja spetsifikatsioone leiate ka ametlikust dokumendist.

Rakenduse AppyMouse ekraanipaneel ja hiirekursor Windowsi tahvelarvutitele
Tahvelarvutite kasutajad tunnevad hiirekursorit sageli puudust, eriti kui neil on kombeks sülearvuteid kasutada. Puutetundliku ekraaniga nutitelefonid...
Hiire keskmine nupp ei tööta Windows 10-s
The hiire keskmine nupp aitab teil sirvida pikki rohke andmega veebisaite ja ekraane. Kui see peatub, siis lõpuks kasutate kerimiseks klaviatuuri, mis...
Kuidas muuta hiire vasakut ja paremat nuppu Windows 10 PC-s
On üsna tavaline, et kõik arvutihiirte seadmed on ergonoomiliselt mõeldud parempoolsete kasutajate jaoks. Kuid on olemas hiire seadmeid, mis on spetsi...