1.2 KiB
1.2 KiB
2026-07-10 — Комбинированный фикс
Два корня
- kube-vip ARP без лидера → флаппинг между 4 нодами при каждом новом TCP
- Werkzeug всегда
Connection: close→ новый TCP на каждый запрос
По отдельности не чинят. Вместе должны.
План
1. kube-vip: vip_leaderelection=true
kubectl set env ds/shturval-vip -n kube-vip vip_leaderelection=true
2. Flask: Gunicorn + gevent
# app.py
if __name__ == '__main__':
import gunicorn.app.base
class StandaloneApp(gunicorn.app.base.BaseApplication):
def __init__(self, app, options=None):
self.application = app; self.options = options or {}
super().__init__()
def load_config(self):
for k, v in self.options.items(): self.cfg.set(k, v)
def load(self): return self.application
StandaloneApp(app, {
'bind': '0.0.0.0:5000', 'workers': 2,
'worker_class': 'gevent', 'timeout': 120, 'keepalive': 75,
}).run()
3. requirements.txt
flask, gunicorn, gevent
4. ingress
proxy_request_buffering: off (уже)