Перейти к содержанию

Сетевые и пользовательские доступы со стороны инфраструктуры

В этом разделе описывается типовой сценарий размещения: система Labforge развёрнута в виртуальной машине на гипервизоре Proxmox, который сам же используется в качестве ноды кластера для развертывания стендов.

Такая топология позволяет обойтись одним физическим сервером, но требует аккуратной настройки доступа: гипервизор должен пускать управляющую ВМ к API, а сама ВМ — открывать пользователям интерфейс. ВМ может иметь свой адрес в сети организации или использовать проброс портов (продвинутая опция, будьте аккуратны при настройке имен и доступов).

Сценарий

┌─────────────────────────── Proxmox-хост (нода кластера) ───────────────────────────┐
│   VM «labforge»  (Labforge: nginx, deployment-api, cluster-manager, websockify…)  │
│        │ 8006 HTTPS                                                               │
│        └──────────────────────────────────────────▶  Proxmox API (8006)            │
│                                                        │                           │
│   Стенды пользователей (VM) ◄──────────── VNC-консоль ─┤                           │
└────────────────────────────────────────────────────────────────────────────────────┘

Основные положения о сетевом взаимодействии:

  • Управление гипервизором (cluster-manager, deployment-api) идёт только по Proxmox API — TCP 8006 (HTTPS).
  • VNC-консоли также идут через 8006: websockify открывает временный proxy через POST /api2/json/nodes/{node}/qemu/{vmid}/vncproxy, а затем соединяется по wss://…:8006/…/vncwebsocket. Эфемерный порт vncproxy слушается внутри гипервизора, наружу он не публикуется — внешнему миру достаточно порта 8006.
  • Пользователи попадают в систему только через nginx управляющей ВМ — порты 80/443.

Матрица доступов

Откуда Куда Порт Назначение Направление
VM Labforge Гипервизор 8006 Proxmox API: управление нодами, стендами, VNC-консоли входящий на гипервизор
Пользователи VM Labforge 80/443 nginx: UI, Keycloak, VNC через websockify входящий на ВМ
VM Labforge Прочие ноды кластера 8006 API соседних нод (при multi-node) исходящий
Пользоатель VM Labforge 22 SSH доступ (опционально) входящий на ВМ

Для одиночной ноды обязательный минимум — 8006 на гипервизоре и 80/443 на управляющей ВМ.

Проверка

Через cluster-manager (рекомендуется)

Примечание

Проверка доступа после заполнения списка серверов в процессе установки. Если вы не выполнили процесс установки, сначала выполните его или проверьте доступы прямым запросом.

Проверка изнутри сервиса подтверждает, что доступ к API гипервизора работает с учётом настроенного firewall. Выполните check-команду на haskell-binary внутри контейнера cluster-manager (аналог команд из руководства установки):

docker exec -it labforge-cluster ./haskell-binary check --node <имя ноды в PVE>

Команда находит ноду в базе, обращается к её Proxmox API и выводит результат:

  • Successful response! — доступ работает, firewall пропускает ВМ к порту 8006;
  • Failure response: … — доступ заблокирован или нода не отвечает;
  • Node not found — нода ещё не добавлена в базу cluster-manager (добавьте через create-node).

Прямой запрос к API

С управляющей ВМ проверьте доступ к API гипервизора вручную:

curl -k -H "Authorization: PVEAPIToken=…" https://192.168.1.101:8006/api2/json/version

Ответ 200 и JSON с version означают, что firewall настроен верно. Этот способ не учитывает внутреннюю сеть сервисов, поэтому предпочтительна check-команда из cluster-manager.