1.7 KiB
1.7 KiB
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:
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-