Обновление Nanocl
Nanocl ещё не достиг v1, поэтому форматы Statefile и хранения могут изменяться между минорными выпусками. Прочитайте рекомендации конкретного выпуска перед заменой установки. Миграция с 0.17 на 0.18 несовместима и может требовать простоя.
Экспорт текущего состояния
Перед удалением 0.17 экспортируйте желаемое состояние в пустой каталог:
nanocl backup -o ./nanocl-0.17-backupРезервное копирование создаёт Statefile для каждого пространства имён и отдельные jobs.yml, secrets.yml и resources.yml. Храните копию вне /var/lib/nanocl.
Резервные копии сохраняют схему подключённого демона 0.17 и не преобразуются в 0.18 автоматически. Проверьте и перепишите каждый экспортированный файл перед применением.
Миграция Statefile 0.17 в 0.18
Основная структура Cargo изменилась: вместо одного безымянного контейнера и режимов репликации используются списки именованных контейнеров и целое число реплик:
ApiVersion: v0.17
Cargoes:
- Name: api
Container:
Image: ghcr.io/example/api:1.0.0
Replication:
Mode: Static
Replicas: 2ApiVersion: v0.18
Cargoes:
- Name: api
Replicas: 2
Containers:
- Name: api
Image: ghcr.io/example/api:1.0.0Для каждого Cargo:
- Замените
Containerодним или несколькими именованнымиContainers. - Переместите упорядоченные подготовительные действия в именованные
InitContainers. - Замените прежний объект/режим репликации целым числом
Replicas(не меньше 1). - Переместите режим сети, порты хоста, имя хоста и DNS на уровень Cargo. Публикация портов отдельного контейнера отклоняется.
- Измените ключи объектов и цели прокси с
{name}.{namespace}на канонический порядок{namespace}.{name}.
Statefile VM теперь используют полный локальный путь Image; InitContainer может подготовить образ. Управляемый демоном процесс nanocl vm image удалён.
Операции cargo exec и группового завершения Cargo также удалены. Выберите конкретный процесс через nanocl ps, затем выполните nanocl exec PROCESS -- COMMAND... или nanocl kill PROCESS.
Порядок обновления
- Сохраните Statefile и данные приложений.
- Перепишите и проверьте экспортированные Statefile для схемы 0.18.
- Остановите трафик и нагрузки согласно требованиям приложения.
- Удалите старые компоненты, сохраните внешнюю копию и установите Nanocl 0.18 по руководству установки.
- Проверьте переписанные файлы через
nanocl state render, затем примените по порядку зависимостей (секреты, задания/ресурсы, нагрузки пространств имён согласно вашему развёртыванию). - Перед восстановлением трафика проверьте здоровье Cargo, правила прокси/DNS и работу приложения.
Установщик не выполняет несовместимую миграцию Statefile автоматически и не гарантирует обновление без простоя.
Секрет TLS базы данных
При первом запуске обновлённого nanocld читаемые старые пути сертификатов внутреннего секрета TLS базы данных заменяются содержимым PEM. Сохраните доступность файлов для этого запуска.
Подробнее — в разделах Cargo с несколькими контейнерами, Сеть Cargo и Операции с процессами.