Cum să implementați Openstack Loadbalancer Octavia

24.05.2024
Complexity
9 min.
75

Ce este Loadbalancer Octavia?

Loadbalancer Octavia  - este un component al OpenStack care oferă posibilitatea de a distribui sarcina de rețea între mai multe mașini virtuale (VM-uri) sau alte puncte finale în infrastructura dvs. OpenStack. Loadbalancerul poate fi utilizat pentru a distribui traficul între mai multe instanțe ale unei aplicații sau servicii, îmbunătățind performanța, toleranța la erori și scalabilitatea sistemului.

Instanța virtuală care servește ca load balancer în Octavia se numește Amphora. Acesta este creat automat atunci când un load balancer este provisionat, gestionat de Octavia și asigură distribuția eficientă a traficului între servere. Amphora funcționează într-un mediu izolat, asigurând securitatea și izolarea între diferitele load balancere..

Utilizarea Load Balancer Octavia permite îmbunătățirea performanței, toleranței la erori și scalabilității aplicațiilor dvs., oferind echilibrarea sarcinii și reglarea automată a traficului în cloud-ul dvs. OpenStack.

Caracteristicile principale ale OpenStack Loadbalancer:

  • Echilibrarea sarcinii: Funcția principală a Octavia este echilibrarea sarcinii între multiple instanțe ale aplicațiilor sau mașinilor virtuale pentru a asigura distribuirea uniformă a cererilor de la clienți.
  • Disponibilitate ridicată: Load Balancer Octavia este proiectat pentru a asigura disponibilitatea ridicată a aplicațiilor. În cazul unei defecțiuni a unui server, load balancer-ul redistribuie automat traficul către alte servere funcționale.
  • Scalabilitate: Octavia poate gestiona un număr mare de cereri, ceea ce îl face potrivit pentru aplicații scalabile.
  • Extensibilitate și flexibilitate: Octavia oferă diverse configurări și opțiuni pentru gestionarea echilibrării sarcinii, cum ar fi setarea algoritmilor de distribuție a sarcinii, configurarea verificărilor de sănătate pentru servere, etc.
  • Integrare cu OpenStack: Octavia este complet integrat în ecosistemul OpenStack. Poate interacționa cu alte servicii OpenStack, cum ar fi Neutron (servicii de rețea), Keystone (managementul identității și accesului), etc.
  • Acces API și gestionare prin Dashboard: Octavia oferă un API pentru gestionarea programatică și se integrează cu Dashboard-ul OpenStack (interfața grafică a utilizatorului) pentru o gestionare vizuală convenabilă.

Cum funcționează?

  • Crearea unui load balancer: Utilizatorul spune Octavia că dorește să creeze un load balancer pentru aplicația sa web.
  • Configurarea unui pool de servere: Utilizatorul specifică ce servere vor deservi aplicația, de exemplu, serverele pe care rulează site-ul său web.
  • Monitorizarea serverelor: Octavia monitorizează serverele pentru a se asigura că toate funcționează corect. Dacă un server nu mai răspunde, Octavia poate redirecționa traficul către alte servere funcționale.
  • Distribuirea traficului: Când cineva încearcă să acceseze site-ul web, Octavia decide către ce server să trimită cererea pentru a asigura o încărcare uniformă și un răspuns rapid.
  • Flexibilitatea configurării: Utilizatorul poate configura Octavia pentru a determina cea mai bună metodă de distribuire a traficului, folosind metode diferite de echilibrare a sarcinii în funcție de încărcarea serverelor.


Crearea și configurarea unui load balancer OpenStack în cadrul serviciului Public Cloud (IaaS) 

Vom arăta cea mai frecvent utilizată metodă de creare a unui load balancer HTTP cu redirecționare către un URL specific folosind OpenStack Horizon și vom replica aceste acțiuni prin OpenStack CLI.

Cum să creați un Loadbalancer Octavia în panoul de control Horizon

OpenStack Horizon este o interfață web care oferă acces grafic la funcțiile și resursele OpenStack pentru gestionarea infrastructurii cloud.

Pentru mai multe detalii despre cum să vă autentificați în Horizon, puteți consulta articolul Cum să creați un server virtual în panoul de control Horizon (Openstack) 

Ghid pas cu pas:

Pasul 1:  Conectați-vă la panoul de control Horizon 

Pasul 2:  Faceți clic pe fila "Rețea" -> "Load Balancers" -> "Create Load Balancer."


 


Pasul 3:  În fereastra de creare a load balancer-ului, introduceți datele necesare:

1 - Numele Load Balancer-ului: Introduceți numele load balancer-ului

2 - Descrierea Load Balancer-ului: Furnizați o descriere pentru load balancer

3 - Selectați Tipul Instanței: alegeți între două opțiuni 1. Standalone (non-redundant, cu un singur instanță amphora)   2. Active-standby (load balancer redundant cu două instanțe amphora)

4 - Selectați Subrețeaua: Alegeți subrețeaua în care va fi creat load balancer-ul. Este important să existe adrese IP libere în această rețea.



