Керування розкладом резервного копіювання реєстру
🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію. |
1. Загальний опис
Платформа надає можливість керувати розкладом створення резервних копій компонентів реєстру, а також часом зберігання таких копій у сховищі бекапів.
Резервні копії компонентів створюються за допомогою інструменту velero
та зберігаються у захищеному сховищі бекапів minio
, що знаходиться поза межами кластера Платформи.
Розклад резервного копіювання налаштовується у форматі unix-cron на інтерфейсі адміністративної панелі Control Plane. Період зберігання резервних копій має бути більшим за або дорівнювати одиниці, бути цілим числом та не містити спеціальних символів. Запуск процесів по |
Також система виконує автоматичну реплікацію даних, які зберігаються в S3-бакетах. Ви можете налаштувати розклад резервного копіювання таких реплікацій.
Значення розкладу резервного копіювання для компонентів реєстру, а також для реплікацій бакетів зберігаються до конфігурації реєстру у файл deploy-templates/values.yaml за допомогою пайплайну MASTER-Build-<registry-name>
.
За створення резервних копій реєстру відповідає Jenkins-пайплайн Create-registry-backup-<registry-name>
. Він запускається згідно зі встановленим часом у розкладі, створює бекапи та зберігає їх визначену кількість днів.
2. Налаштування розкладу резервного копіювання
Важливо планувати створення резервних копій на час, коли ваша система найменш завантажена. Рекомендуємо робити це вночі. Так все пройде плавно і без зайвих незручностей. |
2.1. Налаштування розкладу створення резервних копій реєстру та періоду їх зберігання
-
Увійдіть до консолі Control Plane як адміністратор реєстру.
-
Перейдіть до розділу Реєстри та оберіть необхідний.
-
Натисніть кнопку
Редагувати
, що розташована у правому верхньому куті.Налаштування розкладу резервного копіювання та часу зберігання резервних копій доступне також при створенні реєстру, та не є обовʼязковим. -
Перейдіть до секції Резервне копіювання. Тут можна встановити розклад створення резервних копій та період зберігання. Активуйте перемикач та налаштуйте розклад створення автоматичних резервних копій.
За замовчуванням налаштування автоматичних резервних копій вимкнено для нових реєстрів. Розклад резервного копіювання налаштовується у форматі 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 день. Рекомендуємо встановити час збереження більшим за період між створенням копій.
-
-
Перейдіть до налаштування резервного копіювання реплікацій об’єктів S3, або залиште значення за замовчуванням та натисніть
Підтвердити
.
2.2. Резервне копіювання реплікацій об’єктів S3
2.2.1. Контекст
Velero — це відкритий інструмент, що надає можливості резервного копіювання, відновлення, міграції та аварійного відновлення компонентів Платформи. Важливо зазначити, що Velero спроможний створювати резервні копії не лише власне даних (наприклад, зі сховищ, сумісних з S3), а й стану середовища OpenShift, включаючи конфігурації розгортань.
S3-бакети, своєю чергою, слугують для зберігання різноманітних даних. У контексті нашої системи, вони використовуються для реплікації даних між S3-сумісними сховищами.
- Верхньорівневий опис роботи системи наступний:
-
-
Використовуючи компонент velero, Платформа створює резервні копії ресурсів OpenShift (таких як конфігурації, секрети, томи (volumes), ресурси баз даних тощо) згідно з налаштованим графіком. Ці резервні копії зберігаються у сховищі Minio протягом визначеного періоду часу (детальніше див. у розділі Налаштування розкладу резервного копіювання).
-
Крім того, реєстр містить дані, які є необхідними для бізнес-процесів, зокрема тимчасові дані, історія виконання процесів тощо). Ці дані зберігаються у вигляді
ObjectBucketClaim
(obc
) в S3-бакетах. Реплікація цих бакетів відбувається автоматично. Ви можете налаштувати резервне копіювання для таких реплікацій через адміністративну панель Control Plane.
-
Реплікація полягає в автоматичному копіюванні даних з одного бакета до іншого, що може бути корисним, наприклад, для створення резервних копій даних в інших географічних регіонах, що забезпечує високу доступність та надійність.
Таким чином, платформа надає дворівневий захист: через резервні копії ресурсів OpenShift, які створюються за допомогою Velero і зберігаються в Minio, та через реплікацію S3-бакетів, яка гарантує додаткове зберігання даних.
2.2.2. Налаштування бекапів реплікації S3-об’єктів
-
Увійдіть до консолі Control Plane як адміністратор реєстру.
-
Перейдіть до розділу Реєстри та оберіть необхідний.
-
Натисніть кнопку
Редагувати
, що розташована у правому верхньому куті. -
Перейдіть до секції Резервне копіювання > Резервне копіювання реплікацій об'єктів S3.
-
Налаштуйте розклад.
Розклад резервного копіювання налаштовується у форматі unix-cron та визначається за UTC.
Часова зона встановлюється у конфігурації values.yaml та на рівні поди з Jenkins як змінна середовища.
Скористайтеся ресурсом https://crontab.guru/ — простим та зручним редактором для виразів cron, щоб краще зрозуміти логіку налаштувань розкладу.
У полі Розклад вкажіть, наприклад, таке значення:
25 12 * * *
. Використовуйте пробіл як роздільник. Це означатиме, що резервна копія реплікації S3-бакета створюватиметься кожного дня о 12:25.Якщо не задати власний розклад, то система використає значення за замовчуванням згідно з UTC:
30 17 * * * *
.Після введення розкладу резервного копіювання, на інтерфейсі з’являється підказка, яка показує час 3-х наступних запусків створення резервних копій:
Наступний запуск резервного копіювання реплікацій об’єктів S3 (за UTC):
-
09.06.2023 12:25:00
-
10.06.2023 12:25:00
-
11.06.2023 12:25:00
-
-
Налаштуйте місце зберігання резервних копій реплікацій об’єктів S3.
Якщо не встановити власних значень для зберігання, використовуються значення за замовчуванням, встановлені системною при розгортанні реєстру. -
Встановіть власні значення для зберігання резервних копій реплікацій об’єктів S3. Для цього натисніть Задати власні значення та у новому вікні заповніть відповідні поля:
-
Ім'я бакета
Ім’я бакета має бути унікальним серед усіх інших бакетів у вашому середовищі S3 та містити від 3 до 63 символів. Допустимі символи:"a-z"
,"0-9"
,"."
,"-"
. Наприклад,my-s3-bucket-123
. -
Endpoint
Це URL, за яким сервіс з’єднується із S3-середовищем. Наприклад,https://endpoint.com
. Наприклад, для Amazon S3 це може бути https://s3.amazonaws.com для глобального endpoint або https://s3.<Region>.amazonaws.com для конкретного регіону, де<Region>
це ідентифікатор регіону, наприклад,us-west-2
. -
Логін
Це облікові дані, які ви отримуєте від постачальника послуги. Наприклад, для Amazon S3, це ваш AWS Access Key ID, що виглядає приблизно так:AKIAIOSFODNN7EXAMPLE
. -
Пароль
Це облікові дані, які ви отримуєте від постачальника послуги. Наприклад, для Amazon S3, це ваш AWS Secret Access Key, що може виглядати приблизно так:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
.
-
-
Натисніть
Підтвердити
, щоб зберегти власні значення для зберігання, абоВідмінити
, щоб скасувати внесення змін. -
На сторінці Резервне копіювання знову натисніть
Підтвердити
, щоб зберегти зміни та відправити запит на оновлення конфігурації реєстру.
-
2.3. Застосування конфігурації розкладу
У результаті виконання налаштувань розкладу резервного копіювання, описаних у попередніх підрозділах, формується запит на оновлення зі статусом Новий
та типом Редагування реєстру
.
-
У розділі Реєстри > Запити на оновлення знайдіть необхідний запит.
-
Відкрийте сформований запит, натиснувши іконку перегляду — 👁.
-
У новому вікні зіставте 2 версії змін, переконайтеся, що внесені вами дані вірні, та натисніть
Підтвердити
. Ви також можете відразу відхилити зміни до конфігурації, натиснувшиВідхилити
.Запропоновані зміни вносяться до конфігурації файлу deploy-templates/values.yaml репозиторію реєстру у разі підтвердження. У результаті запит набуває статусу
Підтверджено
. -
Зачекайте, доки виконається збірка коду. Це може зайняти декілька хвилин.
Після успішного застосування конфігурації, у встановлений час запускається Jenkins-пайплайн Create-registry-backup-<registry-name>
. Він застосовує параметри заданої конфігурації та створює резервні копії у сховищі бекапів (див. детальніше у розділі Створення та перевірка бекапів).
3. Створення та перевірка бекапів
У визначену дату та час мають бути створені резервні копії, згідно із розкладом, вказаним у конфігурації (див. — Налаштування розкладу резервного копіювання).
- Перевірити це можна наступним чином:
-
-
У відомостях про реєстр відкрийте секцію Компоненти реєстру та перейдіть до Jenkins.
-
Перейдіть до теки з необхідним реєстром та оберіть пайплайн
Create-registry-backup-<registry-name>
. Якщо пайплайн підсвічується зеленим, то збірку можна вважати успішною. -
Відкрийте деталі збірки.
-
Перейдіть до виводу консолі, Console Output, щоб переглянути технічний лог виконання пайплайну.
-
Прокрутіть бігунок униз сторінки та переконайтеся, що резервну копію реєстру створено.
Приклад 1. Console Output. Успішне створення резервної копії реєстру[INFO] Velero backup - external-1-2023-02-17-17-07-36 done with Completed status
Вираз показує, що створено резервну копію для реєстру із певною назвою (тут —
external-1
), дату та час створення бекапу та статус успішного завершення.
Після закінчення строку зберігання, система бекапування видаляє застарілі резервні копії. -