docs: HISTORY — подробная сводка развёрнутого стека, правила платформы, план хвостов
This commit is contained in:
@@ -798,3 +798,52 @@ consumer → PG → чтение через /v1/.../telemetry.
|
|||||||
- Процедура для чужого кластера без kubectl: PG-auth в EMQX (вместо HTTP),
|
- Процедура для чужого кластера без kubectl: PG-auth в EMQX (вместо HTTP),
|
||||||
порядок деплоя EMQX→iot-service, UUID из консоли deck, DSN с sslmode=require,
|
порядок деплоя EMQX→iot-service, UUID из консоли deck, DSN с sslmode=require,
|
||||||
роль с CREATEROLE/CREATEDB, один EXPOSE-порт в образе EMQX.
|
роль с CREATEROLE/CREATEDB, один EXPOSE-порт в образе EMQX.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 25. ПОДРОБНАЯ СВОДКА: что развёрнуто на платформе (16.08)
|
||||||
|
|
||||||
|
### Контейнеры (realm iot-naeel, кластер iot-naeel)
|
||||||
|
| Компонент | ns (instanceUid) | Домен | Образ |
|
||||||
|
|---|---|---|---|
|
||||||
|
| EMQX | `2fdd9658-4995-494f-892a-d88dda7da1ee` | exqx.containerk8s.dev.nubes.ru | naeel/iot-emqx:v0.2.0 |
|
||||||
|
| iot-service | `4504e05b-7b7f-4689-a61f-fbf6234dd0ed` | iot.containerk8s.dev.nubes.ru | naeel/iot-service:v0.1.0 |
|
||||||
|
| shared-sqs | `f1ffb134-7d16-45bd-8bef-69f6ec8ab33c` | sqs.containerk8s.dev.nubes.ru | (чужой) |
|
||||||
|
| ws-probe (тест) | `2d9b96ff-…` | testiot.containerk8s.dev.nubes.ru | (тестовый) |
|
||||||
|
|
||||||
|
### Managed-сервисы
|
||||||
|
- PostgreSQL: инстанс `postgresqlk8s`, instanceUid `509145c3-ba71-4687-a084-d9dcbc88d3d2`,
|
||||||
|
internalMaster `postgresqlk8s-master.509145c3-….svc.cluster.local:5432`.
|
||||||
|
Роль `iot_service` (CREATEROLE, CREATEDB), БД `iotdb`. DSN:
|
||||||
|
`postgresql://iot_service:<пароль>@…:5432/iotdb?sslmode=require` (SSL обязателен!).
|
||||||
|
- shared-sqs: тенант `t-fec713a719ad0b33`, очередь `iot-telemetry`,
|
||||||
|
внутренний endpoint `containerk8s.f1ffb134-….svc.cluster.local:4100`.
|
||||||
|
|
||||||
|
### Env iot-service (заданы/пропатчены)
|
||||||
|
IOT_PG_DSN (sslmode=require), SQS_ACCESS_KEY, SQS_SECRET_KEY, MQTT_USERNAME,
|
||||||
|
MQTT_PASSWORD, ADMIN_STATS_TOKEN, MQTT_HOST=containerk8s.2fdd9658-….svc.cluster.local,
|
||||||
|
AUTH_TEST_MODE=true (ТЕСТ! вернуть false).
|
||||||
|
|
||||||
|
### Env EMQX (пропатчены kubectl)
|
||||||
|
EMQX_AUTHENTICATION__1__URL=http://containerk8s.4504e05b-….svc.cluster.local:9090/internal/mqtt/auth
|
||||||
|
EMQX_AUTHORIZATION__SOURCES__1__URL=http://containerk8s.4504e05b-….svc.cluster.local:9090/internal/mqtt/acl
|
||||||
|
EMQX_LOG__CONSOLE_HANDLER__LEVEL=debug (диагностика)
|
||||||
|
|
||||||
|
### Правила платформы (выстраданы)
|
||||||
|
1. Путь к образу в deck фиксируется при создании → только latest + redeploy;
|
||||||
|
зеркало кэширует latest → в НАШЕМ кластере kubectl set image уникальным тегом.
|
||||||
|
2. Env в deck фиксируются при создании (формат JSON в форме — выяснить!).
|
||||||
|
3. Порт приложения берётся из EXPOSE образа; поле порта в форме отсутствует →
|
||||||
|
образ обязан иметь РОВНО один EXPOSE.
|
||||||
|
4. Загрузка EMQX на CPU-квоте 500m — 5–10 мин (не зависание!); dashboard
|
||||||
|
падает с таймаутами; для deck задавать CPU ≥1000m.
|
||||||
|
5. PG требует SSL: pg_hba no encryption → sslmode=require.
|
||||||
|
|
||||||
|
### Хвосты (текущий план работ)
|
||||||
|
1. AUTH_TEST_MODE=false.
|
||||||
|
2. EMQX v0.2.1: убрать dashboard из конфига; CPU-квота (наш кластер — patch,
|
||||||
|
deck — рекомендация).
|
||||||
|
3. PG-auth в EMQX (без kubectl для чужого кластера): authentication postgres
|
||||||
|
(devices + bridge) + authorization postgres + http-фолбэк; монолит создаёт
|
||||||
|
bridge-строку в iot_devices (EnsureBridgeDevice).
|
||||||
|
4. Процедура деплоя для чужого кластера (документ).
|
||||||
|
|||||||
Reference in New Issue
Block a user