5 - Câmpul "IP address": Puteți lăsa acest câmp gol și un IP va fi alocat din pool-ul de adrese IP al subrețelei specificate. Alternativ, dacă doriți să alocați propriul IP din rețeaua OpenStack, specificați-l.

6 - Creați Listener-ul (Detalii Listener): Specificați numele și protocolul (în cazul nostru, HTTP) -> În următoarea filă "Detalii Pool" în secțiunea "Create Pool," selectați "Nu" (în acest exemplu, un pool nu este necesar)  -> Faceți clic pe "Create Load Balancer."


 


7 - Load balancer-ul este creat. Așteptați ca statusul să devină "Active" în "Provisioning Status" pentru a continua configurarea.




Pasul 4: Configurarea Load Balancer-ului

1 - Adăugăm o regulă L7 pentru listener, care va redirecționa cererea către o altă resursă (redirect).

Selectați load balancer-ul dvs. -> Listeners -> Selectați listener-ul creat (faceți clic pe el)




2 - În fereastra deschisă, mergeți la fila L7 Policies -> Create L7 Policy.




3 - Creăm o politică L7

În fereastra deschisă, specificați:

- Numele politicii

- Descrierea

- Acțiunea (în cazul nostru demonstrativ - REDIRECT_TO_URL)

- Specificați URL-ul de redirecționare

- Poziția va fi setată automat la valoarea 1.

- Faceți clic pe "Create L7 Policy"







Cu aceasta, crearea și configurarea load balancer-ului este finalizată.


Pasul 5:  Выполняем проверку с помощью curl

$ curl -I <loadbalancer_ip>

 



Cererea este redirecționată cu succes.


Implementarea unui load balancer HTTP de bază utilizând Openstack CLI:


Acțiuni cu Openstack CLI:

openstack loadbalancer create --name <loadbalancer> --vip-subnet-id  <subnet_id> --description "description" 
openstack loadbalancer listener create --protocol HTTP --protocol-port 80 --name <name for listener> <loadbalancer>
openstack loadbalancer l7policy create --action REDIRECT_TO_URL --redirect-url "https://domain.com" --name <name for policy> <listener>
openstack loadbalancer l7rule create --compare-type STARTS_WITH --type PATH --value "/" <policy-name>

Acest set de instrucțiuni oferă o soluție simplă și eficientă pentru crearea unui load balancer HTTP de bază utilizând Octavia. Se recomandă să urmați indicațiile pas cu pas pentru a asigura implementarea corectă și echilibrarea fiabilă a traficului web între serverele dvs..


Instrucția pentru implementarea Loadbalancer Octavia:

Pasul 1: Pregătiți platforma de pe care veți gestiona Public Cloud-ul și instalați utilitarul OpenStack.

Acesta poate fi un server virtual gata făcut sau chiar un computer personal.

Puteți face acest lucru folosind instrucție Crearea serverului prin intremediul CLI (liniei de comandă) Openstack

Pasul 2: Crearea unui Load Balancer

Creați un load balancer numit <lb1> care va fi accesibil de pe internet:

openstack loadbalancer create --name <lb1> --vip-subnet-id <public-subnet>

Așteptați ca load balancer-ul să obțină stările ACTIVE și ONLINE.

openstack loadbalancer show <lb1>

Pasul 3:  Crearea unui Listener

Creați un listener numit <listener1> care va asculta cererile HTTP pe portul 80:

openstack loadbalancer listener create --name <listener1> --protocol HTTP --protocol-port 80 <lb1>

Pasul 4:  Crearea unui Pool

Создайте пул с именем <pool1>, который будет служить пулом по умолчанию для прослушивателя <listener1>.

openstack loadbalancer pool create --name <pool1> --lb-algorithm ROUND_ROBIN --listener <listener1> --protocol HTTP

Pasul 5:  Adăugarea Membrilor Pool-ului

Adăugați serverele <192.0.2.10> și <192.0.2.11>, configurate cu o aplicație pe portul 80, în pool-ul <pool1>:

openstack loadbalancer member create --subnet-id <private-subnet> --address 192.0.2.10 --protocol-port 80 <pool1>
openstack loadbalancer member create --subnet-id <private-subnet> --address 192.0.2.11 --protocol-port 80 <pool1>


Pasul 6:  Verificați Load Balancer-ul

Puteți verifica load balancer-ul utilizând metoda descrisă mai sus:

$ curl -I <loadbalancer_ip>


De asemenea, vă recomandăm să consultați documentația oficială privind utilizarea Loadbalancer Octavia:  https://docs.openstack.org/octavia/latest/user/guides/basic-cookbook.html



Was this information helpful?
Yes   No
0 
Continuând să utilizați acest site și să utilizați serviciile noastre, sunteți de acord cu Termenii și condițiile site-ului nostru și cu utilizarea cookie-urilor de pe site-ul nostru. Citiți, de asemenea, Politica noastră de confidențialitate, conform căreia, în măsura menționată, sunteți de acord cu prelucrarea datelor dvs. personale.