From 322626a372d5098f279a3f4d27f88b903d71075c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 13 Jul 2026 17:22:54 +0400 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=20?= =?UTF-8?q?Opus=20=E2=80=94=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20MSS=20Clamping=20=D0=BF=D0=BB=D0=B0=D0=BD=D0=B0?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=B4=D0=B5=D0=B2=D0=BE=D0=BF=D1=81?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- History/2026-07-13-opus-query-mss-clamping.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 History/2026-07-13-opus-query-mss-clamping.md diff --git a/History/2026-07-13-opus-query-mss-clamping.md b/History/2026-07-13-opus-query-mss-clamping.md new file mode 100644 index 0000000..33ac575 --- /dev/null +++ b/History/2026-07-13-opus-query-mss-clamping.md @@ -0,0 +1,44 @@ +# Запрос к Opus: валидация MSS Clamping плана + +**Дата:** 2026-07-13 + +--- + +## Контекст + +Кластер: bare-metal Kubernetes, 4 ноды, Cilium CNI (Geneve-туннель), kube-vip для VIP. +Штурвал управляет ingress через Helm-чарт (`shturval-ingress-controller-2.12.1`). + +## Проблема + +При `externalTrafficPolicy: Cluster` большие файлы (>5 MB) вызывают TCP stall на 51 секунду. +Диагностика: cross-node Geneve-туннель добавляет overhead (~50 байт) → пакет > MTU 1500 → ICMP Frag Needed блокируется → TCP RTO backoff. + +Текущий костыль: `externalTrafficPolicy: Local` + `kubectl scale replicas=4` (Штурвал сбрасывает на 2 каждые ~час). + +## Предлагаемое решение + +Вместо костыля — выставить MTU в Cilium ConfigMap: + +```yaml +# kubectl edit configmap -n kube-system cilium-config +mtu: 1450 +``` + +После этого: +1. Вернуть `externalTrafficPolicy: Cluster` +2. Оставить ingress `replicaCount: 2` (стоковое значение Штурвала) +3. Никаких ручных scale + +## Вопросы к Opus + +**Читать только:** `docs/MSS-CLAMPING-PLAN.md`, `docs/KUBEVIP-EXTERNAL-TRAFFIC-POLICY.md`, `docs/INGRESS-SOLUTIONS.md`. + +1. Корректно ли решение? Есть ли подводные камни при смене MTU через Cilium ConfigMap на работающем кластере? +2. Нужно ли что-то ещё кроме `mtu: 1450`? (например, перезапуск подов, пересоздание туннелей) +3. Как проверить что MSS clamping реально работает после изменения? (конкретные команды) +4. Есть ли риск для других сервисов (Keycloak, etc.) при смене MTU? +5. Если Cilium ConfigMap недоступен — iptables-вариант (`TCPMSS --clamp-mss-to-pmtu`) равноценен? На какую ноду вешать правило? +6. Итоговый вердикт: это правильный путь, или есть более грамотный вариант? + +**Не лезть:** в код приложения, в TMP, в History (кроме указанных трёх файлов).