Deckhouse CLI (d8)
Облако и инфраструктураRUЕдиная консоль платформы Deckhouse: внутри вкомпилирован настоящий kubectl, а вокруг него — то, чего у kubectl нет: модули платформы и очередь согласования, бэкапы, перенос всего дистрибутива в закрытый контур одной командой, пользователи и доступы, виртуализация и целый инструмент доставки. Инструмент администратора живого кластера.
Флант
автор
Go
язык
Apache-2.0
лицензия
★ 20
GitHub звёзд
Установка
Рекомендованный вендором способ — менеджер обновлений trdl: он держит канал stable и обновляет консоль сам. Способ выше — то же самое без лишнего клиента. А вот однострочник install.sh из README ставит не то, что вы ожидаете: он идёт в GitHub за «последним релизом», а тот указывает на ветку сопровождения 0.30.x, тогда как канал stable отдаёт 0.33.13. То есть вместо свежей версии приезжает версия постарше, и молча.
Он не заменяет kubectl, он его включает
Внутри лежит настоящий upstream-kubectl — в текущей версии это 1.34.8 вместе с Kustomize 5.7.1. Все привычные команды и флаги работают как обычно, просто вызываются через подкоманду.
Разница не в kubectl, а в том, что вокруг. Обычный kubectl ничего не знает про модули платформы, их релизы, очередь согласования, редакцию и перенос дистрибутива — всё это пришлось бы делать плагинами и самописными скриптами. Плюс есть флаги области и проекта: они уходят заголовками и фильтруют доступ в многопользовательском кластере, чего в ванильном kubectl нет.
Закрытый контур
Ради этого чаще всего и берут: пара команд выкачивает на диск весь дистрибутив платформы — релизы, модули и базы уязвимостей — и заливает его в приватный реестр. Выборка идёт по версиям и каналам поставки, от альфы до самого консервативного.
Ловушка в первом шаге. Установка через trdl в изолированном контуре невозможна, документация предупреждает об этом прямо: клиенту нужен доступ к внешнему репозиторию подписей. Поэтому в закрытый контур бинарник заносится руками, а дальше обновляется командой самообновления — она берёт версии из внутрикластерного зеркала, а не из интернета.
Что бесплатно, а что нет
Сама консоль открыта под Apache 2.0 и работает бесплатно. Но две группы команд — перенос дистрибутива и инструмент доставки — требуют лицензии коммерческой редакции платформы; об этом сообщает сам бинарник в справке.
Честная оговорка: вне платформы Deckhouse от консоли остаётся фактически только вкомпилированный kubectl и частично бэкап хранилища кластера. Остальные группы команд ходят в собственные объекты и пространства имён платформы, и на ванильном Kubernetes им не с чем разговаривать.
Частые вопросы
d8 заменяет kubectl?
Не заменяет, а включает: внутри вкомпилирован настоящий upstream-kubectl (в текущей версии 1.34.8 с Kustomize 5.7.1), все привычные команды и флаги работают. Сверх этого есть группы, которых у kubectl нет: модули платформы, состояние кластера, перенос дистрибутива, доступы и самообновление.
Нужна ли платная подписка?
Сама консоль открыта под Apache 2.0 и работает бесплатно. Лицензия коммерческой редакции платформы нужна только для двух групп команд — переноса дистрибутива и инструмента доставки; об этом сообщает сам бинарник в справке.
Как поставить так, чтобы команда не устарела?
Не прибивать версию гвоздями. Либо через менеджер обновлений trdl с каналом stable, либо взять номер версии из файла канала и подставить его в адрес — оба способа всегда дают текущую версию. Пример с прибитой версией из документации уже отстаёт на четыре минорных релиза.
Работает ли в изолированном от интернета контуре?
Платформа переносится туда парой команд зеркалирования, а сама консоль потом обновляется из внутрикластерного зеркала. Но первая установка через trdl там невозможна — ему нужен доступ к внешнему репозиторию подписей, документация предупреждает об этом прямо. Первый бинарник заносится руками.