На данный момент GCR не хранит дату последнего извлечения, но я думаю, что было бы неплохо, поскольку это немного упростило бы управление изображениями. Но если изображение какое-то время не вытягивалось, это не значит, что оно не используется.
Сохранить последние N версий
В зависимости от того, как образуются версии, вы можете запечь удаление в конвейере сборки. Когда ваш основной конвейер запускается успешно и создает новое задание, запускается новое задание, которое очищает самое старое изображение, если у вас есть более n изображений (скажем, более 10 изображений).
Стратегия Untag / Retag для обслуживания изображений
Или вы можете просто изменить тег с v2 на v2-tobe-deleted для изображений, которые вы считаете старыми, и сохранить его в течение льготного периода времени. Посмотрите, есть ли у каких-либо приложений в производственной среде какие-либо проблемы. Если через несколько дней (недель или месяцев) все будет хорошо, то вы планируете удалить версии. Или восстановите тег, если увидите какие-либо проблемы.
Перед удалением проверьте версии изображений, используемые в GKE
В идеале вам нужно запросить свой производственный кластер при условии, что вы используете GKE для получения всех версий изображений и удаления неиспользуемых версий изображений, которые старше определенной даты:
kubectl get pods --all-namespaces -o jsonpath="{..image}" |\
tr -s '[[:space:]]' '\n' |\
sort |\
uniq -c
OR
kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}"
Надеюсь это поможет.
person
Parth Mehta
schedule
13.01.2020