Комментарии 3
Спасибо за статью! Это действительно актуальная проблема для части пользователей k8s. Проблематика вопроса раскрыта полностью.
связь публикуемых тегов с коммитами в Git.
за это отдельный плюсик. К сожалению, существующие системы хранения и сборки кода не умеют это отображать, либо требуется построение какого-то своего инструментария вокруг "коробок" (gitlab/github/bitbucket, Harbor/artifactory/Docker Hub etc.)
Ведь у нас по-прежнему есть разработчики, которым нужны образы в реестре (или даже развёрнутые в K8s) для отладки багов…
отчасти проблема может быть решена gitlab environments. Это будет не универсальное решение (=привязанное к гитлабу гвоздями), но факт удаления environment (=удаления feature branch) можно отловить и почистить все временные образы, связанные с этим environment. Вопрос в том, что этот процесс может сбойнуть и все равно должна существовать какая-то глобальная очистка Docker registry....
Однако возможности этих условий ограничиваются такими параметрами, как имена, время создания и количество тегов*
стоит упомянуть, что в Артифактори есть язык запросов, с помощью которого можно очень гибко управлять устаревание образов. Это действительно не совсем "коробочное" решение (натыкал в ГУЕ критерии), но зато очень гибкое.
Спасибо за приятный и в то же время полезный комментарий.
Один из ключевых моментов, который мы старались осветить в этой статье — важность понимания процессов команды и вашего критерия актуальности образов (с какого момента пропадает необходимость хранить конкретный тег в registry). Таким образом, не стоит гнаться за универсальным решением, а нужно исходить из потребностей. Примитивные политики, предлагаемые сервисами, покрывают запросы большинства пользователей (ну или большинство готово мириться с проблемами, которые время от времени возникают).
Что касается AQL — очень гибкий API и может эффективно использоваться как часть вашей реализации. В нашем случае, нам требовался универсальный подход, который применим к произвольной имплементации Docker Registry.
Проблема «умной» очистки образов контейнеров и её решение в werf