Szerencsére van még két node, ahol "rendesen" működik, úgyhogy egy újabb egyszerűnek indult szívességből lesz komolyabb reszelni való...
Pedig tényleg faék egyszerű dolgot kéne csinálnia: figyelni a haproxy processzt, és ha nincs, akkor átadni a VIP címet egy olyan node-nak, ahol van - azaz pont azt, amit az 1.3.9-es csinált...
- zeller blogja
- A hozzászóláshoz be kell jelentkezni
- 291 megtekintés
Hozzászólások
https://github.com/acassen/keepalived/issues/1813
szerk: elvileg ez csak a 2.1.x-et érinti.
- A hozzászóláshoz be kell jelentkezni
Köszi, erre nálam is volt találat, de pont a verziószám (meg a késői időpont...) miatt ignoráltam - most frissebb fejjel megnézem egy nagyon teszt környezetben.
- A hozzászóláshoz be kell jelentkezni
Úgy néz ki, megvan a "bűnös"... Az 1.3.9-nek nem volt baja azzal, hogy volt a konfigban vrrp_sync_group (egy vrrp instance benne), azt ignorálta, és a scriptet használta. A 2.x viszont be is szól, hogy "Sync group VG1 has only 1 virtual router(s) - this probably isn't what you want", mielőtt kiböki a "Warning - script chk_haproxy is not used" sort.
Kitakarítva a konfigot (volt benne még egy rakat "ott maradt" csingilingi, talán még a napóleoni háborúk idejéből is akár...) remélhetőleg jó lesz. Tanulság: néha jó újragondolni akár nulláról egy kritikusabb konfigurációt.
- A hozzászóláshoz be kell jelentkezni
a keepalived annyira 90-es evek, hogy bagoszagu. modern L3 szevasztok!
- A hozzászóláshoz be kell jelentkezni
Te mit használnál helyette adott feladatra? Egy darab IP-címet kell "életben tartani" n darab VM-en, ennyi a feladat. Az adott IP-re cuppan rá minden node-on n+1 szolgáltatás.
- A hozzászóláshoz be kell jelentkezni
el tudja viselni az architectura ha az az IP egyszerre elerheto mindenhol, vagy nem?
ha el tudja: sima anycast
ha nem tudja: weighted anycast
- A hozzászóláshoz be kell jelentkezni
Ezt megnézem, köszi - egyébként az adott esetben haproxy-k vannak a node-okon, http, https és tcp frontendekkel, illetve egy másik körben meg loggyűjtés van a HA-ip mögött (syslog tcp és udp forgalmakkal).
Hogy tesztelni lesz-e idő meg erőforrás, na az persze jó kérdés...
- A hozzászóláshoz be kell jelentkezni
haproxy tipikusan olyan amit nagyon jol lehet anycast IP moge rakni frr-rel, csak a systemdben megfeleloen kell definialni a fuggosegeket: frr leallit (ez leveszi a forgalmat), haproxyval azt csinalsz amit akarsz, frr visszaindit (jon megint a forgalom mert elkezdi hirdetni az anycast IP-t).
az enterprise haproxy tud tcp state sharinget is, ott a juzer eszre sem vesz egy maintenancet sem peldaul, de amugy max 1 reconnect.
- A hozzászóláshoz be kell jelentkezni
Hogyan csinálod a health checket?
Eléggé favágó megoldás hogy leállítod az FRR-t ha nem elérhető a szolgáltatás.
Akkor már inkább ExaBGP-vel oldom meg a BGP-t annak van healthcheck modulja. Bár újabban állítólag lehet Lua-ban scriptelni az FRR-t is.
Vagy a loopbackról leveszem az anycast IP-t vagy.... van itt néhány lehetőség...
Néhány cikk a témában akit érdekel:
https://blog.plessis.info/blog/2020/02/11/haproxy-exabgp/
https://blog.sdn.clinic/2018/02/anycasted-services-with-debian-bird-any…
https://yetiops.net/posts/anycast-bgp/
https://vincent.bernat.ch/en/blog/2018-multi-tier-loadbalancer
Persze az egész már ott elbukhat, ha az első L3 eszközöd nem képes ECMP-re, mert pl egy tűzfal...
- A hozzászóláshoz be kell jelentkezni
localban tudod health checkelni a haproxyt termeszetesen, illetve a gepnek van unicast IPje is azon is healthcheckelhetsz, de ha ennel tobbet szeretnel, akkor meseld el, mit szeretnel pontosan health checkelni.
en nem szeretem se a birdot, se az exabgpt, frr4life :)
ha a loopbackrol leveszed az anycast IP-t akkor az frr nem fogja tovabb hirdetni, ez is megoldas, nem kell feltetlen leallitani. nalunk a haproxy stop megcsinalja az frr-t, es egyutt dolgoznak, igy egyszerubb az elet.
ha az L3 eszkozod nem tud ECMP-t akkor bazd ki a kukaba, oda valo.
- A hozzászóláshoz be kell jelentkezni
Ha a haproxy frontend nem elérhető (DOWN) akkor vegye ki a hozzá tartozó anycast IP-t a hirdetésből. Ez a cél. És akkor már legyen automatikusan felderített az összes frontend IP. Az első linken amúgy van egy hasonló megoldás erre.
Az L3 eszközeim köszi jól vannak, csak lássuk be, hogy egy meglévő infrán azért nem mindenhol lehet ezt megcsinálni . A régi L2-es trükkök azok mindig működnek.
Egyébként az anycast jóval elegánsabb mint a VRRP groupokkal és priority-kkel bohóckodni ezt tény.
- A hozzászóláshoz be kell jelentkezni
Megnéztem: az előtte lévő tűzfal nem tud ilyesmit, és nem, nem ...om ki a kukába (bár megérdemelné, mert más téren is khm. jelentős lemaradásai vannak - de van neki mindenféle nagyonfontoséshűdejó meg hasonló plecsnije...), úgyhogy maradtam a haproxy mellett :)
- A hozzászóláshoz be kell jelentkezni