Образы, тома и сети
Образы, тома и сети — ресурсы Docker-демона, которыми могут пользоваться несколько рабочих нагрузок. Opfield показывает подходящие ресурсы и управляет ими, но для безопасной очистки необходимо знать их владельцев и все ссылки. Пока синхронизация не завершена, считайте инвентарь отключённой ноды данными последнего известного состояния.
Определите владельца до очистки
Заголовок раздела «Определите владельца до очистки»В инвентаре эти ресурсы выглядят одинаково, но несут разные риски. Образы влияют на возможность запустить приложение или выполнить откат. Том может содержать единственную копию данных приложения. Сеть может участвовать в обнаружении служб или приватном подключении. Владелец платформы должен задать отдельные правила хранения и резервного копирования для каждого класса, а не применять ко всем одну политику «unused».
Метка unused означает только, что в текущем синхронизированном инвентаре Docker нет активного подключения. Она не доказывает безопасность удаления. Остановленная рабочая нагрузка, сохранённый слот Deployment для отката, ожидающая миграция, инструкция по восстановлению или внешний процесс Compose всё ещё могут зависеть от ресурса. Успешная очистка освобождает хранилище, не удаляя нужный артефакт восстановления, набор данных или границу подключения.
Образы относятся к локальному инвентарю ноды. Загружайте образ, когда он нужен рабочей нагрузке, проверяйте его дайджест и происхождение до использования в рабочей среде и предпочитайте неизменяемые дайджесты для релизов. Артефакты из репозитория следует отслеживать по дайджесту, а не по изменяемому тегу.
Перед удалением образа или запуском prune проверьте активные Containers, неактивные слоты Deployment для отката, выполняющиеся Tasks и ожидаемые действия восстановления. После локальной очистки ноды последующий перезапуск может завершиться ошибкой, пока образ не будет загружен снова. Удаляйте только образы, которые подтверждённо не используются, и дождитесь синхронизации демона, прежде чем считать очистку завершённой. Образы, которые Opfield собрал из Git для уже удалённых Containers, Deployments и Compose Projects, удаляются с ноды автоматически; неиспользуемый образ сборки можно удалить и вручную, а удаление образа, который ещё использует контейнер на ноде, отклоняется с 409 GATEWAY_INTERNAL_IMAGE.
Локальные тома под управлением Opfield — поддерживаемое место для новых постоянных точек монтирования. Том продолжает существовать после Container, если его не удалить отдельно. Это полезно при плановом пересоздании, но опасно, если резервная копия данных не создаётся.
Для переименования тома, изменения его меток, увеличения размера и принятия под управление нужно право docker:volumes:edit, которое можно ограничить одним томом, нодой или папкой. Путь хоста, указанный вместо имени тома, отклоняется с понятным сообщением, а все имена томов проверяются до создания первого из них.
Тома на образе диска
Заголовок раздела «Тома на образе диска»На тарифах Personal и выше том можно создать как Disk image — хранилище ext4 фиксированной ёмкости, которую позже можно увеличить. Новые тома на образе диска доступны для записи приложениям, работающим не от root. Каждый такой том занимает одно loop-устройство на своей ноде Docker, пока существует, поэтому учитывайте это при расчёте набора loop-устройств ноды Docker в LXC.
Docker-демон монтирует тома на образе диска до запуска Docker с помощью шага загрузки gateway-volume-images, который он сам устанавливает для systemd или OpenRC. Если образ тома не удалось смонтировать при загрузке, в точке монтирования появляется пустая заглушка только для чтения, поэтому контейнер ничего не пишет в корневую файловую систему ноды и вместо этого получает ошибку Read-only file system. Демон монтирует образ, как только это становится возможно, — при своём запуске или при проверке раз в 10 минут, — а затем перезапускает контейнеры этого тома, чтобы они увидели свои данные. Том, который не удаётся смонтировать, больше не отключает тома на образе диска на всей ноде.
Перед перемещением, пересозданием, экспортом или удалением рабочей нагрузки найдите все подключённые тома и создайте резервную копию данных с состоянием способом, подходящим для используемого движка. Удаление тома разрушительно, и пересоздание рабочей нагрузки его не отменяет. Экспорт архива Container не включает содержимое томов, поэтому восстановление тома выполняется отдельно.
Сети обеспечивают связь между рабочими нагрузками и могут быть внутренними ресурсами реализации. Не удаляйте вручную сеть, созданную управляемой рабочей нагрузкой или владельцем более высокого уровня: от неё могут зависеть Routes, привязки баз данных, обнаружение служб и согласование состояния.
Для подключения контейнера к сети нужно право на изменение этой сети. Проекты Compose и импортированные архивы контейнеров не могут использовать сеть хоста и внутренние сети Opfield: gateway-secure-links, сети привязок управляемых баз данных gateway-db-* и gateway-storage-*. Сети, которые Opfield создаёт для управляемых хранилищ (gateway-storage-*), внутренние: к ним нельзя подключать контейнеры, отключать их, удалять эти сети или создавать в них контейнеры. Сети Compose, не отмеченные как external, остаются под управлением внешнего процесса Compose. Внешние или намеренно общие сети остаются глобальными ресурсами и удаляются только после отключения всех использующих их рабочих нагрузок. Сначала проверьте состояние ноды и ссылки: кажущаяся неиспользуемой сеть на отключённой ноде не является достаточным основанием для удаления.
Чек-лист безопасной очистки
Заголовок раздела «Чек-лист безопасной очистки»- Дождитесь подключения ноды Docker и синхронизации актуального инвентаря.
- Определите владельца ресурса и каждую активную ссылку, ссылку отката или восстановления.
- Создайте резервную копию данных до любого изменения тома.
- Выполните одно действие очистки через Opfield и проследите его Task.
- После завершения проверьте ожидаемое состояние рабочей нагрузки и подключение хранилища или сети.
Если Task удаления завершилась ошибкой, откройте её сообщение: оно укажет на отсутствующее предварительное условие или зафиксированную зависимость. Восстановите условие либо отсоедините зависимость и повторите действие Opfield. Не запускайте принудительное удаление на уровне демона.
Операторские детали: prune и проверка
Заголовок раздела «Операторские детали: prune и проверка»Запускайте prune только для подключённой ноды со свежим инвентарём и до подтверждения просматривайте список кандидатов. Внутренние ресурсы Opfield и дочерние ресурсы управляемых владельцев скрываются или защищаются там, где продукт способен их определить, но оператор всё равно должен проверить внешнее и совместное владение. Не используйте широкую очистку по расписанию как единственный механизм хранения на нодах рабочей среды.
После очистки образов убедитесь, что активные рабочие нагрузки остаются работоспособными, а необходимые заведомо исправные артефакты для отката сохранены или доступны для загрузки. После очистки томов сравните освобождённый объём и проверьте, что ожидаемая точка монтирования не исчезла. После очистки сетей проверьте обнаружение служб, состояние Compose, Routes и привязки баз данных между рабочими нагрузками.
Если при очистке удалён нужный образ, восстановите его по дайджесту из доверенного реестра. Удалённый том восстанавливается из резервной копии приложения; повторное создание тома с тем же именем не возвращает данные. Для удалённой общей сети может потребоваться восстановить конфигурацию и явно подключить каждого владельца, поэтому сохраните её настройки до удаления.