Podman теперь поддерживает собственные команды Quadlet, что упрощает декларативное управление контейнерами и сервисами непосредственно из интерфейса командной строки.
Управление контейнерами Podman всегда было относительно простой задачей — достаточно было использовать podman run, но этого было недостаточно, когда требовалась более высокая степень автоматизации… или когда приходилось использовать такие мощные инструменты оркестрации, как Kubernetes.
Что ж, теперь Podman предлагает пользователям надёжное решение. Благодаря последнему обновлению управление Quadlet становится основной функцией Podman. Новый podman quadlet набор команд объединяет всё в единый рабочий процесс.
Но подождите, вы не знаете что такое Qudalets? Позвольте мне вкратце объяснить. Это специальные файлы конфигурации, которые сообщают вашей системе Linux (через systemd), как автоматически запускать контейнеры, модули, сети или тома. Вместо того чтобы каждый раз вводить длинные podman run команды, вы создаёте файл .container, .pod, .network, или .volume, в котором точно описано, что вам нужно.
Затем Systemd берет на себя запуск, остановку, перезапуск и ведение журналов для этих контейнеров — так же, как и для обычных служб Linux, — что делает управление контейнерами более надежным и удобным.
Стоит также отметить, что Quadlets не являются чем-то новым — они были частью экосистемы Podman примерно с версии 4.4. Они позволяют пользователям добавлять вышеупомянутые файлы конфигурации в пути поиска systemd для декларативного управления контейнерами в systemd.
Но вот в чём загвоздка: эти квадлеты теперь встроены в собственный интерфейс командной строки Podman — podman quadlet install, podman quadlet list, podman quadlet print, и podman quadlet rm — так что вам больше не придётся возиться с файлами или вручную настраивать systemd. Вот что делает каждый из них.
podman quadlet install позволяет устанавливать конфигурации из локальных файлов, каталогов или даже URL-адресов.
podman quadlet list предоставляет вам чистый, фильтруемый список установленных квадлетов — отлично подходит для написания скриптов или просто для того, чтобы сориентироваться.
Нужно проверить конфигурацию Quadlet? podman quadlet print покажет вам, что именно запущено.
podman quadlet rm безопасно удаляет Quadlets с возможностью полного удаления или корректного игнорирования тех, которые уже были удалены.
Декларативное управление контейнерами — звучит знакомо, не так ли? Вероятно, потому, что оно во многом похоже на другой известный подход. Да, я говорю о Docker Compose. Но хотя на первый взгляд они могут показаться похожими, между ними есть несколько ключевых различий. Вот краткая сравнительная таблица, которая поможет разобраться.
Особенность
Квадлеты (Podman + systemd)
Создание докера
Среда выполнения
Собственный Linux, тесно интегрированный с systemd
Использует политики перезапуска systemd, ведение журнала и управление зависимостями
Встроенные в Docker политики перезапуска и жизненный цикл Compose
Запуск при загрузке
Автоматический через systemd
Требуется запуск сценариев Compose или docker-compose up в системной службе
Уровень сложности
Лёгкий, идеально подходит для отдельных хостов или небольших развёртываний
Может охватывать многоконтейнерные приложения и сети на разных компьютерах
Кривая обучения
Легко, если вы знакомы с systemd; сложнее, если вы пользовались только Docker
Просто для пользователей Docker, не требует знаний о systemd
Другими словами, если вы выполняете рабочие задачи на серверах или настольных компьютерах под управлением Linux, где systemd уже используется, Quadlets обеспечит вам удобное управление сервисами без дополнительных демонов. С другой стороны, Docker Compose отлично подходит для кроссплатформенных рабочих процессов и крупных проектов по разработке, не связанных с systemd.
В любом случае, наличие Quadlets, встроенных прямо в интерфейс командной строки Podman, — это большое преимущество для всех, кто работает с Podman. Это необходимая вам автоматизация, реализованная с помощью инструмента (systemd), который вы уже используете. Так что попробуйте эту новую встроенную функцию Podman — она вам наверняка понравится.