Cum să utilizați HAProxy ca controler de intrare în mediul Kubernetes

Cum Sa Utilizati Haproxy Ca Controler De Intrare In Mediul Kubernetes



Kubernetes este opțiunea ideală pentru oricine dorește să automatizeze implementarea, scalarea și gestionarea unei aplicații containerizate. Într-un mediu Kubernetes, un controler de intrare este esențial în gestionarea unui acces extern la orice serviciu de cluster Kubernetes. Controlerul de intrare acționează ca spațiu de intrare pentru traficul extern, ceea ce vă permite să definiți rutarea și modul în care doriți să controlați traficul către serviciu. Puteți folosi diferite controale de intrare, dar în acest caz, ne vom concentra pe HAProxy și ne vom folosi pentru a implementa regulile pe care le definim în resursa noastră de intrare.

Ce este un controler de intrare?

Un controler de intrare este o componentă care permite utilizatorilor să gestioneze și să controleze accesul la serviciile din clusterul lor Kubernetes. Controlerul de intrare are două elemente cheie:

  1. Resursa de intrare – Este un obiect API Kubernetes care definește regulile de rutare a traficului serviciilor din cluster pe baza numelui de gazdă și a căilor specificate.
  2. Controlerul de intrare – Este o componentă software, cum ar fi HAProxy, Traefik sau NGINX, care implementează regulile care sunt specificate în resursa de intrare. Configurați echilibrul de încărcare pentru a gestiona traficul pe baza modificărilor aduse obiectelor de intrare.

Cum să utilizați HAProxy ca controler de intrare în mediul Kubernetes

După ce ați înțeles ce este un controler de intrare și de ce aveți nevoie de el, următoarea sarcină este să acoperiți pașii pentru a-l utiliza. Pentru cazul nostru, am configurat HAProxy ca controler de intrare urmând pașii furnizați.







N/B: Asigurați-vă că aveți cluster-ul Kubernetes în funcțiune. Apoi, procedați după cum urmează.



Pasul 1: Porniți clusterul Kubernetes
Există diferite moduri de a configura și de a porni un cluster Kubernetes. Pentru acest ghid, folosim Minikube. Este un instrument care oferă o modalitate simplistă de implementare a Kubernetes într-o mașină virtuală sau Docker, mai ales dacă aveți Kubernetes local pe mașina dvs.



Consultați Documentația Minikube pe comenzile de instalare pe care să le utilizați pentru platforma dvs. În acest caz, rulăm o arhitectură Linux stabilă „x64” și rulăm următoarele comenzi:





$ curl -ACEASTA https: // storage.googleapis.com / minikube / eliberează / cele mai recente / minikube-linux-amd64
$ sudo instalare minikube-linux-amd64 / usr / local / cos / minikube

Prima comandă preia cel mai recent binar stabil Minikube, în timp ce a doua comandă instalează și mută binarul în calea specificată.

Odată ce ați instalat Minikube, porniți-l pentru a afișa clusterul.



$ minikube începe

Apoi, trebuie să aveți instalat kubectl pentru a accesa clusterul. Cu toate acestea, puteți utiliza versiunea kubectl care este disponibilă cu Minikube. De exemplu, pentru a verifica detaliile podurilor care rulează, executați comanda „kubectl” după cum urmează:

$ minikube kubectl -- obține păstăi -A

În acest fel, nu trebuie să aveți instalat kubectl. (–) semnalează că comenzile sunt pentru kubectl, nu pentru Minikube.

Pasul 2: Creați un spațiu de nume
Al doilea pas implică crearea unui spațiu de nume dedicat pentru controlerul de intrare. Am numit spațiul de nume „haproxy-controller”.

$ minikube kubectl creează spațiu de nume haproxy-controller

Pasul 3: Creați și implementați controlerul de intrare HAProxy
Modul în care creați controlerul de intrare depinde de ceea ce doriți să obțineți. De exemplu, puteți crea un controler de intrare HAProxy pentru a direcționa un trafic HTTP în funcție de numele de gazdă solicitat. Pentru un astfel de caz, începeți prin a accesa serverul DNS și creați o înregistrare „A” pentru a mapa numele gazdă țintă la clusterul dvs.

După ce aveți înregistrarea corectă „A”, creați fișierul YAML al controlerului de intrare, așa cum se arată în imaginea următoare. În prima secțiune, am creat o resursă de implementare care folosește imaginea containerului Docker „jmalloc/echo-server” ca exemplu.

În a doua secțiune a fișierului YAML, am creat resursa Service care este mapată pe baza numelui de gazdă care este solicitat în controlerul de intrare care este creat la pasul 4.

Salvați fișierul și implementați-l în cluster folosind kubectl. Facem referință la Minikube kubectl rulând următoarea comandă pentru cazul nostru. Controlerul nostru de intrare HAProxy este „linuxhint-jmaildeployment.yaml”.

$ minikube kubectl -- aplica -f < nume de fișier >

Odată ce obțineți o ieșire care arată că serviciul a fost creat, puteți verifica în continuare dacă a fost implementat folosind următoarea comandă:

$ minikube kubectl -- obține păstăi --namespace haproxy-controller

Asigurați-vă că utilizați spațiul de nume corect pe care l-ați creat la pasul 1. Veți obține o ieșire care confirmă că serviciul este disponibil, ceea ce înseamnă că implementarea a avut succes.

Pasul 4: Creați și implementați o resursă de intrare
Creați un alt fișier YAML care acționează ca resursă de intrare care conține regulile despre modul în care HAProxy ar trebui să vă direcționeze traficul. Asigurați-vă că utilizați numele de domeniu corect (gazdă) pe care îl vizați și ajustați denumirea și portul dorit pentru a accepta traficul de intrare.

Salvați fișierul de resurse de intrare HAProxy și implementați-l așa cum am făcut cu controlerul.

$ minikube kubectl -- aplica -f < nume de fișier >

Numim resursa noastră de intrare drept „linuxhint-ingresscontroller.yaml”.

Asta este! Cu următoarea comandă, puteți verifica dacă controlerul dvs. de intrare HAProxy funcționează verificând portul care este atribuit NodePort.

$ minikube kubectl -- obțineți serviciul haproxy-kubernetes-ingress --namespace haproxy-controller

În acest caz, este alocat cu portul 32448. Puteți accesa serviciul creat folosind portul și puteți verifica starea acestuia.

Cu asta, ați reușit să utilizați HAProxy ca controler de intrare într-un mediu Kubernetes.

Concluzie

Un controler de intrare vă permite să definiți cum să gestionați traficul către cluster pe baza regulilor care sunt definite în fișierul de resurse de intrare. HAProxy este un controler de intrare de încredere pe care îl puteți utiliza într-un cluster Kubernetes, iar această postare a descris pașii pe care ar trebui să-i urmați pentru a-l folosi. Încercați-l și bucurați-vă de utilizarea HAProxy ca controler de intrare.