Files
loadtest/History/2026-07-10-combined-fix.md
2026-07-10 23:46:28 +04:00

1.2 KiB

2026-07-10 — Комбинированный фикс

Два корня

  1. kube-vip ARP без лидера → флаппинг между 4 нодами при каждом новом TCP
  2. 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 (уже)