Kubernetes

Kubernetes Ingress

Kubernetes Ingress
Kubernetes má veľa pohyblivých častí. Toto sa dá očakávať od každého modelu určeného pre distribuované výpočty. Aby sme preskúmali, čo nám Kubernetes Ingress pomáha dosiahnuť, najskôr si pripomeňme niekoľko dôležitých podrobností o typickom klastri Kubernetes:

  1. Aplikácia nasadená na klastri Kubernetes beží ako kolekcie podov.
  2. Pody sú v podstate kontajnery, ktoré sú naplánované na viacerých uzloch.
  3. Uzlami môžu byť fyzické servery alebo virtuálne počítače ponúkané poskytovateľom hostenia. Je zrejmé, že môžete tiež Kubernetes na lokálnom serveri, ak si to prajete.
  4. Každý modul má jedinečnú adresu IP.
  5. Vaša aplikácia je rozdelená do mnohých podkomponentov, ktoré sa často označujú ako mikroslužby.
  6. Pre každú mikroslužbu vašej aplikácie má zodpovedajúcu službu v Kubernetes.
  7. V kontexte Kubernetes, a Služby vystavuje kolekciu toboliek zvyšku klastra ako jednu abstrakciu. Jedna virtuálna IP.
  8. To pomáha jednej službe vašej aplikácie komunikovať s inou službou. Je to abstrakcia, ktorá vám umožňuje osloviť zbierku toboliek, a nie špecifikovať adresu IP tobolky, kedykoľvek s ňou chcete hovoriť.
  9. Služba Kubernetes funguje aj ako nástroj na vyrovnávanie zaťaženia pre všetky pody, ktoré predstavuje. Prenos je rovnomerne rozložený na všetky uzly.

Zatiaľ je všetko dobré. Každá služba môže hovoriť s inou službou. Táto komunikácia je možná v rámci celého klastra Kubernetes

Odhaľujúce služby

Ak strom spadne do lesa a nikto naokolo ho nebude počuť, vydá zvuk?

Podobne, ak vaša aplikácia neslúži účelu mimo klastra Kubernetes, záleží skutočne na tom, či je alebo nie je váš klaster dobre zostavený? Pravdepodobne nie.

Aby sme vám poskytli konkrétny príklad, povedzme, že máme klasickú webovú aplikáciu zloženú z frontendu napísaného v Nodejs a backendu napísaného v Pythone, ktorý používa MySQL databázu. Vo svojom klastri Kubernetes nasadíte dve zodpovedajúce služby.

Vytvoríte Dockerfile so špecifikáciou, ako zbaliť softvér frontendu do kontajnera, a podobne zabalíte svoj backend. Ďalej vo svojom klastri Kubernetes nasadíte dve služby, z ktorých každá bude mať za sebou sadu podov. Webová služba môže hovoriť s databázovým klastrom a naopak.

Kubernetes však nevystavuje žiadnu z týchto služieb (ktoré sú základným koncovým bodom protokolu HTTP) zvyšku sveta. Ako sa uvádza v oficiálnych dokumentoch:

Predpokladá sa, že služby majú virtuálne adresy IP smerovateľné iba v rámci siete klastrov

To je z bezpečnostného hľadiska úplne rozumné, vaše služby môžu medzi sebou hovoriť, ale klaster neumožňuje externým entitám hovoriť so službami priamo. Napríklad s vaším databázovým serverom môže hovoriť iba váš webový server a nikto iný nemôže odosielať žiadosti do databázovej služby.

Problém nastáva, keď sa pozrieme na prípad použitia frontendovej služby. Musí byť vystavený zvyšku verejnosti, aby koncoví používatelia mohli používať vašu aplikáciu. Takéto Služby vystavujeme pomocou Kubernetes Ingress.

Kubernetes Ingress

Prienik odhalí trasy HTTP a HTTPS z vonkajšej strany klastra do služieb v rámci klastra. Pravidlá smerovania môžete ovládať definovaním prostriedku Kubernetes Ingress. Ale robí toho oveľa viac. Vystavenie jednej služby sa dá dosiahnuť pomocou rôznych iných alternatív, ako je NodePort alebo Load Balancers, ale tieto zariadenia nemajú funkcie, ktoré sú dostatočne sofistikované pre modernú webovú aplikáciu.

Funkcie ako vystavenie viacerých aplikácií na jednej IP, definovanie trás atď.

Poďme si teda porozumieť týmto funkciám vo zvyšku článku:

Single Service Ingress

Toto je najjednoduchšia verzia vystavenia jednej služby, ako je napr. Webový front s IP (alebo doménovým menom) a predvolenými portami HTTP a HTTPS (i.e. 80 a 443).

Single Fanout

Toto je nastavenie vniknutia, ktoré vám umožňuje povoliť prichádzajúci prenos na jednu IP a smerovať ho do viacerých služieb.

Skladá sa to z:

Single fanout je prípad, keď sa jedna IP používa pre viac služieb. Služby môžu byť na rôznych cestách v URI ako foo.bar.com / admin môže byť služba pre správcov a foo.bar.com / home môže byť služba, ktorá generuje domovskú stránku každého používateľa.

Vstupný port bude vždy 80 alebo 443, ale port, na ktorom sú spustené služby (vo vnútri klastra), sa môže dosť líšiť.

Tento druh vniknutia nám pomáha minimalizovať počet nástrojov na vyrovnávanie zaťaženia v klastri, pretože v podstate funguje ako jeden.

Virtuálny hosting založený na mene

Verejné adresy IP sú konečné. Sú tiež dosť drahé. Myšlienka virtuálneho hostingu na základe názvu je staršia ako Kubernetes. Podstatou je to, že nasmerujete záznamy DNS na rôzne webové stránky, ako je ww1.príklad.com a 2.sv.v.príklad.com na rovnakú IP adresu. Server bežiaci na tejto adrese IP uvidí prichádzajúcu požiadavku a ak je názov hostiteľa uvedený v žiadosti pre ww1.príklad.com potom slúži na tento web pre vás, a ak ww2.príklad.com je požadované, potom je doručené.

V kontexte Kubernetes môžeme spustiť dve služby bežiace napríklad na porte 80 a vystaviť ich obe na jednej IP adrese pomocou vniknutia aj portu 80. V bode vniknutia je prevádzka 1. svetovej vojny.príklad.com bude oddelený od prenosu pre 2.sv.v.príklad.com. Odtiaľ pochádza aj názov založený na virtuálnom hostingu.

Záver

Ingres v Kubernetes je dosť prepracovaný, aby bol obsiahnutý v jednom príspevku. Existuje celá škála prípadov použitia a rôzne radiče príchodu, ktoré pridajú funkciu príchodu do vášho klastra. Odporúčal by som začať s Nginx Ingress Controller.

Ďalšie podrobnosti a technické údaje nájdete v oficiálnej dokumentácii.

Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...
Ovládajte a spravujte pohyb myši medzi viacerými monitormi v systéme Windows 10
Správca myši s duálnym displejom umožňuje ovládať a konfigurovať pohyb myši medzi viacerými monitormi spomalením jeho pohybu blízko hranice. Windows 1...
WinMouse vám umožňuje prispôsobiť a vylepšiť pohyb ukazovateľa myši na počítači so systémom Windows
Ak chcete vylepšiť predvolené funkcie kurzora myši, použite freeware WinMouse. Pridáva ďalšie funkcie, ktoré vám pomôžu vyťažiť zo svojej skromnej myš...