Частный склад Openshift взорвался, что делать? ? ! !

фон

Как все волнуются, диск частного склада Openshift взорвался, а уровень использования составляет 100%!!!
Используете его oc adm pruneдля очистки кластера openshift, осмелитесь?
Будут ли одновременно удалены необходимые зеркальные изображения? Если да, то вы можете выйти только как администратор базы данных.
Давайте обсудим, oc adm pruneкак его использовать сегодня.

сначала дай ответ

Как и следовало ожидать, наше окончательное решение по очистке изображения:oc adm prune images

oc login -u admin -p admin
oc adm prune images --keep-younger-than=400m --confirm

注意Вышеупомянутые oc adm prune imagesкоманды могут выполняться только от имени обычных пользователей, а не от имени пользователя system:admin, поэтому сначала вы должны войти в систему как обычные пользователи, а у пользователя есть разрешение system:image-pruner.

Сократите использование команды image oc adm prune images.

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

oc adm prune images [<options>]

описание опций

параметр иллюстрировать
--все По умолчанию: true, удаляет не только избыточные зеркала в хранилище частных зеркал, но также удаляет ImageStream, подключенный к внешним зеркалам в ImageStream. Установите --all=false, если вы удаляете зеркала только из частных зеркальных складов.
--центр сертификации Чтобы получить доступ к сертификату частного зеркального хранилища, путь в openshift — /etc/origin/master/registry.crt на главном узле. Если команда выполняется на главном узле кластера, этот параметр добавлять не нужно.
--подтверждать Подтвердите реализацию, если нет, добавьте, просто проверьте дрель.
--force-insecure Принудительно установить небезопасное соединение без проверки сертификата
--keep-tag-revisions=<N> По умолчанию: 3, хранить N изображений для каждого тега в каждом потоке изображений.
--keep-младший-чем=<длительность> По умолчанию: 60 м, не очищать изображения, время создания которых меньше времени длительности, и не очищать зеркальные изображения, на которые ссылаются объекты, время создания которых меньше времени длительности.
--prune-over-size-limit Очистка изображений, которые превышают указанные лимиты диапазона в одном проекте. Этот приоритет нельзя использовать вместе с --keep-tag-revisions и --keep-younger-than.
--register-url Приватная зеркальная ссылка, если команда выполняется на главном узле кластера, этот параметр добавлять не нужно.

Используйте --keep-tag-revisionsи --keep-younger-thanдля очистки зеркала, зеркало, соответствующее следующим ситуациям, не будет очищено.

  • Все модули созданы в течение --keep-younger-thanуказанного времени.
  • Создать --keep-younger-thanвсе ImageStreams в течение указанного времени.
  • Все работающие капсулы
  • Все поды в состоянии ожидания
  • Все контроллеры репликации
  • Все конфигурации сборки
  • Все сборки
  • Самое последнее --keep-tag-revisionsизображение в элементах состояния ImageStream.

При использовании --prune-over-size-limitизображений, очистка которых превышает указанный лимит, указанные зеркала не будут очищены в следующих случаях:

  • Все работающие капсулы
  • Все поды в состоянии ожидания
  • Все контроллеры репликации
  • Все конфигурации сборки
  • Все сборки

Примечание. Следующие ситуации фактически не удаляют изображение.

  1. Удалите изображение вручную, при этом будут удалены только данные в etcd, а не зеркальное изображение на личном складе.
oc delete image <sha256:image-id>

oc adm prune используется для очистки развертываний и сборок

Конечно oc adm prune, он используется не только для очистки образов, но и для очистки развертываний и сборок.

oc adm prune deployments/builds [<options>]

описание опций

параметр иллюстрировать
--подтверждать Подтвердите реализацию, если нет, добавьте, просто проверьте дрель.
--дети сироты Очистите все развертывания/сборки, которых нет в файле Deploymentconfig/buildconfig.
--keep-complete=<N> По умолчанию: 5, сохранить последние N успешных развертываний/сборок.
--keep-failed=<N> По умолчанию: 1, сохранять последнюю версию развертывания/сборки с ошибками N.
--keep-младший-чем=<длительность> По умолчанию: 60 м, не очищать развертывание/сборку, время создания которой меньше продолжительности.

Пример: очистка развертываний/сборок

oc adm prune deployments --orphans --keep-complete=5 --keep-failed=1 --keep-younger-than=60m --confirm
oc adm prune builds --orphans --keep-complete=5 --keep-failed=1 --keep-younger-than=60m --confirm

Регулярная уборка, чтобы никогда не было проблем

$ cat cleanregistry.sh
#!/bin/bash
date
oc login -u admin -p password
oc adm prune builds --orphans --keep-complete=25 --keep-failed=5 --keep-younger-than=60m --confirm
oc adm prune deployments --orphans --keep-complete=25 --keep-failed=10 --keep-younger-than=60m --confirm
oc adm prune images --keep-younger-than=400m --confirm

$ crontab -l
0 0 * * * /usr/bin/cleanregistry.sh >> /var/log/cleanregistry.log 2>&1

Guess you like

Origin blog.csdn.net/foolere/article/details/131273734