Dinləyicilər, pool-lar, üzvlər və health monitor-lar
Load balancer-in hissələrini, hər birinin qəbul etdiyi protokolları, alqoritmləri və parametrləri, təchizat və iş statuslarının mənasını öyrənin.
Load balancer trafiki öz VIP-ində qəbul edir və onu serverlərinizə ötürür. O, dörd növ hissədən ibarətdir: dinləyicilər (listener) trafiki qəbul edir, pool-lar onu üzvlər (member) arasında paylayır, üzvlər onu alır, health monitor-lar isə üzvləri yoxlayır. Hər hissənin öz parametrləri və öz statusu var.
Load balancer və VIP
Load balancer VIP-ə, dinləyicilərə və pool-lara sahib olan resursdur. O, bir layihəyə (project) aiddir və layihənin regionunda işləyir.
VIP. VIP layihənin şəbəkələrindən (network) birinin altşəbəkəsindəki (subnet) ünvandır. Load balancer yaradarkən altşəbəkəni seçirsiniz və ünvanın seçilməsini ya platformaya həvalə edirsiniz, ya da onu özünüz təyin edirsiniz. Sabit ünvan altşəbəkənin diapazonu daxilində olmalıdır və altşəbəkənin şlüz (gateway), şəbəkə və ya yayım ünvanı ola bilməz. O, altşəbəkənin allocation pool-undan kənarda ola bilər. Altşəbəkəni və ünvanı yaradıldıqdan sonra dəyişmək olmaz.
Ölçü
Ölçü (size) lb.small, lb.standard və ya lb.large olur. Platforma regionda eyni adlı load balancer flavor-u axtarır və region onu müəyyən etdikdə ondan istifadə edir. Regionda bu adda flavor olmadıqda, hansı ölçünü seçməyinizdən asılı olmayaraq, load balancer regionun standart flavor-undan istifadə edir. Ölçü saatlıq tarifi dəyişmir və onu yaradıldıqdan sonra dəyişmək olmaz.
Dinləyicilər
Dinləyici VIP-in bir portunda bir protokol üçün trafiki qəbul edir və onu öz standart pool-una ötürür.
| Protokol | Nəyi qəbul edir |
|---|---|
| HTTP | HTTP trafiki. |
| HTTPS | HTTPS trafiki. Konsol bu protokol üçün sertifikat istəmir. |
| TCP | TCP bağlantıları. |
| TERMINATED_HTTPS | Load balancer-də sonlanan HTTPS trafiki; bunun üçün TLS sertifikatı lazımdır. |
Vacib
Konsolda TERMINATED_HTTPS dinləyicisi yarada bilməzsiniz.
- Port. Load balancer-dəki hər dinləyicinin öz portu olmalıdır.
- Bağlantı limiti. Standart dəyər 20.000-dir. Onu sonra dəyişə bilərsiniz.
- Standart pool. Dinləyicinin trafikini alan pool. Ustad öz dinləyicisini öz pool-una birləşdirir. Sonra əlavə etdiyiniz dinləyici üçün Dinləyicini pool-a birləşdirin bölməsinə baxın.
Dinləyicinin protokolunu və portunu yaradıldıqdan sonra dəyişmək olmaz. Başqa protokol və ya portdan istifadə etmək üçün yeni dinləyici əlavə edin, onu pool-a birləşdirin və köhnəsini silin.
Pool-lar
Pool bir protokolu və bir balanslaşdırma alqoritmini paylaşan üzvlər qrupudur. Onun protokolu load balancer-in üzvlərə çatmaq üçün istifadə etdiyi protokoldur: HTTP, HTTPS, TCP və ya PROXY. Pool-un protokolunu yaradıldıqdan sonra dəyişmək olmaz.
Dinləyici və pool protokolları
Dinləyici trafiki yalnız protokolu öz protokoluna uyğun gələn pool-a ötürə bilər. Load balancing xidməti bu cütü rədd edərsə, load balancer Error statusuna keçir və onun Activity tab-vərəqəsi səbəbi göstərir. Onu silin və xidmətin qəbul etdiyi cütlə yenisini yaradın.
HTTP dinləyicisi və HTTP pool-u xidmətin qəbul etdiyi cütdür. Load Balancers OpenStack Octavia üzərində işləyir; Octavia qəbul etdiyi bütün cütləri müəyyən edir: dinləyici və pool protokollarının kombinasiyalarına Octavia API istinadında baxın.
Balanslaşdırma alqoritmləri
| Alqoritm | API-dəki dəyər | Trafiki necə paylayır |
|---|---|---|
| Round robin | ROUND_ROBIN | Üzvlər növbə ilə alır. |
| Least connections | LEAST_CONNECTIONS | Hər yeni bağlantı ən az aktiv bağlantısı olan üzvə gedir. |
| Source IP | SOURCE_IP | Eyni müştəri IP ünvanından gələn bağlantılar eyni üzvə gedir. |
Pool-un alqoritmini sonra dəyişə bilərsiniz.
Session persistence
Session persistence müştərini eyni üzvdə saxlayır.
| Seçim | Nədən istifadə edir |
|---|---|
| None | Session persistence yoxdur. |
SOURCE_IP | Müştərinin IP ünvanı. |
HTTP_COOKIE | Load balancer-in təyin etdiyi kuki. |
SOURCE_IP və ya HTTP_COOKIE seçimindən istifadə edin. Onu ustadın Pool addımında və ya sonra pool-u redaktə edərək təyin edirsiniz. Load balancer-in səhifəsində əlavə etdiyiniz pool session persistence olmadan başlayır.
Üzvlər
Load balancer-in səhifəsində hədəf (target) kimi göstərilən üzv pool-dan trafik alan IP ünvanı və portdur.
- Ünvan. Ustadda layihənin serverlərindən birini seçin; konsol onun sabit IP ünvanını (fixed IP), sabit IP ünvanı olmadıqda isə Floating IP-sini doldurur. İstənilən ünvanı da daxil edə bilərsiniz. Load balancer-in səhifəsində ünvanı həmişə özünüz daxil edirsiniz.
- Port. Standart dəyər 8080-dir.
- Çəki. Standart dəyər 1-dir. Onu ustadda təyin edə bilərsiniz. Load balancer-in səhifəsində əlavə etdiyiniz hədəflər 1 çəkisi alır.
- Rol. Role sütunu Primary və ya Backup göstərir. Konsolda əlavə etdiyiniz üzvlər əsas üzvlərdir.
Ustad üzvlərini member-1, member-2 və s. adlandırır. Pool eyni ünvan və portu iki dəfə saxlaya bilməz.
Health monitor-lar
Health monitor bir pool-un üzvlərini yoxlayır və pool-un ən çoxu bir health monitor-u olur. Load balancer-in heç bir health monitor-u olmadıqda onun Health monitors tab-vərəqəsində bu göstərilir: No health monitors configured. Targets are not actively checked.
| Sahə | Qaydalar |
|---|---|
| Monitor type | HTTP, HTTPS, TCP və ya PING. Monitor yaradıldıqdan sonra dəyişdirilə bilməz. |
| Delay (s) | Yoxlamalar arasındakı interval, saniyə ilə. |
| Timeout (s) | Yoxlamanın nə qədər gözlədiyi, saniyə ilə. |
| Max retries | Tam ədəd. |
| URL path | Yalnız HTTP və HTTPS health monitor-ları üçün. |
| Expected codes | Yalnız HTTP və HTTPS health monitor-ları üçün. Sağlam sayılan HTTP status kodları. |
Ustadın başlanğıc dəyərləri üçün Health monitor bölməsinə baxın. Konsolda health monitor-u load balancer-i yaradarkən qoşursunuz. Bundan sonra health monitor-ları REST API ilə dəyişirsiniz; Health monitor-ları dəyişin bölməsinə baxın.
Statuslar
Load balancer-in iki statusu olur: təchizat statusu (provisioning status) onun həyat dövrünün hansı mərhələsində olduğunu, iş statusu (operating status) isə platforma onu sonuncu dəfə qeyd edərkən necə işlədiyini göstərir. Dinləyicilərin, pool-ların, üzvlərin və health monitor-ların da iş statusu olur.
Təchizat statusu
| Status | Mənası |
|---|---|
| Pending create | Platforma load balancer-i qurur. Bu başa çatana qədər onun dinləyicilərinə, pool-larına və health monitor-larına edilən dəyişikliklər, yeni hədəflər və silmə rədd edilir. |
| Active | Load balancer qurulub və dəyişiklikləri qəbul edir. |
| Pending delete | Platforma load balancer-i silir. Xidmət silməni təsdiq etməsə, platforma yenidən cəhd etdiyi müddətdə load balancer bu vəziyyətdə qalır. |
| Error | Qurulma uğursuz olub və ya ləğv edilib, yaxud load balancing xidməti load balancer-in xəta vəziyyətində olduğunu bildirir. Onun dinləyicilərinə, pool-larına və health monitor-larına edilən dəyişikliklər və yeni hədəflər rədd edilir. Onu silin və yenisini yaradın. |
Siyahının süzgəcləri Pending create və Pending delete statuslarını Provisioning altında qruplaşdırır.
İş statusu
İş statusu Online, Degraded, Offline, Error və ya No monitor olur. Health monitor-u olmayan pool-un hədəfləri No monitor göstərir. Overview tab-vərəqəsində Healthy targets göstəricisi Online statusunda olan üzvləri sayır.
Statuslar nə vaxt dəyişir
Platforma load balancer üzərində əməliyyatı, məsələn, onun yaradılmasını və ya dinləyici, pool, yaxud hədəf əlavə edilməsini başa çatdırdıqda statusları qeyd edir. O, həmçinin layihənin load balancer-lərini müntəzəm intervallarla load balancing xidmətindən oxuyur və xidmətin bildirdiklərini qeyd edir: statusları, həmçinin dinləyiciləri, pool-ları, üzvləri və health monitor-ları orada mövcud olduğu kimi. Təchizat statusu gözləmədə olan load balancer sabitləşənə qədər toxunulmaz qalır.
İki oxuma arasında Health sütunu hər üzvün sonuncu dəfə qeyd edilmiş statusunu göstərir, buna görə cavab verməyi dayandıran üzv dəyişikliyi növbəti oxumadan sonra göstərir. Refresh düyməsi load balancer-in qeydini platformadan yenidən yükləyir; o, platformanı load balancing xidmətini oxumağa məcbur etmir.