Kaip naudoti HAProxy kaip įėjimo valdiklį Kubernetes aplinkoje

Kaip Naudoti Haproxy Kaip Iejimo Valdikli Kubernetes Aplinkoje



„Kubernetes“ yra idealus pasirinkimas tiems, kurie nori automatizuoti konteinerinės programos diegimą, mastelio keitimą ir valdymą. Kubernetes aplinkoje įėjimo valdiklis yra būtinas norint valdyti išorinę prieigą prie bet kurios Kubernetes klasterio paslaugos. Įėjimo valdiklis veikia kaip išorinio srauto įėjimo erdvė, leidžianti nustatyti maršrutą ir tai, kaip norite valdyti srautą į paslaugą. Galite naudoti skirtingus įėjimo valdiklius, tačiau šiuo atveju mes sutelksime dėmesį į HAProxy ir naudosime jį taisyklėms, kurias apibrėžiame savo įėjimo šaltinyje, įgyvendinti.

Kas yra įėjimo valdiklis?

Įėjimo valdiklis yra komponentas, leidžiantis vartotojams valdyti ir kontroliuoti prieigą prie paslaugų savo Kubernetes klasteryje. Įėjimo valdiklį sudaro du pagrindiniai elementai:

  1. Įėjimo šaltinis – Tai Kubernetes API objektas, apibrėžiantis paslaugų srauto nukreipimo klasteryje taisykles pagal nurodytą pagrindinio kompiuterio pavadinimą ir kelius.
  2. Įėjimo valdiklis – Tai programinės įrangos komponentas, pvz., HAProxy, Traefik arba NGINX, įgyvendinantis įėjimo išteklyje nurodytas taisykles. Jis sukonfigūruoja apkrovos balansavimo priemonę, kad tvarkytų srautą pagal įėjimo objektų pakeitimus.

Kaip naudoti HAProxy kaip įėjimo valdiklį Kubernetes aplinkoje

Supratus, kas yra įėjimo valdiklis ir kam jis reikalingas, sekanti užduotis – aprašyti jo naudojimo veiksmus. Mūsų atveju mes nustatėme HAProxy kaip mūsų įėjimo valdiklį, atlikdami nurodytus veiksmus.







N/B: Įsitikinkite, kad „Kubernetes“ klasteris yra sukurtas ir veikia. Tada atlikite toliau nurodytus veiksmus.



1 veiksmas: paleiskite „Kubernetes“ klasterį
Yra įvairių Kubernetes klasterio nustatymo ir paleidimo būdų. Šiam vadovui naudojame „Minikube“. Tai įrankis, siūlantis supaprastintą „Kubernetes“ diegimo virtualioje mašinoje arba „Docker“ viduje būdą, ypač jei jūsų kompiuteryje yra „Kubernetes“.



Žr Minikube dokumentacija jūsų platformoje naudojamų diegimo komandų. Šiuo atveju paleidžiame stabilią „x64“ Linux architektūrą ir vykdome šias komandas:





$ garbanas -IT https: // storage.googleapis.com / minikube / išleidžia / naujausias / minikube-linux-amd64
$ sudo diegti minikube-linux-amd64 / usr / vietinis / šiukšliadėžė / minikube

Pirmoji komanda paima naujausią stabilų „Minikube“ dvejetainį failą, o antroji komanda įdiegia ir perkelia dvejetainį failą į nurodytą kelią.

Įdiegę „Minikube“, paleiskite jį, kad būtų rodomas klasteris.



$ minikube pradžia

Tada turite turėti įdiegtą kubectl, kad galėtumėte pasiekti klasterį. Tačiau galite naudoti kubectl versiją, kuri yra su „Minikube“. Pavyzdžiui, norėdami patikrinti informaciją apie veikiančius blokus, vykdykite komandą „kubectl“ taip:

$ minikube kubectl -- gauti ankščių -A

Tokiu būdu jums nereikia įdiegti kubectl. (–) rodo, kad komandos skirtos kubectl, o ne „Minikube“.

2 veiksmas: sukurkite vardų erdvę
Antrasis žingsnis apima įėjimo valdiklio vardų srities sukūrimą. Vardų erdvę pavadinome „haproxy-controller“.

