VK Cloud logo

Резервное копирование по расписанию

Используйте инструмент Velero, чтобы настраивать резервное копирование кластеров по заданному расписанию в формате cron и восстанавливать кластер на основании этого расписания.

Подготовительные шаги

  1. Создайте кластер Kubernetes актуальной версии, если это еще не сделано.

  2. Убедитесь, что вы можете подключиться к кластеру с помощью kubectl.

  3. Установите и настройте Velero, если это еще не сделано.

1. Создайте расписание резервного копирования

Создайте расписание резервного копирования для нужного пространства имен:

velero schedule create <НАЗВАНИЕ_РАСПИСАНИЯ> --schedule="0 7 * * *" --include-namespaces <ПРОСТРАНСТВО_ИМЕН>

Здесь:

  • <НАЗВАНИЕ_РАСПИСАНИЯ> — название расписания, по которому вы сможете в дальнейшем найти его в списке расписаний резервного копирования.

  • <ПРОСТРАНСТВО_ИМЕН> — пространство имен кластера, для которого нужно настроить расписание. Вы можете указать несколько пространств имен через запятую. Пример такого перечисления:

    --include-namespaces test_namespace1,test_namespace2,test_namespace3

    Вы также можете исключить отдельные ресурсы из резервного копирования, даже если они соответствуют пространству имен, указанному при настройке расписания. Примеры такого исключения:

    --exclude-resources secrets--exclude-namespaces test_namespace1,test_namespace2,test_namespace3

    Подробнее в официальной документации Velero.

  • --schedule — параметр, который задает время создания резервных копий в формате cron, например 0 7 * * *. Каждый символ отвечает за конкретное значение времени.

В результате работы такого расписания резервные копии будут создаваться ежедневно в 07:00. Название каждой резервной копии будет в формате <НАЗВАНИЕ_РАСПИСАНИЯ>-<TIMESTAMP>, где <TIMESTAMP> — время ее создания. Пример названия: daily-backup-20260318070000.

2. Просмотрите созданное расписание

  1. Убедитесь, что созданное расписание появилось в списке расписаний резервного копирования, доступных для выбранного пространства имен:

    velero schedule get --namespace <ПРОСТРАНСТВО_ИМЕН> <НАЗВАНИЕ_РАСПИСАНИЯ>

    Здесь:

    • <ПРОСТРАНСТВО_ИМЕН> — пространство имен, для которого создано расписание резервного копирования.
    • <НАЗВАНИЕ_РАСПИСАНИЯ> — название расписания.

    Пример вывода команды:

    NAME                      STATUS   CREATED                         SCHEDULE    BACKUP TTL   LAST BACKUP   SELECTOR   PAUSEDmy-schedule               New      2024-11-11 15:35:32 +0600 +06   0 7 * * *   0s           n/a           <none>     false
  2. Проверьте параметры расписания с помощью команды:

    velero schedule describe <НАЗВАНИЕ_РАСПИСАНИЯ>

    Пример вывода команды:

    Name:         my_scheduleNamespace:    test_namespaceLabels:       <none>Annotations:  <none>Phase:  NewPaused:  false

3. Выполните восстановление данных

Выполните восстановление из резервной копии, которая была создана по указанному расписанию.

velero restore create --namespace <ПРОСТРАНСТВО_ИМЕН> --from-schedule <НАЗВАНИЕ_РАСПИСАНИЯ>

Удалите неиспользуемые ресурсы

Работающий кластер тарифицируется и потребляет вычислительные ресурсы. Если инструмент Velero и ресурсы Kubernetes, созданные для проверки резервного копирования с его помощью, вам больше не нужны, удалите их:

  1. Удалите ресурс restore:

    kubectl -n velero delete restorevelero restore delete
  2. Удалите Velero:

    velero uninstall
  3. Удалите резервные копии из бакета, который использовался Velero.

    При необходимости также удалите сам бакет.

  4. Остановите созданный кластер, чтобы воспользоваться им позже, или удалите его навсегда.

Была ли статья полезна?