Добавляю узел в статический кластер через StaticInstance и SSHCredentials. StaticInstance давно в Pending (иногда в Bootstrapping), узел в кластере не появляется. Что проверить?
Добавляю узел в статический кластер через StaticInstance и SSHCredentials. StaticInstance давно в Pending (иногда в Bootstrapping), узел в кластере не появляется. Что проверить?
По порядку:
d8 k get staticinstances
d8 k describe staticinstance <имя>
d8 k -n d8-cloud-instance-manager logs deploy/caps-controller-manager --tail=200
Количество. spec.staticInstances.count в NodeGroup нужно задать явно: по умолчанию оно равно 0, и ни один узел не добавляется. Больше, чем StaticInstance под labelSelector, его ставить нельзя, иначе CAPS ждёт несуществующую машину (алерт CapsInstanceUnavailable). Сам labelSelector после создания изменить нельзя.
SSH. CAPS подключается к узлу по SSH с данными из SSHCredentials. Проверьте:
~/.ssh/authorized_keys);UsePAM yes в /etc/ssh/sshd_config.Если на узле есть fail2ban, убедитесь, что он не заблокировал адреса кластера.
Подсети. Если шаг 000_discover_node_ip.sh завершается ошибкой Failed to discover node_ip that matches internalNetworkCIDRs, укажите в StaticClusterConfiguration internalNetworkCIDRs с подсетями всех узлов. Параметр обязателен, если у узлов больше одного интерфейса:
d8 system edit static-cluster-configuration
При изменении в список должны попадать и адреса уже существующих узлов.
Лог на самом узле: journalctl -fu bashible.
Чтобы пересоздать StaticInstance: в Pending его можно удалить сразу. Если он в Bootstrapping или Running, сначала запретите добавление узла, дождитесь Pending, удалите StaticInstance (и объект Node, если он появился) и создайте заново:
d8 k label staticinstance <имя> node.deckhouse.io/allow-bootstrap=false
Подробнее в документации: FAQ модуля node-manager (раздел о StaticInstance) и описание ресурсов модуля.