fix(emqx): v0.2.0 от официальной базы + резолвимые auth-заглушки — EMQX работает (502 устранён); HISTORY: развязка задокументирована
This commit is contained in:
@@ -700,3 +700,44 @@ store сам создаст таблицу iot_devices.
|
||||
**Статус:** локально образ рабочий, на платформе boot висит. По договорённости
|
||||
с пользователем — вопрос к Sonnet (диагностика + правильный способ запуска EMQX
|
||||
в контейнере: без su, логи в stdout, env-конфигурация).
|
||||
|
||||
---
|
||||
|
||||
## 22. EMQX РАБОТАЕТ на платформе (16.08, ~10:21 MSK) — развязка
|
||||
|
||||
**Диагностика по ответу Соннета + эксперименты (хронология):**
|
||||
1. Гипотеза Соннета «DNS/ndots:5 зависание на резолве заглушки» — ОПРОВЕРГНУТА
|
||||
замером в поде: `getent hosts iot-service` = 103мс (быстрый NXDOMAIN).
|
||||
2. deb-сборки (v0.1.4–0.1.6) на платформе «висели»: PID1=beam, CPU ~5с, логов
|
||||
нет. Эксперимент: **официальный emqx/emqx:5.5.1** в тот же под — заводится,
|
||||
логи в stdout есть → проблема не платформа, а наша deb-сборка.
|
||||
3. **Пересборка от официальной базы:** `FROM emqx/emqx:5.5.1 + COPY emqx.conf`
|
||||
(v0.2.0). Заглушки auth/ACL URL заменены на РЕЗОЛВИМЫЙ адрес shared-sqs
|
||||
(containerk8s.f1ffb134-…:4100), чтобы пулы HTTP-auth не спотыкались на
|
||||
nxdomain при старте.
|
||||
4. **Настоящая причина «зависаний»:** с debug-логами видно — нода НЕ виснет,
|
||||
а грузится ОЧЕНЬ МЕДЛЕННО при CPU-квоте 500m: каждое приложение ~5–7с
|
||||
(long_schedule warnings), полная загрузка 5–10 мин. Плюс dashboard-listener
|
||||
падает с таймаутами (swagger-генерация под троттлингом) — на wss не влияет,
|
||||
но убрать из конфига в следующей версии.
|
||||
|
||||
**Проверка (внешняя, домен exqx.containerk8s.dev.nubes.ru):**
|
||||
- curl без subprotocol → 400 Bad Request от Cowboy (EMQX отвечает через edge,
|
||||
fail_if_no_subprotocol — норма);
|
||||
- `wscat -n -c wss://…/mqtt -s mqtt` → соединение устанавливается и держится.
|
||||
- **502 устранён.**
|
||||
|
||||
**Состояние:** EMQX-контейнер рабочий (ns `2fdd9658-…`, образ
|
||||
`naeel/iot-emqx:v0.2.0`, digest `sha256:e53f9b29…`). Auth/ACL URL пока указывают
|
||||
на заглушку shared-sqs — после создания iot-service заменить на реальный адрес
|
||||
монолита (kubectl set env + rollout).
|
||||
|
||||
**Следующие шаги:**
|
||||
1. Создать контейнер iot-service в deck-UI (env: MQTT_HOST=
|
||||
containerk8s.2fdd9658-4995-494f-892a-d88dda7da1ee.svc.cluster.local + секреты).
|
||||
2. kubectl set env в EMQX: EMQX_AUTHENTICATION__1__URL /
|
||||
EMQX_AUTHORIZATION__SOURCES__1__URL → http://containerk8s.<ns-iot>:9090/…
|
||||
3. End-to-end: устройство (mqtt over wss) → EMQX auth → bridge → SQS → consumer
|
||||
→ PG → REST API.
|
||||
4. Позже: убрать dashboard из emqx.conf (v0.2.1), CPU-квоту ≥1000m для EMQX
|
||||
в deck при создании (в нашем кластере можно kubectl patch).
|
||||
|
||||
Reference in New Issue
Block a user