Завдання 10. Резервне копіювання та відновлення реєстру та його компонентів

1. Мета завдання

Виконання цього завдання має на меті:
  • Створити резервну копію реєстру.

  • Внести контрольні зміни до реєстру.

  • Відновити попередню версію реєстру із втратою внесених змін.

  • Налаштувати автоматичне резервне копіювання.

2. Процес виконання завдання

2.1. Створення резервної копії реєстру

  1. Ознайомтеся з інструкцією для резервного копіювання та відновлення екземпляра реєстру та виконайте кроки, описані у розділі Створення резервної копії реєстру (backup).

  2. Відкрийте лог Console Output в меню зліва та переконайтеся, що процес створення резервної копії в Jenkins завершився успішно.

    Час створення резервної копії реєстру залежить від обсягу даних. Наприклад, для тестового реєстру це може зайняти до 20 хвилин.
  3. Не виходячи з Console Output, визначте назву створеної резервної копії. Назву представлено у наступному форматі:

    [INFO] Velero backup - <назва-реєстру>-<дата>-<час> done with Completed status
    • <назва-реєстру> — назва тестового реєстру, резервну копію якого ви створили.

    • <дата> — дата створення резервної копії реєстру.

    • <час> — час створення резервної копії реєстру.

    01 backup name
    Зображення 1. Приклад Console Output: створення резервної копії для реєстру admin-test
Якщо процес створення резервної копії завершився успішно, зі статусом SUCCESS, й ви отримали її назву, це означає, що резервну копію створено у сховищі. В такому разі можна переходити до наступного розділу поточного завдання.

2.2. Внесення контрольних змін до реєстру

Для перевірки результату відновлення реєстру з резервної копії, потрібно внести контрольні зміни до реєстру після того, як створено резервну копію. Як приклад таких змін, можна створити версію-кандидат у Кабінеті адміністратора регламентів та додати до неї просту форму.

  1. Ознайомтеся з інструкцією Створення запитів на внесення змін та створіть нову версію-кандидат.

    При створенні запита використовуйте наступні налаштування:

    • Назва версії: зміна-01

    • Опис зміни: Зміна перед відновленням резервної копії

      02 create merge request

  2. У Кабінеті адміністратора регламентів створіть форму за допомогою Конструктора. Використайте компонент File для моделювання.

    Щоб дізнатися більше про моделювання UI-форм та компонент File, ознайомтеся з наступними інструкціями:

    При створенні форми використовуйте наступні налаштування:

    • Бізнес-назва форми: форма для демонстрації процесу відновлення з бекапу

    • Службова назва форми: restore-test-form

      03 create form

  3. Додайте до форми один компонент — File.

    04 add file field

  4. У результаті у версія-кандидат зміна-01 матиме створену форму restore-test-form.

    05 form added

2.3. Відновлення попередньої версії реєстру із втратою внесених змін

  1. Ознайомтеся з інструкцією з резервного копіювання та відновленню екземпляра реєстру та виконайте кроки, описані в розділі Відновлення реєстру (Restore).

  2. У розділі Швидкі посилання, в секції Адміністративна зона Платформи перейдіть до Сервісу розгортання конфігурації (Jenkins).

    06 02 jenkins

    Оберіть реєстр, який потрібно відновити та знайдіть пайплайн Restore-registry-<registry-name>, де <registry-name> — назва вашого реєстру.

    На кроці із вибором резервної копії, коли пайплайн буде у стані paused, потрібно навести курсор та натисніть на цей крок у Jenkins. У спливному вікні оберіть із випадного списку попередньо створений бекап та натисніть Proceed.

    06 01 restore

  3. Переконайтеся, що процес Restore-registry-admin-test в Jenkins завершився успішно. Для цього відкрийте лог відповідної збірки у розділі Console Output. Збірка має завершитися зі статусом Finished: SUCCESS.

    06 restore pipeline success

    Час відновлення реєстру із резервної копії залежить від обсягу даних. Наприклад, для тестового реєстру це може зайняти від 60 до 90 хвилин.
  4. Відкрийте Кабінет адміністратора регламентів та переконайтеся, що:

    • Зміни, внесені після створення резервної копії, втрачено.

    • Реєстр відновлено до стану на момент створення бекапу, коли версії-кандидата та UI-форми не було створено.

2.4. Налаштування автоматичного резервного копіювання

Перед виконанням цієї частини завдання, рекомендуємо ознайомитися із форматом утиліти Unix cron:

  1. Ознайомтеся з інструкцією по керуванню розкладом резервного копіювання реєстру та виконайте кроки, описані в розділі Налаштування розкладу резервного копіювання.

    При створенні розкладу додайте 20 хвилин до поточного часу та встановіть це значення для годин та хвилин у полі Розклад.

    Також зазначте, що резервні копії потрібно створювати лише протягом робочих днів. Приклад налаштування розкладу з cron:

    07 cronitor

    Зверніть увагу, що опція Build Triggers у Jenkins може використовувати ЛИШЕ числові значення у полях.

    Наприклад, вам потрібно встановити такий розклад:
    "Кожний день тижня, з вівторка по четвер, о 04:05 ранку".

    В такому разі використовуйте cron-вираз із числовими значеннями для днів тижня, тобто замість TUE-THU вкажіть 2-4. Ваш фінальний вираз виглядатиме так:

    5 4 * * 2-4
  2. Підтвердьте зміни та застосуйте налаштування розкладу, як показано у розділах Резервне копіювання реплікацій об’єктів S3 та Застосування конфігурації розкладу відповідної інструкції.

    Зверніть увагу, що час для реплікації у S3 встановлюється за іншим часовим поясом! Виконайте відповідні зміни у секції Резервне копіювання реплікацій об’єктів S3.
  3. Після успішної збірки коду переконайтеся, що у процесі Create-registry-backup-<registry-name> додався автоматичний розклад у секції Build Triggers.

    1. Відкрийте процес та натисніть опцію Configure в меню зліва.

      08 configure backup pipeline

    2. Відкрийте вкладку Build Triggers.

      09 build triggers

  4. У визначений час (n+20 хвилин) переконайтеся, що процес Create-registry-backup-<registry-name> запустився відповідно до встановленого розкладу.

    10 started by timer