3.3 KiB
Kube-vip + externalTrafficPolicy: Local + ingress replicas
Дата: 2026-07-13
Кластер: iot-naeel
Сервис: ingress/shturval-ingress-controller-controller
Проблема
externalTrafficPolicy: Local на ingress-сервисе + 2 ingress-пода на 4 нодах.
Kube-vip раздаёт VIP (185.247.187.151) на все 4 ноды через ARP.
С Local трафик, пришедший на ноду БЕЗ ingress-пода — дропается.
Результат: 50% запросов → ERR_TIMED_OUT.
Почему не было раньше
Раньше стоял externalTrafficPolicy: Cluster — kube-vip форвардил трафик
на любую ноду с ingress через Geneve-туннель. F5 работал, но при передаче
больших файлов возникал TCP stall на 51 секунду (cross-node Geneve).
Хронология
Cluster→ всё работало, но большие файлы висли на 51сCluster→Local— файлы перестали виснуть, но F5 стал дропаться (реплик 2)kubectl scale --replicas=4— обе проблемы решены- 2026-07-13 10:24 MSK — Helm-релиз ревизия 6 →
replicasсброшены с 4 на 2 kubectl scale --replicas=4— снова 4
Почему сбрасывается
Ingress управляется Helm-чартом shturval-ingress-controller-2.12.1.
# helm get values -n ingress shturval-ingress-controller
controller:
replicaCount: 2 # ← вот причина
Штурвал периодически реконсилит деплой под Helm-значения — видит 4 → возвращает на 2.
externalTrafficPolicy: Local при этом не сбрасывается (ставилось через kubectl patch svc, не через Helm).
Что нужно от девопса
Единственное изменение: replicaCount: 2 → 4 в Helm-чарте ingress.
helm upgrade -n ingress shturval-ingress-controller <чарт> --set controller.replicaCount=4
Или DaemonSet.
Текущее состояние (исправлено вручную, будет сброшено)
kubectl scale deploy -n ingress shturval-ingress-controller-controller --replicas=4
| Под | Нода |
|---|---|
j4z6z |
iot-naeel-control-plane-xb699 |
q8v8g |
iot-naeel-workers-vqphm-6f74n |
zqxqg |
iot-naeel-workers-vqphm-bhbvs |
fp4p2 |
iot-naeel-workers-vqphm-v8zq4 |
Результат
10 последовательных запросов: 10/10 HTTP 200, 130-250ms.
Что нужно от девопса
- Перевести ingress на DaemonSet — автоматически по поду на ноду
- Или
replicas = max(2, количество нод)— автоскейлинг при добавлении нод - При передеплое Штурвала
replicasне должен сбрасываться на 2
Ноды (4)
| Нода | Тип |
|---|---|
| iot-naeel-control-plane-xb699 | control-plane |
| iot-naeel-workers-vqphm-6f74n | workers |
| iot-naeel-workers-vqphm-bhbvs | workers |
| iot-naeel-workers-vqphm-v8zq4 | workers |