2.3 KiB
2.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 стал дропатьсяkubectl scale --replicas=4— обе проблемы решены
Текущее состояние (исправлено вручную)
kubectl scale deploy -n ingress shturval-ingress-controller-controller --replicas=4
| Под | Нода |
|---|---|
j4z6z |
iot-naeel-control-plane-xb699 |
q8v8g |
iot-naeel-workers-vqphm-6f74n |
hs4wf |
iot-naeel-workers-vqphm-bhbvs |
dc5kv |
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 |