podman-remote, о котором я мечтал

топ 100 блогов nponeccop26.01.2022

Я тут в своё время, когда был ещё только докер и кубер под стол пешком ходил, был очень недоволен дизайном докера. Типичное предлагаемое решение состояло поместить «в инет» приватный реестр имиджей, туда пушить из CD, и оттуда пуллить на узлы.

Говно в этой архитектуре состоит из 5 частей (п.3 впрочем скоро прикрыли):

  1. Прикрытие жопы реестру и докерам выполняется говнокодом на го, который заведомо дырявый по сравнению со зрелыми TLS- или SSH-серверами.
  2. Реестр — это дополнительная поверхность атаки, в общем случае не нужная.
  3. Завладение реестром позволяет завладеть всеми серверами кластера (но потом для этого придумали подписывать имиджи оффлайн ключами).
  4. Докер-демоны, слушающие на каждом узле — это тоже дополнительная поверхность атаки по сравнению с классическим LAMP.
  5. Общая идея в том, что control plane нашего кластера активна 24/7 (и доступна для атаки), тогда как для многих реальных применений она нужна только в момент деплоя новой версии. То есть, отказываясь от «активной control plane» мы опять же сужаем поверхность атаки.

Там ещё отдельно были идеи про входящие порты — ну то есть был вариант сделать дизайн, при котором у нас есть «координатор», активный и доступный для взлома 24/7, но он полностью untrusted — все данные на нём подписаны оффлайн-ключами и ключами узлов, и завладение координатором позволит только устроить системе DoS. Но это так совсем уже мои мечты были.

В-общем, чтобы не юзать все эти реестры, докеры и etcd, а также чтобы удовлеворить нужное на тот момент требование работы на CentOS 6, я сделал систему из говна и палок, работающую без реестра и докеров, слушающих на портах.

На сервере были два баш-скрипта:

— runch, аналог runc, стандартный OCI Runtime (но под версию 0.4 стандарта), пускающий бандл в чруте. Парсинг config.json на баше, используя jshon (аналог jq) — это смешно, но учитывая что я срезал углы и парсил только uid, gid и cmd, не проблематично.

—  forever, аналог conmon

На клиенте был vzmaster, аналог podman-remote. Который работал.. через Ansible, который в свою очередь работал через ssh и sftp. Реально были vzmaster-{push,start,kill}.yaml, а vzmaster был над ними обёрткой на баше.

 Юзер лепил OCI Bundle, паковал его в тарболл (формат OCI-имиджей тогда ещё не был стандартизирован) и аплоадил на сервер через Ansible. Ансибл показал себя замечательно со многих сторон:

— возможность надёжно выполнить одно и то же действие для нескольких машин (реально я hosts редактировал, если надо было менять только на части узлов — например, были специализированные узлы)

— как это по-русски.. очень робустные имплементации аплоада там и распаковки, с идемпотентностью и шлюхами

— ансибл использовался и для добавления свежего узла, поскольку мог прямо на сырой сервер, от которого есть только ip и рутовый пароль из письма активации от говнохостера, накатить «систему».

Всё это безобразие позволило в 200 строк на баше и 100 на YAML замутить прилично функционала.

Так вот, это была призказка, а сказка в том, что podman и podman-remote удовлетворяют требованиям по дизайну и безопасности. И можно будет, наконец, выкинуть самоделки и заменить на компоненты, поддерживаемые третьими лицами.


Оставить комментарий

Архив записей в блогах:
Официальный представитель Кремля Дмитрий Песков описал отношения России с Западом, использовав русскую пословицу. Песков уточнил, что Россия — это страна, которая ищет сотрудничества со всеми. «Мы заинтересованы в сотрудничестве с нашими европейскими партнерами. Мы заинтересованы в ...
Скажу прямо: я устала. Так что эти четыре дня пришлись очень кстати. И я имею на них виды. Я хочу: 1. посмотреть "Брестскую крепость" в кинотеатре, 2. дочитать Катаева и насладиться всласть и не торопясь его изысканным стилем, 3. хотя бы просмотреть ...
Сегодня ездили по гостям. И везде задавали вопрос, который нам вчера с женой спать не давал. - А у вас есть? -Не-а И нет ни у кого, а раньше то у всех были! Тараканы. Добрые рыжие усатые шестилапые друзья. Которые ночью, при включении света врасыпную текали. В общаге студенческой помню д ...
Вот интересно про одежду. Когда в доме и на прогулках с тобой сестрица, одежду замечаешь непрерывно. При всей нашей похожести мы любим разные цвета, ни к розовому, ни к бирюзовому, ни к голубому ее не тянет - а я не вижу пыльных зеленых и ...
Ветеран «Моссад» о спецоперации в Энтеббе, «докторе» Менгеле, который погиб за несколько дней до его задержания, и о «красной линии», которую не должно переходить государство в борьбе с терроризмом. Однажды Элиэзер (Гейзи) Цафрир, высокопоставленный оперативник израильской ...