# Создано: 2026-04-04 # ВРЕМЕННЫЙ WORKAROUND: MQTT over WebSocket через порт 443. # Причина: порт 1883 заблокирован NSX-T Edge firewall на уровне облака. # Решение: EMQX WebSocket listener (8083) проксируется через nginx-ingress. # # IoT устройство подключается: ws://iot.kube5s.ru/mqtt # DNS A-запись: iot.kube5s.ru → 185.247.187.147 (создана через Nubes API, zoneUid=498096ee) # # Когда DevOps откроет порт 1883 — этот файл можно удалить. --- apiVersion: v1 kind: Service metadata: name: emqx-ws namespace: sless # Отдельный Service чтобы не путать — WebSocket порт для Ingress spec: selector: app: emqx ports: - name: mqtt-ws port: 8083 targetPort: 8083 protocol: TCP --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: emqx-mqtt-websocket namespace: sless annotations: kubernetes.io/ingress.class: nginx # ssl-redirect=false: IoT устройства не умеют следовать 301 редиректам при WebSocket upgrade nginx.ingress.kubernetes.io/ssl-redirect: "false" # WebSocket: nginx-ingress автоматически добавляет Upgrade/Connection при proxy-http-version=1.1 nginx.ingress.kubernetes.io/proxy-http-version: "1.1" nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" spec: ingressClassName: nginx rules: - host: iot.kube5s.ru http: paths: - path: /mqtt pathType: Exact backend: service: name: emqx-ws port: number: 8083