$ minikube kubectl sukurti vardų erdvę haproxy-controller

3 veiksmas: sukurkite ir įdiekite HAProxy įėjimo valdiklį
Tai, kaip sukuriate įėjimo valdiklį, priklauso nuo to, ko norite pasiekti. Pavyzdžiui, galite sukurti HAProxy įėjimo valdiklį, kad nukreiptumėte HTTP srautą, atsižvelgiant į prašomą pagrindinio kompiuterio pavadinimą. Tokiu atveju pradėkite prisijungdami prie savo DNS serverio ir sukurdami „A“ įrašą, kad susietumėte tikslinį pagrindinio kompiuterio pavadinimą su savo klasteriu.

Kai turėsite teisingą „A“ įrašą, sukurkite įėjimo valdiklio YAML failą, kaip parodyta kitame paveikslėlyje. Pirmajame skyriuje sukūrėme diegimo šaltinį, kuriame kaip pavyzdys naudojamas „jmalloc/echo-server“ Docker konteinerio vaizdas.

Antroje YAML failo dalyje sukūrėme paslaugos išteklius, kurie susiejami pagal pagrindinio kompiuterio pavadinimą, kurio prašoma įėjimo valdiklyje, kuris sukurtas atliekant 4 veiksmą.

Išsaugokite failą ir įdiekite jį į klasterį naudodami kubectl. Mes nurodome „Minikube kubectl“ vykdydami šią komandą mūsų atveju. Mūsų HAProxy įėjimo valdiklis yra „linuxhint-jmaildeployment.yaml“.

$ minikube kubectl -- taikyti -f < failo pavadinimas >

Kai gausite išvestį, rodančią, kad paslauga buvo sukurta, galite toliau patikrinti, ar ji buvo įdiegta, naudodami šią komandą:

$ minikube kubectl -- gauti ankščių --vardų erdvė haproxy-valdiklis

Įsitikinkite, kad naudojate teisingą vardų sritį, kurią sukūrėte atlikdami 1 veiksmą. Gausite išvestį, patvirtinančią, kad paslauga yra prieinama, o tai reiškia, kad diegimas buvo sėkmingas.

4 veiksmas: sukurkite ir įdiekite įėjimo šaltinį
Sukurkite kitą YAML failą, kuris veikia kaip įėjimo šaltinis, kuriame yra taisyklės, kaip HAProxy turėtų nukreipti srautą. Įsitikinkite, kad naudojate tinkamą domeno pavadinimą (host), pagal kurį taikote, ir sureguliuokite pavadinimą bei norimą prievadą, kad priimtumėte gaunamą srautą.

Išsaugokite HAProxy įėjimo išteklių failą ir įdiekite jį taip, kaip tai padarėme su valdikliu.

$ minikube kubectl -- taikyti -f < failo pavadinimas >

Įvesties šaltinį pavadiname „linuxhint-ingresscontroller.yaml“.

Viskas! Naudodami šią komandą galite patikrinti, ar jūsų HAProxy įėjimo valdiklis veikia, patikrindami prievadą, priskirtą NodePort.

$ minikube kubectl -- gauti paslaugą haproxy-kubernetes-ingress --vardų erdvė haproxy-valdiklis

Šiuo atveju jam priskirtas prievadas 32448. Sukurtą paslaugą galite pasiekti naudodami prievadą ir patikrinti jos būseną.

Su tuo jums pavyko naudoti HAProxy kaip įėjimo valdiklį Kubernetes aplinkoje.

Išvada

Įėjimo valdiklis leidžia apibrėžti, kaip tvarkyti srautą į klasterį, remiantis taisyklėmis, apibrėžtomis jūsų įėjimo išteklių faile. HAProxy yra patikimas įėjimo valdiklis, kurį galite naudoti Kubernetes klasteryje, ir šiame įraše buvo aprašyti veiksmai, kuriuos turėtumėte atlikti norėdami jį naudoti. Išbandykite ir mėgaukitės naudodami HAProxy kaip įėjimo valdiklį.