Files
private-ai-platform/documentation/issues/issue-1.md
Hrankin, Aleksandr (contracted) f243f440c3 init
2026-02-19 11:34:13 +00:00

4.3 KiB
Raw Blame History

Заголовок

[cephadm/bootstrap] Bootstrap падает на orch host add, если SSH на ноде не на 22 (custom port 10225)

TL;DR

cephadm bootstrap во время установки пытается добавить bootstrap-хост в orchestrator через SSH на порт 22. Если SSH слушает 10225, bootstrap ломается с ошибкой Can't communicate with remote host ... Connect call failed (ip, 22).

Контекст

  • Компонент: Cephadm / ceph orch (orchestrator backend: cephadm)
  • ОС: Debian 13 (trixie), VM (Proxmox)
  • SSH: sshd слушает 10225, порт 22 закрыт/не слушает
  • Ceph: cephadm 18.2.7 (reef), ceph-common 18.2.7
  • Сеть: 192.168.0.0/24, bootstrap mon-ip: 192.168.0.102

Шаги воспроизведения

  1. На ноде включить SSH только на кастомном порту:
    • Port 10225
    • порт 22 не слушает/закрыт
  2. Запустить bootstrap:
    cephadm bootstrap \
      --mon-ip 192.168.0.102 \
      --initial-dashboard-user admin \
      --initial-dashboard-password password \
      --allow-fqdn-hostname
    
  3. Дождаться шага добавления хоста в orchestrator.

Ожидаемое

  • Bootstrap завершён успешно.
  • Bootstrap-нода добавлена в ceph orch host ls.
  • ceph -s и ceph orch ps работают.

Фактическое

  • Bootstrap прерывается на добавлении bootstrap-хоста в orchestrator:
    • Error EINVAL: Can't communicate with remote host ...
    • Connect call failed ('192.168.0.102', 22)
  • Кластер остаётся в “полуразвернутом” состоянии и требует cleanup через cephadm rm-cluster.

Логи / доказательства

Команда:

cephadm bootstrap \
  --mon-ip 192.168.0.102 \
  --initial-dashboard-user admin \
  --initial-dashboard-password password \
  --allow-fqdn-hostname

Фрагмент вывода:

Generating ssh key...
Wrote public SSH key to /etc/ceph/ceph.pub
Adding key to root@localhost authorized_keys...
Adding host dev-kyiv01-vm-ceph-main-01...
...
Error EINVAL: Can't communicate with remote host `192.168.0.102`
[Errno 111] Connect call failed ('192.168.0.102', 22)

Проверки, подтверждающие причину:

ss -lntp | grep sshd              # показывает слушает 10225, нет :22
nc -vz 192.168.0.102 22           # refused/failed
nc -vz 192.168.0.102 10225        # ok

Root cause (гипотеза/факт)

  • Факт: cephadm bootstrap внутри запускает ceph orch host add <hostname> <mon-ip> для bootstrap-ноды и пытается достучаться до неё по SSH на 22/tcp.
  • При SSH на 10225 соединение на 22 не устанавливается → bootstrap падает.

Влияние

  • Частота: always, если sshd не слушает 22.
  • Impact:
    • невозможно быстро поднять кластер “из коробки” при custom ssh port
    • остаются артефакты “битого” кластера (нужен ручной purge)

Workaround

  1. Временно открыть/включить SSH на 22 в mgmt-сети

План фикса / идеи

  • Попробовать bootstrap/оркестратор с явной настройкой SSH порта через ssh_config для cephadm (custom port 10225):
    • подготовить отдельный ключ и ssh_config с Port 10225
    • прокинуть его в bootstrap (например через параметры вида --ssh-config, --ssh-private-key/--ssh-public-key, --ssh-user — зависит от версии/пакета)
    • после поднятия закрепить ssh_config для cephadm module (чтобы ceph orch host add всегда использовал 10225)
  • Если “быстро и надёжно” не выходит — принять стандарт: внутри mgmt/VPN оставить 22, с firewall allowlist (а наружу не публиковать вообще), а 10225 использовать только там, где реально нужно.