Kubernetes

Kubernetes Ingress

Kubernetes Ingress
A Kubernetes sok mozgó alkatrésszel rendelkezik. Ez elvárható bármely elosztott számítástechnikai modelltől. Annak feltárása érdekében, hogy a Kubernetes Ingress mit segít elérni, előbb összegezzünk néhány releváns részletet egy tipikus Kubernetes-fürtről:

  1. A Kubernetes-fürtön telepített alkalmazás gyűjteményként működik.
  2. A hüvelyek lényegében több csomópontra ütemezett tárolók.
  3. A csomópontok lehetnek fizikai kiszolgálók vagy virtuális gépek, amelyeket a tárhelyszolgáltató kínál. Nyilvánvaló, hogy Kuberneteseket helyszíni szerveren is használhatja, ha úgy kívánja.
  4. Minden Pod egyedi IP-címmel rendelkezik.
  5. Az alkalmazás sok alkomponensre van felosztva, amelyeket gyakran mikroszolgáltatásnak neveznek.
  6. Az alkalmazás minden egyes mikroszolgáltatásához rendelkezzen megfelelő szolgáltatással a Kubernetesben.
  7. A Kubernetes összefüggésében a Szolgáltatás a hüvelyek gyűjteményét egyetlen absztrakciónak teszi ki a fürt többi része előtt. Egyetlen virtuális IP.
  8. Ez segít az alkalmazás egyik szolgáltatásának kommunikálni egy másik szolgáltatással. Ez egy absztrakció, amely lehetővé teszi a podok gyűjteményének címzését ahelyett, hogy megadná a pod IP-címét, bármikor, amikor beszélni szeretne vele.
  9. A Kubernetes szolgáltatás terheléselosztóként is működik az általa képviselt összes csomag számára. A forgalom egyenletesen oszlik el az összes csomóponton.

Eddig jó. Minden szolgáltatás beszélhet egy másik szolgáltatással. Ez a kommunikáció az egész Kubernetes-fürtön lehetséges

Szolgáltatások bemutatása

Ha egy fa leesik egy erdőben, és senki nincs a közelben, hogy meghallja, hangot ad-e?

Hasonló megjegyzés: ha az alkalmazás nem a Kubernetes fürtön kívüli célt szolgál, akkor valóban számít-e, hogy a fürt jól van-e felépítve? Valószínűleg nem.

Konkrét példaként tegyük fel, hogy van egy klasszikus webalkalmazásunk, amely egy Nodejs-be írt kezelőfelületből és egy Python-ba írt háttérből áll, amely MySQL adatbázist használ. Két megfelelő szolgáltatást telepít a Kubernetes-fürtjére.

Készít egy Dockerfile-t, amely meghatározza, hogyan kell csomagolni a frontend szoftvert egy konténerbe, és hasonlóképpen csomagolja a háttérprogramot is. Ezután a Kubernetes-fürtben két szolgáltatást telepít, amelyek mindegyike egy sor podot futtat maga mögött. A webszolgáltatás képes kommunikálni az adatbázis-fürttel és fordítva.

A Kubernetes azonban nem tárja fel ezen szolgáltatások (amelyek elengedhetetlen HTTP-végpontok) egyikét sem a világ többi részének. A hivatalos dokumentumok szerint:

A szolgáltatásokat feltételezzük, hogy a virtuális IP-k csak a fürt hálózaton belül irányíthatók

Ez biztonsági szempontból teljesen ésszerű, a szolgáltatásai képesek egymással beszélgetni, de a fürt nem engedi, hogy külső entitások közvetlenül beszéljenek a szolgáltatásokkal. Például csak a webes kezelőfelülete tud beszélni az adatbázis-szolgáltatással, és senki más nem is küldhet kéréseket az adatbázis-szolgáltatáshoz.

A probléma akkor merül fel, ha megvizsgáljuk a frontend szolgáltatás használatát. Ki kell tennie a többi nyilvánosság számára, hogy a végfelhasználók használhassák az alkalmazást. Az ilyen szolgáltatásokat a Kubernetes Ingress segítségével tesszük elérhetővé.

Kubernetes Ingress

