Files
loadtest/History/2026-07-10-sonnet-answer-kubevip.md
T
naeel 91d717585a
Deploy loadtest / validate (push) Waiting to run
fix: debug=False, force read body, bump 1.0.6→1.0.7
2026-07-10 22:59:56 +04:00

30 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-07-10 — Ответ Соннета: kube-vip ARP split-brain
## Диагноз подтверждён
ARP split-brain: все 4 ноды анонсят VIP, 2 без ingress → ~50% трафика в никуда.
## Почему `svc_election: true` не помогает
Lease есть, holder = v8zq4. Но `svc_election` управляет только k8s-объектами (кто обновляет Service/Endpoints), а НЕ тем, кто добавляет IP на интерфейс и шлёт ARP. Все 4 пода всё равно делают `ip addr add 185.247.187.151/32`.
## Почему `vip_leaderelection: true` не применился
Это флаг для control-plane VIP (api-server HA), а не для LoadBalancer-сервисов. Бесполезен для нашей задачи.
## Решения
| # | Вариант | Сложность | Риск |
|---|---------|-----------|------|
| 1 | Taint на ноды без ingress | Низкая | Низкий |
| 2 | nodeSelector через Shturval customvalues | Средняя | Синтаксис |
| 3 | nodeAffinity через customvalues | Средняя | Синтаксис |
| 4 | BGP вместо ARP | Высокая | Роутер |
## Рекомендация Соннета
**Taint на ноды без ingress** — убрать kube-vip с control-plane и worker-6f74n:
```bash
kubectl taint node control-plane no-ingress=true:NoExecute
kubectl taint node worker-6f74n no-ingress=true:NoExecute
```
Kube-vip DaemonSet не имеет toleration → поды выселятся с этих нод.
ARP будут слать только 2 ноды с ingress → 100% трафика в цель.
Откат: `kubectl taint node X no-ingress-`