НАЙДЕНО: client-body-timeout 10->60 + replicas 3 — закачки пошли. Что правили кубером вне аннотаций
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# 2026-08-21 — НАЙДЕНО: что править кубером, чтобы закачки шли (вне аннотаций)
|
||||
|
||||
_Дата: 2026-08-21. Кластер: example-timasbxz (свой, kubectl-admin). Инстанс: http-13.containerk8s.dev.nubes.ru._
|
||||
_Ответ на вопрос: «что мы вручную кубером меняли на iot-naeel, чего нет в аннотациях, и закачки начинали работать»._
|
||||
|
||||
## ДВЕ правки, после которых закачки пошли (проверено по одной)
|
||||
|
||||
### 1. ConfigMap ingress: `client-body-timeout: 10 → 60` (ГЛАВНЫЙ виновник обрыва ~10с)
|
||||
```
|
||||
kubectl -n ingress patch cm shturval-ingress-controller-controller \
|
||||
--type merge -p '{"data":{"client-body-timeout":"60"}}'
|
||||
```
|
||||
- До: `client-body-timeout: 10` → POST >~64КБ обрывался РОВНО через ~10.2с (HTTP 000, TTFB=0).
|
||||
- После: обрыв на 10с исчез, тело принимается (соединение держится до таймаута).
|
||||
- НЕ переопределяется аннотациями ingress-ресурса (аннотации для client-body-timeout НЕТ).
|
||||
- Совпадает с iot-naeel: там стояло 60 → задержка ~51с (не обрыв); на общих кластерах 10 → обрыв 10с.
|
||||
|
||||
### 2. Ingress replicas: 2 → 3 (по поду на ноду) — убрало дропы при externalTrafficPolicy: Local
|
||||
```
|
||||
kubectl -n ingress scale deploy shturval-ingress-controller-controller --replicas=3
|
||||
```
|
||||
- Кластер: 3 ноды (control-plane + 2 workers), ingress было 2 пода, `externalTrafficPolicy: Local`.
|
||||
- При Local трафик на ноду БЕЗ ingress-пода дропается/зависает → нестабильность (часть POST зависала).
|
||||
- После scale до 3 (под на каждой ноде) — закачки стабильны.
|
||||
|
||||
## Результат (внешний путь, https://IP:443 -k, Host http-13)
|
||||
| Тест | До правок | После правок |
|
||||
|---|---|---|
|
||||
| 100КБ | обрыв ровно 10.2с | 200 (0.06-0.1с) ×3 |
|
||||
| 1МБ | случайно 200/000 | 200 (0.2-0.4с) |
|
||||
| 10МБ | обрыв ~10-16с | 200 (1.9-2.1с) ×3 |
|
||||
| /upload 1МБ | случайно | 200 (0.4с) |
|
||||
|
||||
## Итог (ответ на вопрос)
|
||||
На iot-naeel «лечили закачки» именно этими правками кубером (вне аннотаций):
|
||||
1. **client-body-timeout** в глобальном ConfigMap контроллера (60) — лечит обрыв ~10с.
|
||||
2. **реплики ingress = число нод** (при externalTrafficPolicy: Local) — лечит дропы/зависания.
|
||||
Дополнительно на iot-naeel: keep-alive 75, proxy-body-size 1024m (ConfigMap), MTU Cilium 1400, MSS clamping.
|
||||
|
||||
## Важно
|
||||
- Через UI-аннотации эти параметры НЕ задаются (client-body-timeout и реплики — не аннотации).
|
||||
- На обычном/чужом кластере (без kubectl) их может поменять только платформа.
|
||||
- Аннотации (proxy-body-size и пр.) на входной обрыв >64КБ не влияли — влиял именно client-body-timeout.
|
||||
Reference in New Issue
Block a user