Как получить время последнего извлечения в реестре контейнеров Google

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

Следовательно, как я могу получить время последнего получения изображений, чтобы затем решить, следует ли их удалять?


person Stephen Chen    schedule 13.01.2020    source источник


Ответы (1)


На данный момент 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