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

86 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## Заголовок
**[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:
```bash
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`.
## Логи / доказательства
Команда:
```bash
cephadm bootstrap \
--mon-ip 192.168.0.102 \
--initial-dashboard-user admin \
--initial-dashboard-password password \
--allow-fqdn-hostname
```
Фрагмент вывода:
```text
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)
```
Проверки, подтверждающие причину:
```bash
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 использовать только там, где реально нужно.