Ako používať HAProxy ako kontrolér vstupu v prostredí Kubernetes

Ako Pouzivat Haproxy Ako Kontroler Vstupu V Prostredi Kubernetes



Kubernetes je ideálnou voľbou pre každého, kto hľadá automatizáciu nasadenia, škálovania a správy kontajnerových aplikácií. V prostredí Kubernetes je kontrolér vstupu nevyhnutný pri správe externého prístupu k akejkoľvek klastrovej službe Kubernetes. Ingress controller funguje ako vstupný priestor pre externú prevádzku, ktorá vám umožňuje definovať smerovanie a ako chcete riadiť prevádzku k službe. Môžete použiť rôzne ovládacie prvky vstupu, ale v tomto prípade sa zameriame na HAProxy a použijeme ho na implementáciu pravidiel, ktoré definujeme v našom zdroji vstupu.

Čo je Ingress Controller?

Kontrolér vstupu je komponent, ktorý umožňuje používateľom spravovať a kontrolovať prístup k službám v rámci ich klastra Kubernetes. Regulátor vstupu má dva kľúčové prvky:

  1. Zdroj Ingress – Ide o objekt Kubernetes API, ktorý definuje pravidlá pre smerovanie prevádzky služieb v klastri na základe zadaného názvu hostiteľa a ciest.
  2. Ingress Controller – Ide o softvérový komponent, ako napríklad HAProxy, Traefik alebo NGINX, ktorý implementuje pravidlá špecifikované v zdroji vstupu. Konfiguruje nástroj na vyvažovanie záťaže tak, aby spracoval prevádzku na základe zmien vykonaných na vstupných objektoch.

Ako používať HAProxy ako kontrolér vstupu v prostredí Kubernetes

Keď pochopíte, čo je kontrolér vstupu a prečo ho potrebujete, ďalšou úlohou je pokryť kroky na jeho použitie. V našom prípade sme nastavili HAProxy ako náš kontrolór vstupu podľa poskytnutých krokov.







N/B: Uistite sa, že máte svoj klaster Kubernetes v prevádzke. Potom postupujte nasledovne.



Krok 1: Spustite svoj Kubernetes Cluster
Existujú rôzne spôsoby nastavenia a spustenia klastra Kubernetes. Pre túto príručku používame Minikube. Je to nástroj, ktorý ponúka zjednodušený spôsob nasadenia Kubernetes vo virtuálnom počítači alebo Docker, najmä ak máte svoje Kubernetes lokálne na svojom počítači.



Pozrite si Dokumentácia Minikube na inštalačných príkazoch, ktoré sa majú použiť pre vašu platformu. V tomto prípade používame stabilnú architektúru Linuxu „x64“ a spúšťame nasledujúce príkazy:





$ curl -IT https: // storage.googleapis.com / minikube / vydania / najnovšie / minikube-linux-amd64
$ sudo Inštalácia minikube-linux-amd64 / usr / miestne / kôš / minikube

Prvý príkaz získa najnovší stabilný binárny súbor Minikube, zatiaľ čo druhý príkaz nainštaluje a presunie binárny súbor na zadanú cestu.

Po nainštalovaní Minikube ho spustite, aby ste vyvolali klaster.



$ minikube štart

Potom musíte mať nainštalovaný kubectl na prístup ku klastru. Môžete však použiť verziu kubectl, ktorá je dostupná s Minikube. Napríklad, ak chcete skontrolovať podrobnosti o bežiacich moduloch, spustite príkaz „kubectl“ takto:

$ minikube kubectl -- dostať strúčiky -A

Týmto spôsobom nemusíte mať nainštalovaný kubectl. (–) signalizuje, že príkazy sú pre kubectl, nie pre Minikube.

Krok 2: Vytvorte priestor názvov
Druhý krok zahŕňa vytvorenie vyhradeného menného priestoru pre kontrolér vstupu. Menný priestor sme pomenovali ako „haproxy-controller“.

$ minikube kubectl vytvoriť menný priestor haproxy-ovládač

Krok 3: Vytvorte a nasaďte HAProxy Ingress Controller
Spôsob vytvorenia kontroléra vstupu závisí od toho, čo chcete dosiahnuť. Môžete napríklad vytvoriť kontrolér vstupu HAProxy na smerovanie prenosu HTTP v závislosti od požadovaného názvu hostiteľa. V takom prípade začnite prístupom k vášmu serveru DNS a vytvorením záznamu „A“ na mapovanie názvu cieľového hostiteľa do vášho klastra.

Keď budete mať správny záznam „A“, vytvorte súbor YAML kontroléra vstupu, ako je znázornené na nasledujúcom obrázku. V prvej časti sme vytvorili zdroj nasadenia, ktorý ako náš príklad používa obrázok kontajnera Docker „jmalloc/echo-server“.

V druhej časti súboru YAML sme vytvorili prostriedok služby, ktorý sa mapuje na základe názvu hostiteľa, ktorý je požadovaný v kontroléri vstupu, ktorý je vytvorený v kroku 4.

Uložte súbor a nasaďte ho do svojho klastra pomocou kubectl. Na Minikube kubectl odkazujeme spustením nasledujúceho príkazu pre náš prípad. Náš kontrolér vstupu HAProxy je „linuxhint-jmaildeployment.yaml“.

$ minikube kubectl -- uplatniť -f < názov súboru >

Keď získate výstup, ktorý ukazuje, že služba bola vytvorená, môžete ďalej overiť, či bola nasadená, pomocou nasledujúceho príkazu:

$ minikube kubectl -- dostať strúčiky --namespace haproxy-ovládač

Uistite sa, že používate správny priestor názvov, ktorý ste vytvorili v kroku 1. Dostanete výstup, ktorý potvrdí, že služba je dostupná, čo znamená, že nasadenie bolo úspešné.

Krok 4: Vytvorte a nasaďte Ingress Resource
Vytvorte ďalší súbor YAML, ktorý funguje ako vstupný zdroj, ktorý obsahuje pravidlá, ako má HAProxy smerovať vašu prevádzku. Uistite sa, že používate správny názov domény (hostiteľ), na ktorý zacieľujete, a upravte názov a požadovaný port tak, aby prijímali prichádzajúcu prevádzku.

Uložte súbor prostriedkov vstupu HAProxy a nasaďte ho tak, ako sme to urobili s radičom.

$ minikube kubectl -- uplatniť -f < názov súboru >

Náš vstupný zdroj nazývame „linuxhint-ingresscontroller.yaml“.

To je všetko! Pomocou nasledujúceho príkazu môžete overiť, či váš kontrolér vstupu HAProxy funguje, a to kontrolou portu, ktorý je priradený k NodePort.

$ minikube kubectl -- získajte službu haproxy-kubernetes-ingress --namespace haproxy-ovládač

V tomto prípade je jej priradený port 32448. Pomocou portu môžete pristupovať k vytvorenej službe a skontrolovať jej stav.

Vďaka tomu sa vám podarilo použiť HAProxy ako kontrolór vstupu v prostredí Kubernetes.

Záver

Kontrolér vstupu vám umožňuje definovať, ako zaobchádzať s návštevnosťou vášho klastra na základe pravidiel, ktoré sú definované vo vašom súbore prostriedkov vstupu. HAProxy je spoľahlivý kontrolér vstupu, ktorý môžete použiť v klastri Kubernetes, a tento príspevok sa zaoberal krokmi, ktoré by ste mali pri jeho používaní dodržiavať. Vyskúšajte to a užívajte si používanie HAProxy ako kontroléra vstupu.