Керування розкладом створення резервних копій реєстру та часом їх зберігання

1. Загальний опис

Платформа надає можливість керувати розкладом створення резервних копій компонентів реєстру, а також часом зберігання таких копій у сховищі бекапів.

Резервні копії компонентів створюються за допомогою інструменту velero та зберігаються у захищеному сховищі бекапів minio, що знаходиться поза межами кластера Платформи.

Розклад резервного копіювання налаштовується у форматі unix-cron на інтерфейсі адміністративної панелі Control Plane.

Час зберігання резервних копій має бути більшим за або дорівнювати одиниці, бути цілим числом та не містити спеціальних символів.

Значення зберігаються до конфігурації реєстру у файл deploy-templates/values.yaml.

Відповідні параметри застосовуються завдяки Jenkins-пайплайну Create-registry-backup-<registry-name>.

2. Налаштування розкладу

  1. Увійдіть до консолі Control Plane як адміністратор реєстру.

    update cluster mgmt 01

  2. Перейдіть до розділу Реєстри та оберіть необхідний.

    change key 01

  3. Натисніть кнопку Редагувати, що розташована у правому верхньому куті.

    Налаштування розкладу резервного копіювання та часу зберігання резервних копій доступне також при створенні реєстру, та не є обовʼязковим.

    change key 02

  4. Перейдіть до секції Резервне копіювання. Тут можна встановити розклад створення резервних копій та період зберігання. Активуйте перемикач та налаштуйте розклад створення автоматичних резервних копій.

    За замовчуванням налаштування автоматичних резервних копій вимкнено для нових реєстрів.

    backup schedule registry components 01

    Розклад резервного копіювання налаштовується у форматі unix-cron та визначається за київським часом.

    За замовчуванням часовий пояс Europe/Kiev встановлюється у конфігурації values.yaml та на рівні поди з Jenkins як змінна середовища.

    Враховується зміщення на +2 години (UTC+2) у зимовий та +3 години (UTC+3) у літній час.

    Скористайтеся ресурсом https://crontab.guru/ — простим та зручним редактором для виразів cron, щоб краще зрозуміти логіку налаштувань розкладу.

    • У полі Розклад вкажіть, наприклад, таке значення: 5 10 * * MON-FRI. Використовуйте пробіл як роздільник.

      Це означатиме, що резервна копія для середовища реєстру створюватиметься кожного дня, з понеділка по п’ятницю, о 10:05 за київським часом.

      Після введення розкладу резервного копіювання, на інтерфейсі з’являється підказка, яка показує час 3-х наступних запусків створення резервних копій.
    • У полі Час зберігання (днів) вкажіть, наприклад, 5. Тобто бекап зберігатиметься у сховищі протягом 5 днів.

      Значення може бути лише додатним числом та не меншим за 1 день. Рекомендуємо встановити час збереження більшим за період між створенням копій.

    backup schedule registry components 02

  5. Натисніть ПІДТВЕРДИТИ, щоб зберегти зміни.

    В результаті сформується запит на оновлення зі статусом Новий.

  6. Поверніться до розділу Реєстри, прокрутіть бігунок униз сторінки та знайдіть секцію Запити на оновлення.

    cp submit mr 1

  7. Відкрийте сформований запит, натиснувши іконку перегляду — 👁.

    Запропоновані зміни вносяться до конфігурації файлу deploy-templates/values.yaml у разі підтвердження.
  8. У новому вікні зіставте 2 версії змін, переконайтеся, що внесені вами дані вірні, та натисніть Підтвердити. Ви також можете відразу відхилити зміни до конфігурації, натиснувши Відхилити.

    У вікні для порівняння можна зручно перевірити 2 версії змін: поточну (зліва) та нову (справа).

    backup schedule registry components 6

    cp submit mr 3

    У результаті запит набуває статусу Підтверджено. У встановлений час запускається Jenkins-пайплайн Create-registry-backup-<registry-name>. Він застосовує параметри заданої конфігурації та створює резервні копії у сховищі бекапів.

  9. Зачекайте, доки виконається збірка коду. Це може зайняти декілька хвилин.

3. Перевірка створених бекапів

У визначену дату та час мають бути створені резервні копії, згідно із розкладом, вказаним у конфігурації (див. — Налаштування розкладу).

Перевірити це можна наступним чином:
  1. У відомостях про реєстр відкрийте секцію Компоненти реєстру та перейдіть до Jenkins.

    backup schedule registry components 1

  2. Перейдіть до теки з необхідним реєстром та оберіть пайплайн Create-registry-backup-<registry-name>. Якщо пайплайн підсвічується зеленим, то збірку можна вважати успішною.

    backup schedule registry components 2

  3. Відкрийте деталі збірки.

    backup schedule registry components 3

  4. Перейдіть до виводу консолі (Console Output), щоб переглянути технічний лог виконання пайплайну.

    backup schedule registry components 4

  5. Прокрутіть бігунок униз сторінки та переконайтеся, що резервну копію реєстру створено.

    Приклад 1. Console Output. Успішне створення резервної копії реєстру
    [INFO] Velero backup - external-1-2023-02-17-17-07-36 done with Completed status

    Вираз показує, що створено резервну копію для реєстру із певною назвою (тут — external-1), дату та час створення бекапу та статус успішного завершення.

    backup schedule registry components 5

Після закінчення строку зберігання, система бекапування видаляє застарілі резервні копії.