Files
drhider/docs/KUBEVIP-EXTERNAL-TRAFFIC-POLICY.md
T
2026-07-13 10:33:30 +04:00

2.3 KiB
Raw Blame History

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).

Хронология

  1. Cluster → всё работало, но большие файлы висли на 51с
  2. ClusterLocal — файлы перестали виснуть, но F5 стал дропаться
  3. 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.

Что нужно от девопса

  1. Перевести ingress на DaemonSet — автоматически по поду на ноду
  2. Или replicas = max(2, количество нод) — автоскейлинг при добавлении нод
  3. При передеплое Штурвала 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