Kako koristiti HAProxy kao ulazni kontroler u Kubernetes okruženju

Kako Koristiti Haproxy Kao Ulazni Kontroler U Kubernetes Okruzenju



Kubernetes je idealna opcija za svakoga tko želi automatizirati implementaciju, skaliranje i upravljanje kontejnerskom aplikacijom. U Kubernetes okruženju, ulazni kontroler neophodan je za upravljanje vanjskim pristupom bilo kojoj usluzi Kubernetes klastera. Ulazni kontroler djeluje kao ulazni prostor za vanjski promet koji vam omogućuje da definirate usmjeravanje i način na koji želite kontrolirati promet prema usluzi. Možete koristiti različite ulazne kontrole, ali u ovom ćemo se slučaju usredotočiti na HAProxy i koristiti ga za implementaciju pravila koja smo definirali u našem ulaznom resursu.

Što je Ingress Controller?

Ulazni kontroler je komponenta koja korisnicima omogućuje upravljanje i kontrolu pristupa uslugama unutar njihovog Kubernetes klastera. Ulazni kontroler ima dva ključna elementa:

  1. Resurs Ingress – To je Kubernetes API objekt koji definira pravila za usmjeravanje prometa usluga u klasteru na temelju navedenog naziva hosta i staza.
  2. Ulazni kontroler – To je softverska komponenta kao što je HAProxy, Traefik ili NGINX koja implementira pravila navedena u ulaznom resursu. Konfigurira balanser opterećenja za rukovanje prometom na temelju promjena napravljenih na ulaznim objektima.

Kako koristiti HAProxy kao ulazni kontroler u Kubernetes okruženju

Nakon što ste razumjeli što je ulazni kontroler i zašto vam je potreban, sljedeći zadatak je obraditi korake za njegovu upotrebu. Za naš slučaj, postavili smo HAProxy kao naš ulazni kontroler slijedeći navedene korake.







N/B: Provjerite je li vaš Kubernetes klaster aktivan. Zatim postupite na sljedeći način.



Korak 1: Pokrenite svoj Kubernetes klaster
Postoje različiti načini postavljanja i pokretanja Kubernetes klastera. Za ovaj vodič koristimo Minikube. To je alat koji nudi jednostavan način postavljanja Kubernetesa unutar virtualnog stroja ili Dockera, posebno ako svoj Kubernetes imate lokalno na svom stroju.



Odnosi se na Minikube dokumentacija na instalacijske naredbe koje ćete koristiti za svoju platformu. U ovom slučaju, pokrećemo stabilnu 'x64' Linux arhitekturu i izvodimo sljedeće naredbe:





$ kovrča -TO https: // storage.googleapis.com / minikube / oslobađanja / najnoviji / minikube-linux-amd64
$ sudo instalirati minikube-linux-amd64 / usr / lokalni / kanta za smeće / minikube

Prva naredba preuzima najnoviju stabilnu Minikube binarnu datoteku, dok druga naredba instalira i premješta binarnu datoteku na navedenu stazu.

Nakon što instalirate Minikube, pokrenite ga da biste pokrenuli klaster.



$ minikube početak

Zatim morate imati instaliran kubectl za pristup klasteru. Međutim, možete koristiti verziju kubectl koja je dostupna s Minikubeom. Na primjer, da biste provjerili pojedinosti pokrenutih mahuna, izvršite naredbu “kubectl” na sljedeći način:

$ minikube kubectl -- dobiti mahune -A

Na taj način ne morate imati instaliran kubectl. (–) signalizira da su naredbe za kubectl, a ne za Minikube.

Korak 2: Stvorite imenski prostor
Drugi korak uključuje stvaranje namjenskog prostora imena za ulazni kontroler. Imenski prostor nazvali smo 'haproxy-controller'.

$ minikube kubectl kreiraj haproxy-kontroler prostora imena

Korak 3: Stvorite i implementirajte HAProxy Ingress Controller
Kako ćete izraditi kontroler ulaza ovisi o tome što želite postići. Na primjer, možete stvoriti HAProxy ulazni kontroler za usmjeravanje HTTP prometa ovisno o traženom nazivu glavnog računala. U tom slučaju započnite s pristupom svom DNS poslužitelju i stvaranjem zapisa 'A' za preslikavanje ciljanog naziva hosta na vaš klaster.

Nakon što imate ispravan zapis 'A', stvorite YAML datoteku kontrolera ulaza kao što je prikazano na sljedećoj slici. U prvom odjeljku stvorili smo resurs za implementaciju koji koristi sliku Docker spremnika 'jmalloc/echo-server' kao naš primjer.

U drugom odjeljku YAML datoteke stvorili smo resurs usluge koji se mapira na temelju naziva glavnog računala koji je zatražen u ulaznom kontroleru koji se stvara u koraku 4.

Spremite datoteku i implementirajte je na svoj klaster koristeći kubectl. Referenciramo Minikube kubectl pokretanjem sljedeće naredbe za naš slučaj. Naš HAProxy ulazni kontroler je “linuxhint-jmaildeployment.yaml”.

$ minikube kubectl -- primijeniti -f < naziv datoteke >

Nakon što dobijete izlaz koji pokazuje da je usluga stvorena, možete dodatno provjeriti je li implementirana pomoću sljedeće naredbe:

$ minikube kubectl -- dobiti mahune --prostor imena haproxy-kontroler

Provjerite koristite li ispravan prostor imena koji ste stvorili u koraku 1. Dobit ćete izlaz koji potvrđuje da je usluga dostupna što znači da je implementacija bila uspješna.

Korak 4: Stvorite i implementirajte Ingress resurs
Napravite drugu YAML datoteku koja djeluje kao ulazni resurs koji sadrži pravila o tome kako HAProxy treba usmjeriti vaš promet. Provjerite koristite li ispravan naziv domene (host) koji ciljate i prilagodite imenovanje i željeni priključak za prihvaćanje dolaznog prometa.

Spremite ulaznu datoteku resursa HAProxy i implementirajte je kao što smo učinili s kontrolerom.

$ minikube kubectl -- primijeniti -f < naziv datoteke >

Naš ulazni resurs nazivamo 'linuxhint-ingresscontroller.yaml'.

To je to! Sljedećom naredbom možete provjeriti radi li vaš HAProxy ulazni kontroler provjerom porta koji je dodijeljen NodePortu.

$ minikube kubectl -- dobiti uslugu haproxy-kubernetes-ingress --prostor imena haproxy-kontroler

U ovom slučaju, dodijeljen mu je priključak 32448. Možete pristupiti kreiranoj usluzi pomoću priključka i provjeriti njegov status.

Time ste uspjeli koristiti HAProxy kao ulazni kontroler u Kubernetes okruženju.

Zaključak

Ulazni kontroler vam omogućuje da definirate kako upravljati prometom prema vašem klasteru na temelju pravila koja su definirana u vašoj ulaznoj datoteci resursa. HAProxy je pouzdan ulazni kontroler koji možete koristiti unutar Kubernetes klastera, a ovaj post je opisao koje korake trebate slijediti da biste ga koristili. Isprobajte ga i uživajte u korištenju HAProxyja kao kontrolera ulaza.