Kuinka käyttää HAProxya sisääntuloohjaimena Kubernetes-ympäristössä

Kuinka Kayttaa Haproxya Sisaantuloohjaimena Kubernetes Ymparistossa



Kubernetes on ihanteellinen vaihtoehto kaikille, jotka haluavat automatisoida säiliömuotoisten sovellusten käyttöönoton, skaalauksen ja hallinnan. Kubernetes-ympäristössä sisääntuloohjain on välttämätön minkä tahansa Kubernetes-klusteripalvelun ulkoisen pääsyn hallinnassa. Sisääntuloohjain toimii ulkoisen liikenteen syöttötilana, jonka avulla voit määrittää reitityksen ja kuinka haluat ohjata liikennettä palveluun. Voit käyttää erilaisia ​​tunkeutumisohjaimia, mutta tässä tapauksessa keskitymme HAProxyin ja käytämme sitä sisääntuloresurssissamme määrittämiemme sääntöjen toteuttamiseen.

Mikä on sisääntuloohjain?

Sisääntuloohjain on komponentti, jonka avulla käyttäjät voivat hallita ja hallita Kubernetes-klusterinsa palveluiden pääsyä. Sisääntuloohjaimessa on kaksi avainelementtiä:

  1. Ingress-resurssi – Se on Kubernetes API -objekti, joka määrittää säännöt klusterin palveluiden liikenteen reitittämiseksi määritettyjen isäntänimen ja polkujen perusteella.
  2. Sisääntulon ohjain – Se on ohjelmistokomponentti, kuten HAProxy, Traefik tai NGINX, joka toteuttaa sisääntuloresurssissa määritetyt säännöt. Se määrittää kuormituksen tasapainottimen käsittelemään liikennettä sisääntuloobjekteihin tehtyjen muutosten perusteella.

Kuinka käyttää HAProxya sisääntuloohjaimena Kubernetes-ympäristössä

Kun olet ymmärtänyt, mitä sisääntuloohjain on ja miksi tarvitset sitä, seuraava tehtävä on käydä läpi sen käytön vaiheet. Meidän tapauksessamme määritimme HAProxyn sisääntuloohjaimeksi annettujen vaiheiden mukaisesti.







HUOM: Varmista, että Kubernetes-klusterisi on käynnissä. Jatka sitten seuraavasti.



Vaihe 1: Käynnistä Kubernetes-klusterisi
Kubernetes-klusterin perustamiseen ja käynnistämiseen on erilaisia ​​tapoja. Tässä oppaassa käytämme Minikubea. Se on työkalu, joka tarjoaa yksinkertaisen tavan ottaa Kubernetes käyttöön virtuaalikoneessa tai Dockerissa, varsinkin jos sinulla on Kubernetes paikallisesti koneellasi.



Viittaavat Minikube dokumentaatio asennuskomentoja, joita käytetään alustassasi. Tässä tapauksessa käytämme vakaata 'x64' Linux-arkkitehtuuria ja suoritamme seuraavat komennot:





$ curl -SE https: // storage.googleapis.com / minikube / julkaisut / Viimeisin / minikube-linux-amd64
$ sudo Asentaa minikube-linux-amd64 / usr / paikallinen / roskakori / minikube

Ensimmäinen komento nappaa uusimman vakaan Minikube-binaarin, kun taas toinen komento asentaa ja siirtää binaarin määritettyyn polkuun.

Kun olet asentanut Minikuben, käynnistä se tuodaksesi klusterin esiin.



$ minikube aloitus

Tämän jälkeen sinun on oltava asennettuna kubectl, jotta voit käyttää klusteria. Voit kuitenkin käyttää kubectl-versiota, joka on saatavana Minikuben kanssa. Esimerkiksi, jos haluat tarkistaa käynnissä olevien podien tiedot, suorita 'kubectl'-komento seuraavasti:

$ minikube kubectl -- hanki paloja -A

Tällä tavalla sinun ei tarvitse olla kubectl asennettuna. (–) osoittaa, että komennot ovat kubectlille, eivät Minikubelle.

