6.0 KiB
6.0 KiB
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. Главная открытая проблема — ПЛАТФОРМА, не код
- Таймауты каждые 31–33с на внешнем пути (интернет→шлюз Nubes): ~5.5% запросов не получают ответ 30с. Доказано серверным tcpdump (8 «дыр» по 29.5с: запросы не доходят до пода), nginx чист (max 68мс, 499=0), cilium 0 дропов, port-forward 24977 раундов 0 сбоев. Таймер — на ВНЕШНЕМ шлюзе, вне кластера.
- MSS=1448 анонсируется шлюзом при underlay MTU 1450 → большие тела (>~1400 байт) виснут ~51с (PMTUD сломан).
- Готов тикет:
doc/thinking/nubes-ticket.md— ОТПРАВИТЬ в поддержку Nubes.
4. Что мы починили в кластере (16.08, по команде пользователя)
- kube-vip:
rollout restart ds shturval-vip— ушли ошибки leaderelection в удалённый namespace0a42bef3-...(хвост июльского сервиса пользователя). - provider LB: добавлен
cidr-global: 185.247.187.151/32в ConfigMapkubevipв 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, SKe898ed410a20ff166f51a52ba39a2954fb87e2da200b1648c3975772bfe9e2b4. - Внешний endpoint:
https://sqs.containerk8s.dev.nubes.ru(регион us-east-1). - Внутренний (из подов кластера): сервис
containerk8sв nsf1ffb134-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
- Отправить тикет Nubes (файл готов).
- Удалить дубликат
secrets/yandex_ymq_fork8s.txt(одинаков с newsqs.txt) — ждёт команды пользователя. - После фикса шлюза: повторный 30-мин бенчмарк vs YMQ, обновить BENCHMARK-COMPARISON.
- Эхо-сервис (Фаза 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 запрещён (только редакторы файлов).