Az Ingress a fürtön kívülről a fürtön belüli szolgáltatások felé tárja a HTTP és HTTPS útvonalakat. Az útválasztási szabályokat a Kubernetes Ingress erőforrás meghatározásával vezérelheti. De ennél sokkal többet tesz. Egyetlen szolgáltatás kitettsége elérhető más alternatívák, például a NodePort vagy a Terheléselosztók használatával, de ezek a szolgáltatások nem rendelkeznek olyan funkciókkal, amelyek elég kifinomultak egy modern webalkalmazáshoz.

Olyan funkciók, mint több alkalmazás egy IP-n való megjelenítése, útvonalak meghatározása stb.

Tehát értsük meg a cikk hátralévő részében ezeket a funkciókat:

Egyetlen szolgáltatás behatolása

Ez a legegyszerűbb változata egyetlen szolgáltatásnak, például egy webes felületnek IP-vel (vagy tartománynévvel), valamint az alapértelmezett HTTP és HTTPS portokkal (i.e, 80 és 443).

Egyetlen Fanout

Ez egy behatolási beállítás, amely lehetővé teszi, hogy a bejövő forgalmat egyetlen IP-re engedélyezze, és több szolgáltatáshoz irányítsa.

A következőkből áll:

Az egyetlen fanout az az eset, amikor egyetlen IP-t használnak több szolgáltatáshoz. A szolgáltatások különböző utakon lehetnek az URI-ban, például foo.rúd.A com / admin szolgáltatás lehet az adminisztrátorok és a foo számára.rúd.A com / home lehet az a szolgáltatás, amely minden felhasználó honlapját létrehozza.

A behatolási port mindig 80 vagy 443 lesz, de az a port, ahol a szolgáltatások futnak (a fürtön belül), meglehetősen eltérhet.

Ez a fajta behatolás segít minimalizálni a terheléselosztók számát a fürtben, mivel lényegében úgy működik, mint egy.

Név alapú virtuális tárhely

A nyilvános IP-címek végesek. Ezek is meglehetősen drágák. A névalapú virtuális tárhely ötlete régebbi, mint a Kubernetes. Ennek lényege, hogy a különböző webhelyek, például a ww1 DNS-rekordjait mutatja meg.példa.com és ww2.példa.com ugyanarra az IP-címre. Az az IP-címen futó kiszolgáló látni fogja a bejövő kérést, és ha a kérelemben említett gazdagép neve ww1.példa.com, akkor az Ön webhelyét szolgálja, és ha ww2.példa.com-t kérik, akkor azt kiszolgálják.

A Kubernetes összefüggésében két olyan szolgáltatást futtathatunk, amelyek mondjuk a 80-as porton futnak, és mindkettőt egyetlen IP-címre tesszük ki, a 80-as port behatolásával is. A bejutási ponton a ww1 forgalma.példa.com elválik a ww2 forgalmától.példa.com. Ezért a név alapú virtuális tárhely kifejezés.

Következtetés

A Kubernetes behatolása meglehetősen kifinomult, hogy egyetlen bejegyzéssel foglalkozzon vele. Különböző felhasználási esetek léteznek számára, és számos olyan Ingress vezérlő, amelyek hozzáadják az Ingress funkcionalitást a fürtjéhez. Azt javaslom, hogy kezdje az Nginx Ingress Controller-rel.

További részletekért és specifikációkért kövesse a hivatalos dokumentációt is.

Az X-Mouse Button Control segítségével az egér gombjait másképp alakíthatja át a különböző szoftvereknél
Lehet, hogy szüksége van egy eszközre, amely megváltoztathatja az egér vezérlését minden használt alkalmazással. Ebben az esetben kipróbálhatja az úgy...
Microsoft Sculpt Touch vezeték nélküli egér áttekintés
Nemrég olvastam a Microsoft Sculpt Touch vezeték nélküli egér és úgy döntött, hogy megveszi. Egy ideig használat után úgy döntöttem, hogy megosztom ve...
AppyMouse képernyős Trackpad és egérmutató a Windows táblagépekhez
A táblagép-felhasználók gyakran hiányolják az egérmutatót, különösen akkor, ha szokták használni a laptopokat. Az érintőképernyős okostelefonok és táb...