AKAIK, единственный способ управлять этим на момент написания этой статьи - imagePullPolicy в спецификации контейнера.
Вы можете установить его на Never
, но ваш модуль не будет работать, так как изображение отсутствует локально. Или вы можете установить его на IfNotPresent
, но каким-то образом вам придется создать изображение с этим конкретным тегом локально в ваших узлах K8s. Любой из этих вариантов не является идеальным, но я считаю, что есть смысл обосновать его включение в ImagePullBackOff
: люди хотели бы знать, почему их модуль не работает.
Итак, IMO, больший вопрос в том, почему вы хотите удалить / сделать недействительными изображения в реестре докеров, которые все еще работают в вашем кластере? Почему бы не обновить pods/deployments/daemonsets/replicasets/statefulsets
последними образами до удаления или аннулирования образа в реестре докеров (также называемого развертыванием)?
Общая практика может выглядеть примерно так:
create new image => deploy it => make sure everything is ok =>
{
ok => invalidate the old image tag.
not ok => rollback => delete new image tag => go back to create new image => create new image tag.
}
Примечание. Слои и изображения не удаляются в реестре Docker. Вы можете удалить или перезаписать теги: Как удалить изображения из личного реестра Docker?