Vaihe 2: Luo nimiavaruus
Toisessa vaiheessa luodaan oma nimiavaruus sisääntuloohjaimelle. Nimesimme nimiavaruuden nimellä 'haproxy-controller'.

$ minikube kubectl luo nimitilan haproxy-controller

Vaihe 3: Luo ja ota käyttöön HAProxy Ingress Controller
Sisääntuloohjaimen luominen riippuu siitä, mitä haluat saavuttaa. Voit esimerkiksi luoda HAProxy-sisääntuloohjaimen reitittämään HTTP-liikennettä pyydetystä isäntänimestä riippuen. Aloita tällaisessa tapauksessa avaamalla DNS-palvelin ja luomalla 'A'-tietue, joka yhdistää kohdeisäntänimen klusteriisi.

Kun sinulla on oikea A-tietue, luo sisääntuloohjaimesi YAML-tiedosto seuraavan kuvan mukaisesti. Ensimmäisessä osiossa loimme käyttöönottoresurssin, joka käyttää esimerkkinä 'jmalloc/echo-server' Docker-konttikuvaa.

YAML-tiedoston toisessa osassa loimme palveluresurssin, joka kartoitetaan isäntänimen perusteella, jota pyydetään vaiheessa 4 luodussa sisääntuloohjaimessa.

Tallenna tiedosto ja ota se käyttöön klusteriisi kubectlin avulla. Viitaamme Minikube kubectliin suorittamalla seuraava komento meidän tapauksessamme. HAProxy-sisääntuloohjaimemme on 'linuxhint-jmaildeployment.yaml'.

$ minikube kubectl -- Käytä -f < Tiedoston nimi >

Kun saat tulosteen, joka osoittaa, että palvelu on luotu, voit edelleen varmistaa, että se on otettu käyttöön seuraavalla komennolla:

$ minikube kubectl -- hanki paloja --nimiavaruus haproxy-ohjain

Varmista, että käytät oikeaa nimiavaruutta, jonka loit vaiheessa 1. Saat tulosteen, joka vahvistaa, että palvelu on saatavilla, mikä tarkoittaa, että käyttöönotto onnistui.

Vaihe 4: Luo ja ota käyttöön tuloresurssi
Luo toinen YAML-tiedosto, joka toimii sisääntuloresurssina ja sisältää säännöt siitä, kuinka HAProxyn tulee reitittää liikennettä. Varmista, että käytät oikeaa verkkotunnuksen nimeä (isäntä), johon kohdistat, ja säädä nimeäminen ja haluttu portti vastaanottamaan saapuva liikenne.

Tallenna HAProxy-tuloresurssitiedosto ja ota se käyttöön kuten teimme ohjaimen kanssa.

$ minikube kubectl -- Käytä -f < Tiedoston nimi >

Annamme sisääntuloresurssillemme nimen 'linuxhint-ingresscontroller.yaml'.

Se siitä! Seuraavalla komennolla voit varmistaa, että HAProxy-tuloohjain toimii tarkistamalla NodePortille osoitetun portin.

$ minikube kubectl -- hanki palvelu haproxy-kubernetes-ingress --nimiavaruus haproxy-ohjain

Tässä tapauksessa sille on määritetty portti 32448. Voit käyttää luotua palvelua portin avulla ja tarkistaa sen tilan.

Sen avulla onnistuit käyttämään HAProxya sisääntuloohjaimena Kubernetes-ympäristössä.

Johtopäätös

Sisääntuloohjaimen avulla voit määrittää, kuinka käsitellä klusteriisi tulevaa liikennettä sisääntuloresurssitiedostossasi määritettyjen sääntöjen perusteella. HAProxy on luotettava sisääntuloohjain, jota voit käyttää Kubernetes-klusterissa, ja tämä viesti käsitteli, mitä vaiheita sinun tulee noudattaa käyttääksesi sitä. Kokeile ja nauti HAProxyn käyttämisestä sisääntuloohjaimena.