doc: HANDOFF-NEW-CHAT.md — резюме сессии для перехода в новый чат
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
# HANDOFF для нового чата — shared-sqs (состояние на 2026-08-16)
|
||||
|
||||
> Этот файл — резюме длинной сессии 13–16.08.2026. Новый чат: прочитать
|
||||
> этот файл + HISTORY/2026-08-14-session-log.md + doc/thinking/.
|
||||
|
||||
## 1. Что за проект
|
||||
|
||||
`shared-sqs` — SQS-совместимая очередь (AWS API), Go 1.23, multi-tenant,
|
||||
форк GoAWS. Живёт на платформе Nubes (managed Kubernetes, realm iot-naeel).
|
||||
Локально: `/home/naeel/nubes/SQS-service`, зеркало на ВМ:
|
||||
`naeel@5.172.178.213:~/terra/SQS-service` (ssh-ключ `~/.ssh/naeel_vm_id_ed25519`).
|
||||
|
||||
**⛔ ГРАНИЦЫ ПРОЕКТА (записано в память):** работать ТОЛЬКО с локальной папкой
|
||||
и её зеркалом на ВМ. Никуда больше без прямого указания пути.
|
||||
|
||||
## 2. Статус сервиса
|
||||
|
||||
- Прод-версия **v0.1.35** задеплоена по digest (Docker Hub `naeel/shared-sqs`).
|
||||
- Все тесты зелёные: api_test 22/22, sdk_test 15/15, fifo_dlq_probe PASS.
|
||||
- План Соннета выполнен: P0.1, P0.2, P1.4, P2.5, P2.6, P3.7, P3.8 — все PASS.
|
||||
- Нагрузка 168 591 операция — 0 сервисных ошибок.
|
||||
- Память стабильна 2ч (VmRSS 16588→15648 kB, Threads 13).
|
||||
|
||||
## 3. Главная открытая проблема — ПЛАТФОРМА, не код
|
||||
|
||||
1. **Таймауты каждые 31–33с** на внешнем пути (интернет→шлюз Nubes): ~5.5%
|
||||
запросов не получают ответ 30с. Доказано серверным tcpdump (8 «дыр» по
|
||||
29.5с: запросы не доходят до пода), nginx чист (max 68мс, 499=0), cilium
|
||||
0 дропов, port-forward 24977 раундов 0 сбоев. Таймер — на ВНЕШНЕМ шлюзе,
|
||||
вне кластера.
|
||||
2. **MSS=1448** анонсируется шлюзом при underlay MTU 1450 → большие тела
|
||||
(>~1400 байт) виснут ~51с (PMTUD сломан).
|
||||
3. Готов тикет: `doc/thinking/nubes-ticket.md` — ОТПРАВИТЬ в поддержку Nubes.
|
||||
|
||||
## 4. Что мы починили в кластере (16.08, по команде пользователя)
|
||||
|
||||
- kube-vip: `rollout restart ds shturval-vip` — ушли ошибки leaderelection в
|
||||
удалённый namespace `0a42bef3-...` (хвост июльского сервиса пользователя).
|
||||
- provider LB: добавлен `cidr-global: 185.247.187.151/32` в ConfigMap
|
||||
`kubevip` в **kube-system** (provider читает именно оттуда,
|
||||
env KUBEVIP_NAMESPACE=kube-system). «Ensured load balancer» — OK.
|
||||
- После починки таймауты НЕ ушли (тест: 19 сбоев, период 31.3–33.5с) —
|
||||
подтверждение, что таймер на внешнем шлюзе.
|
||||
|
||||
## 5. Сравнение с Yandex YMQ (очередь `newsqs`)
|
||||
|
||||
- Наш p50: 6–8мс (с ВМ) / 89–90мс (с локали). YMQ: 60–62мс / 138–150мс.
|
||||
- YMQ стабилен (1 ошибка на 959), у нас — таймауты платформы (см. п.3).
|
||||
- YMQ-доступ восстановлен: SA `newsqs` (роль ymq.admin), креды в
|
||||
`secrets/yandex_ymq_newsqs.txt` (имена переменных AWS_ACCESS_KEY_ID/
|
||||
AWS_SECRET_ACCESS_KEY). Очередь: URL в HISTORY.
|
||||
- Повторный бенчмарк — ПОСЛЕ фикса шлюза Nubes.
|
||||
|
||||
## 6. Ключевые доступы
|
||||
|
||||
- Креды shared-SQS (тенант t-fec713a719ad0b33):
|
||||
AK `SSAK-fec713a719ad0b33c91fa54a`,
|
||||
SK `e898ed410a20ff166f51a52ba39a2954fb87e2da200b1648c3975772bfe9e2b4`.
|
||||
- Внешний endpoint: `https://sqs.containerk8s.dev.nubes.ru` (регион us-east-1).
|
||||
- Внутренний (из подов кластера): сервис `containerk8s` в ns
|
||||
`f1ffb134-7d16-45bd-8bef-69f6ec8ab33c`, порт 4100.
|
||||
- Gitea: `gitea.services.ngcloud.ru/Nail/SQS-service` (токен — в secrets/gitea.txt).
|
||||
- kubeconfig на ВМ протухает ~раз в сутки (~26ч) — обновлять через консоль
|
||||
Nubes (пользователь копирует в буфер, на ВМ: `xclip -selection clipboard -o
|
||||
> ~/.kube/config`).
|
||||
- ⚠️ boto3/aws CLI: ВСЕГДА передавать креды явно (env терминала копит чужие
|
||||
AWS_ACCESS_KEY_ID — был ложный 403 с кредами Яндекса).
|
||||
|
||||
## 7. Хвосты / TODO
|
||||
|
||||
1. Отправить тикет Nubes (файл готов).
|
||||
2. Удалить дубликат `secrets/yandex_ymq_fork8s.txt` (одинаков с newsqs.txt) —
|
||||
ждёт команды пользователя.
|
||||
3. После фикса шлюза: повторный 30-мин бенчмарк vs YMQ, обновить
|
||||
BENCHMARK-COMPARISON.
|
||||
4. Эхо-сервис (Фаза 3 планов) не понадобился — доказательств хватило.
|
||||
|
||||
## 8. Тестовая инфраструктура (tests/)
|
||||
|
||||
- `run_full_regression.sh` — полная регрессия (api_test + sdk_test + fifo_dlq).
|
||||
- `long_compare_local.py` — 30-мин сравнение с YMQ с таймстемпами.
|
||||
- `compare_ymq_vs_shared.py` — короткое сравнение.
|
||||
- `tcp_mtu_probe.py` — бинарный поиск MTU-порога (порт 443! 32391 снаружи закрыт).
|
||||
- Планы 4 агентов: doc/thinking/nubes-network-bug-plan*.md.
|
||||
|
||||
## 9. Правила пользователя (обязательные)
|
||||
|
||||
- Без «делай» — ничего не менять, только отвечать/смотреть.
|
||||
- Каждый шаг и результат — в HISTORY сразу; коммит после правок.
|
||||
- Команды только с таймаутами. Никаких оценок — считать/мерить.
|
||||
- Часовой пояс GMT+03. sed запрещён (только редакторы файлов).
|
||||
Reference in New Issue
Block a user