Накину по мотивам видео про dockhand
Возможность импорта, либо работы с существующими стеками
Тут есть некий стандарт де-факто STACKS_DIR/STACK_NAME/compose.yml причем имя файла может быть compose.yml, compose.yaml, docker-compose.yml и т.д. у каждого свое
Чтобы это работало надо
- Прокинуть через волюм каталог со стеками в контейнер управления
- Прописать путь к этому стеку внутри контейнера
Если правильно сделать, то dockge видит и управляет стеками (на видео про dockhand как раз таки для dockhand и dockge это не было настроено, поэтому не работает)
Но данный функционал полезен при переезде на новую систему управления, arcane, dockge, komodo (+/-), dockhand (???) это умеют. Ну и при использовании общего каталога со стеками можно одновременно использовать несколько менеджеров
Portaner использует собственное расположение стеков и именование (уже не помню детали, но он по номерам создает типа /stacks/0/compose.yml) и нормально работает только со своими стеками
Создание стека
На видео было показано только взаимодействие с существующими стеками, на будущее хотелось бы и созданию уделить внимание.
- Можно ли настраивать стек через UI или только через yaml редактор
- Есть ли встроенный docker run to compose конвертер, dockge это умеет, там можно вставить
docker run ...команду и он сразу конвертирует ее в стек - Можно ли подтягивать стеки из гита, например, Komodo, Collify и прочие позволяют сложить compose.yml в git репозиторий и развернуть из него
- Как создается стек на агенте, будет в следующем пункте описано подробнее
Работа с агентами
Komodo мне сразу зашел т.к. там внутри самого komodo стека есть агент, т.е. он работает как с локальным докером, так и с удаленным по агентной схеме, что очень круто
Arcane на тот момент, когда я пробовал его, нормально работал только с локальным докером, а при использовании агентов половины функций не было
Portaner “нормально” с агентами не работает, приходится переключаться между хостами и агентами и работать внутри, т.е. вместо централизованного управления мы имеем просто переключение между хостами
Например, Komodo работает в целом со стеками и при создании стека можно выбрать агента, на котором будет резвернуто, т.е. мы имеем связку стек → агент
А в portaner связка агент → стеки и надо переключаться постоянно между агентами
Еще Dockge не держит постоянное подключение к агентам и при открытии в браузере dockge начинает опрашивать агентов, что занимает время + нет истории
Ну и сетевое подключение: агент → менеджер или менеджер → агент
Например, arcane раньше имел схему когда агент подключается к менеджеру и запрашивает от него команды, соответственно, нажатие кнопки в менеджере не приводило к моментальному выполнению действия на агенте
Репозитории
Для самохостинга не особо актуаьно, но даже у меня дома порядка 7 собственных docker образов и надо еще парочку добавить, в корпоративной среде это прям обязательно, тогда для приватных репозиториев надо указывать креды
Portaner, Komodo, Dockhand это умеют, остальные может быть тоже
Мониторинг обновлений
В Portainer это платная фишка, в komodo и Dockhand это есть всегда.
В Komodo есть 3 увровня ряботы с обновлениями (можно выбрать в настройках стека)
- Периодическая проверка и уведомление
- Предыдущий пункт + скачивание образов без обновления
- Предыдущий пункт + автоматическое обновление
Сканирование уязвимостей
Ну тут я только в dockhand видел, вроде бы раньше еще один продукт встречал с подобным функионалом, но может быть это он и был
Мониторинг и уведомления
Спорный функционал, но для меня он сейчас один из основных
На примере komodo я получаю уведомления в телегу при
- Наличии обновлений
- Недоступности агента
- Загрузке оперативки, процессора, диска на агенте
- Падении стека, в том числе циклической перезагрузке
Мониторинг и графики
Не скажу, что сильно пользую, но полезно бывает, komodo и dockhand позволяют посмотреть графики использования процессора и т.д. т.е. полноценный мониторинг, уже и pulse не нужен
У меня не очень актуально т.е. PVE->LXC->Alpine плохо показывает ресурсы контейнера и поэтому у меня метрики берутся из PVE
Вебхуки и автоматизации
- Например, у меня конфигурация стеков (базовые конфиги и compose.yml) хранится в GIT репозитории и при коммите туда происходит автоматический деплой стека. А еще если я вношу изменения в статический конфиг traefik, то komodo обновляет по очереди все стеки с traefik
Возможность сборки docker образов
Может быть кому-то и не надо, но в корпоративном мире используется да и у меня дома, как уже писал выше, есть как несколько полностью собственных проектов, так и обновления существующих проектов, например установка плагигов в netbox или доп пакетов в openbao
Но даже если рядом с compose.yml подожить Dockerfile, то тот же komodo или colify могут собрать образ перед запуском
Infrastructure as Code (IaC)
Тоже не всем надо, но мне не очень нравилось, что через тот же dockge можно поменять что-то и сломать, если контейнер с агентом падает, то отваливаться половина функционала.
Чем мне понравился komodo, так это тем, что можно все положить в git репозиторий, от compose файлов, до описания серверов и стеков, можно подтягивать переменные окружения из файлов и т.д. иметь у себя полноценное версионирование стеков, автоматический деплой и применение всех изменений. При потере контейнера со стеками можно быстро развернуть стеки на новом агенте т.к. информация по стеку хранится локально в менеджере (с опциональной синхронизацией с GIT), а не на удаленном агенте
SSO и RBAC
Тут на любителя, но держать 100500 сервисов с отдельной аутентификацией мне не хочется, поэтому, настраиваю везде, где это возможно вход через Authentik (постил ранее свой дашборд в authentik сейчас он еще подрос)
Тут некоторые проекты предоставляют этот функционал за деньги
Работа с различными docker стеками
- Docker
- Podman
- Docker compose
- Swarm
- K8S
- …
1 и 3 самые популярные, но остальные тоже имеют свои плюсы, например, swarm предоставляет секреты и горизонтальное масштабирование, podman быстрее и безопасней, про k9s вообще молчу
Просмотр логов и работа с консолью
На видео было показано насколько это круто, +/- это есть у многих, но где-то сделано лучше где-то хуже
Docknad имеет доп плюшки в виде доступа к файлам
Docker system prune
Это головна боль всех, кто активно работает с докером, у меня было, что docker system prune --all --volumes очищало боллее 100ГБ на диске.
Регулярная очистка реально решает проблемы с диском, а когда более 50 агентов, то без этого вообще никак
Доп фишки
- В komodo есть процедуры и действия, можно писать собственные автоматизации, например, для обновления стеков по тегу, сборки и деплоя приложения из git репозитория
- В Dockhand мне понравился графический просмот информации по слоям, сетям и что-то там еще, в общем, все то, что обычно смотрится в консоли после гугленья соответствующих команд, тут есть все в веб интерфейсе