2.1 KiB
2.1 KiB
Миграция shared-sqs: k8s → Nubes Managed
Сессия 2026-08-13
Текущая архитектура (k8s)
- Go-бинарник, HTTP-сервер, ~50MB RAM
- Deployment в k8s:
naeel/shared-sqs:v0.1.22 - Redis sidecar — write-through persistence
- Exposed через Ingress + TLS
Целевая архитектура (Nubes Managed)
| Компонент | Сейчас | После |
|---|---|---|
| Рантайм | k8s Deployment | Nubes Simple HTTP Container |
| Persistence | Redis pod в k8s | Nubes Managed Redis |
| Секреты | k8s Secret | Env vars в Container |
| Ingress/TLS | k8s Ingress | встроен в Simple HTTP Container |
Код не меняется вообще. Только инфраструктура.
Совместимость
Сервис протестирован как AWS SQS совместимый — работает с AWS CLI, AWS SDK, Yandex.
Открытые вопросы (уточнить перед деплоем)
- Managed Redis: TLS или plain endpoint? → влияет на флаг
REDIS_INSECUREв коде - Simple HTTP Container: поддержка custom domain или только
*.containerk8s.services.ngcloud.ru?
План миграции
Шаг 1 — Создать Managed Redis на Nubes
Шаг 2 — Задеплоить образ в Simple HTTP Container:
image: naeel/shared-sqs:v0.1.22
PORT=4100
SHARED_SQS_ADMIN_TOKEN=<секрет>
REDIS_ADDR=<managed redis endpoint>
REDIS_USER=<user>
REDIS_PASSWORD=<password>
SHARED_SQS_SEED_DEMO=false
Шаг 3 — Проверить работоспособность (AWS CLI / SDK)
Шаг 4 — Выключить k8s Deployment
Что НЕ нужно делать
- Переписывать код на Node.js/Flask — не нужно
- Менять Redis persistence layer — не нужно
- Мигрировать данные вручную — Redis восстановит состояние автоматически при старте (LoadAllQueues / LoadAllTenantsRaw)