Обновление компонентов кластера Kubernetes без параметра -e 'manual_restore_only=true'

01 октября 2026

ID 318738

Чтобы выполнить обновление компонентов кластера Kubernetes без параметра -e 'manual_restore_only=true':

  1. Выполните подготовку к обновлению:
    1. Убедитесь, что выполнено обновление KUMA с версии 4.0.х до 4.2.х с помощью установщика install.sh и файла инвентаря k0s.inventory.yaml.
    2. Подготовьте выделенную машину ansible-controller, с которой вы будете запускать скрипт обновления, и убедитесь, что машина не является участником кластера. Скрипт обновления предусматривает перезагрузку всех хостов кластера. Если ansible-controller будет машиной внутри кластера, во время штатной перезагрузки хостов кластера выполнение скрипта будет прервано и процесс установки новых версий компонентов Kubernetes аварийно завершится.
    3. Убедитесь, что на выделенной машине ansible-controller и на master-controller достаточно свободного дискового пространства для размещения резервной копии.
    4. Создайте резервную копию Ядра KUMA вручную на случай непредвиденных сбоев.

      Данные метрик в резервную копию не входят и в кластер Kubernetes не переносятся. При обновлении компонентов кластера Kubernetes данные метрик будут утрачены.

      Если вам критически важны данные метрик, обратитесь к специалистам Службы технической поддержки перед обновлением компонентов кластера Kubernetes.

    5. Укажите значение параметра backup_timeout в файле инвентаря k0s.inventory.yaml в секции vars.
  2. Выполните обновление:
    1. На выделенной машине ansible-controller перейдите в директорию установщика 4.2 и запустите скрипт cluster_upgrade.sh, передав в качестве параметра имя актуального файла инвентаря k0s.inventory.yaml:

      ./cluster_upgrade.sh k0s.inventory.yaml

    2. В консоли командной строки подтвердите наличие резервной копии Ядра KUMA и согласие с выполнением обновления, указав yes.

      В процессе обновления будет автоматически создана резервная копия Ядра KUMA autobackup.tar.gz. Скрипт создает резервную копию Ядра KUMA на машине master-controller в директории /root/k0s/, а затем переносит на выделенную машину ansible-controller, с которой выполняется обновление компонентов Kubernetes, в директорию со скриптом. В процессе автоматического восстановления данных Ядра KUMA в новом кластере Kubernetes также используется директория установщика и директория /root/k0s/ на машине master-controller.

      Из резервной копии в дальнейшем будет автоматически выполнено восстановление Ядра KUMA в новом кластере Kubernetes. Если в процессе обновления произойдет сбой, вы сможете поместить созданную вручную резервную копию в файл autobackup.tar.gz, расположенный на машине ansible-controller в директории со скриптом, и перезапустить скрипт cluster_upgrade.sh.

      Перезапись созданной резервной копии автоматически не выполняется.

Обновление компонентов кластера Kubernetes выполнено.

Восстановление при сбое

Доступны следующие сценарии восстановления в случае сбоя:

  • Сбой при обновлении компонентов кластера Kubernetes. Вы можете использовать любой из вариантов восстановления:
    • Поместить созданную вручную резервную копию в файл autobackup.tar.gz, расположенный на машине master-controller в директории со скриптом, и перезапустить скрипт cluster_upgrade.sh. Скрипт примет созданную вручную резервную копию в обработку и продолжит процедуру обновления.
    • Запустить скрипт cluster_upgrade.sh с указанием параметра -e 'manual_restore_only=true' и выполнить восстановление вручную.
  • Сбой при запуске Ядра KUMA после успешного обновления кластера Kubernetes.

    Если вы хотите, чтобы скрипт автоматически повторил удаление и новую установку кластера, необходимо остановить службу k0s на любом из узлов кластера и удалить на этом узле исполняемый файл k0s. Скрипт будет интерпретировать состояние кластера как неконсистентное и выполнит удаление и установку кластера с использованием ранее созданного файла autobackup.tar.gz.

    Для остановки службы k0s на контроллерах кластера и хостах, совмещающих роли контроллера и рабочего узла, необходимо использовать следующие команды:

    sudo systemctl stop k0scontroller.service

    sudo rm /usr/bin/k0s

    Для остановки службы k0s и удаления бинарного файла k0s на выделенных рабочих узлах необходимо использовать следующие команды:

    sudo systemctl stop k0sworker.service

    sudo rm /usr/bin/k0s

    Удаление кластера выполняется только после получения корректного файла резервной копии или явного отказа от автоматического резервного копирования и восстановления применением параметра -e 'manual_restore_only=true' и согласия на продолжение обновления без выполнения резервного копирования. Если у вас отсутствует резервная копия, созданная вручную, в случае сбоя все данные будут утрачены.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!