Всем привет!
Наверное, каждый сталкивался с неприятным сообщением: «You have reached your pull rate limit». Решение, на первый взгляд, достаточно очевидное – поднять собственный registry, в котором будет находиться все необходимое.
Но что если и этого недостаточно? Если, например, свой registry «откажет»? Или как уследить за всеми образами, которые должны там быть?
Размышляя над этими вопросами, команда Enix пришла к тому, что нужно создать image caching solution. Далее – все как обычно 😊 Посмотрев на то, что предлагает community, команда пришла к выводу (невероятно, но факт!), что надо делать свое.
Так появился kuik – kube-image-keeper, состоящий их трех основных частей:
🍭 Mutating webhook, добавляющий информацию об используемом реестре
🍭 Controller, который создает
CachedImages CR🍭 Другой controller, который скачивает образы из
CachedImages CRТаким образом у ребят получилось создать автоматизированное управление cache’ем для всех используемых образов.
Больше информации, включая детальное описание проблематики, различные архитектуры, которые попробовала команда, и описание процесса получения образов можно найти в статье. А если хочется попробовать kuik в действии, то его можно найти на GitHub.