fix: debug=False, force read body, bump 1.0.6→1.0.7
Deploy loadtest / validate (push) Waiting to run

This commit is contained in:
2026-07-10 22:59:56 +04:00
parent 6ce7bd9720
commit 91d717585a
8 changed files with 349 additions and 2 deletions
+35
View File
@@ -0,0 +1,35 @@
# Вопрос Соннету: найти ОДНУ точку отказа внутри k8s
## Данные (без догадок)
| Источник | Цель | Результат |
|----------|------|-----------|
| Под внутри k8s → VIP 185.247.187.151:443 (100KB POST) | ✅ 10/10 |
| Под внутри k8s → ingress ClusterIP:443 | ✅ 10/10 |
| Под внутри k8s → под напрямую:5000 | ✅ 10/10 |
| Снаружи (интернет) → VIP:443 | ❌ 3-5/10 (TimeoutError) |
| Снаружи → прямой IP ВМ:443 (не k8s) | ✅ 0 таймаутов |
## Инфраструктура (только k8s)
- Shturval 2.12.1, Cilium CNI
- kube-vip DaemonSet (ARP mode, vip_leaderelection=false) на ВСЕХ 4 нодах
- nginx ingress (hostPort 443), 2 реплики на 2 из 4 worker-нод
- VIP 185.247.187.151 на ingress LoadBalancer сервисе
- Pod → VIP работает 100% (CNI маршрутизация в обход внешнего роутера)
## Что уже исключено
- Flask — работает
- nginx ingress — работает
- ModSecurity — DetectionOnly
- conntrack — чистый
- MSS/MTU — не помогло
- proxy_request_buffering off — частично улучшило но не решило
## Гипотеза
Внешний роутер получает ARP-ответы от ВСЕХ 4 нод (kube-vip без лидера). Часть нод без ingress пода. Когда роутер выбирает MAC ноды без ingress → connection timeout.
## Вопрос
Как внутри k8s (не трогая внешний роутер/ВМ) сделать так, чтобы внешние соединения на VIP работали 100%?
- Можно ли ограничить kube-vip DaemonSet только нодами с ingress?
- Можно ли заставить kube-vip держать VIP только на ОДНОЙ ноде (где есть ingress)?
- Есть ли другой механизм в kube-vip/Shturval для фикса ARP-флаппинга?