Как получить время последней загрузки в реестре контейнеров Google - PullRequest
0 голосов
/ 13 января 2020

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

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

1 Ответ

2 голосов
/ 13 января 2020

GCR не хранит дату последнего извлечения на данный момент, но я думаю, что было бы неплохо иметь это, поскольку это немного упростит управление изображениями. Но если изображение не было извлечено в течение некоторого времени, это не означает, что оно не используется.

Сохранить последние версии N

В зависимости от того, как изображения версионированы, вы может запечь удаление в конвейере сборки. Когда ваш основной конвейерный запуск успешно завершается и создается новое задание, запускается очистка самого старого изображения, если у вас есть более n изображений (скажем, более 10 изображений).

Untag / Retag Стратегия для изображения обслуживание

Или вы можете просто поменять тег с v2 на v2-tobe-delete для изображений, которые вы считаете старыми, и сохранить его в течение льготного периода времени. Посмотрите, есть ли какие-либо приложения в производстве каких-либо проблем. Если все выглядит хорошо через несколько дней (или недель, или месяцев), вы запланируете удаление версий. Или восстановите тег, если вы видите какие-либо проблемы.

Проверьте версии изображений, используемые в GKE, перед удалением

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

kubectl get pods --all-namespaces -o jsonpath="{..image}" |\
tr -s '[[:space:]]' '\n' |\
sort |\
uniq -c

ИЛИ

kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}"

Надеюсь, это поможет.

...