Deckhouse Stronghold поддерживает создание расписания для выполнения автоматических резервных копий хранилища секретов. Так как Stronghold хранит данные на диске в зашифрованном виде, то резервная копия тоже будет содержать только зашифрованные данные. Для получения доступа к данным нужно будет развернуть резервную копию в кластер Stronghold и провести процедуру распечатывания хранилища.
Поддерживается сохранение резервных копий на локальный диск в выбранную папку, или в S3-совместимое хранилище.
Управление настройками резервных копий и просмотр их статуса доступны через API, CLI и UI.
Создание/обновление конфигурации автоматического бэкапа
Метод | Путь |
---|---|
POST | /sys/storage/raft/snapshot-auto/config/:name |
Для взаимодействия с данным методом API потребуются sudo права
Параметры
-
interval (integer or string:
) - Время между снэпшотами. Это может быть либо целое число секунд, либо строка формата Go duration (например, 24h). -
retain (integer: 3) - Сколько снимков должно храниться; при записи снимка, если уже хранится больше снимков, чем это число, самые старые будут удалены.
-
path_prefix (immutable string:
) - Дляstorage_type = local
- каталог, в который будут записываться снимки. Для типов облачных хранилищ - префикс bucket, который следует использовать, также игнорируется ведущее `/`. Последующие `/` необязательны. Неизменяемое значение. -
file_prefix (immutable string: “stronghold-snapshot”) - В пределах каталога или префикса бакета, заданного `path_prefix`, имя файла или объекта снэпшота будет начинаться с этой строки. Неизменяемое значение.
-
storage_type (immutable string:
) - Одно из значенийlocal
илиaws-s3
. Остальные параметры, описанные ниже, специфичны для выбранногоstorage_type
и имеют соответствующий префикс. Неизменяемое значение.
storage_type = “local”
- local_max_space (integer: 0) - Для
storage_type=local
максимальное пространство в байтах, которое будет использоваться для всех снимков с заданнымfile_prefix
в каталогеpath_prefix
. Попытки создания снэпшотов будут неудачными, если будет недостаточно места. Значение 0 (по умолчанию) отключает проверку занимаемого места.
storage_type = “aws-s3”
- aws_s3_bucket (string:
) - Название S3 бакета для записи снэпшотов. - aws_s3_region (string) - Регион S3 бакета.
- aws_access_key_id (string) - Идентификатор ключа для доступа в S3 бакет.
- aws_secret_access_key (string) - Секретный ключ для доступа в S3 бакет.
- aws_s3_endpoint (string) - Адрес сервиса S3 бакета.
- aws_s3_disable_tls (boolean) - Отключение TLS для конечной точки S3. Этот параметр следует использовать только для тестирования, обычно в сочетании с
aws_s3_endpoint
. - aws_s3_ca_certificate (string) - Сертификат центра сертификации для конечной точки в формате PEM.
Пример
Создание
Указываются все обязательные поля
1d8 stronghold write sys/storage/raft/snapshot-auto/config/s3every5min - <<EOF
2{
3 "interval": "5m",
4 "path_prefix": "backups",
5 "file_prefix": "main_stronghold",
6 "retain": "4",
7 "storage_type": "aws-s3",
8 "aws_s3_bucket": "my_bucket",
9 "aws_s3_endpoint": "minio.domain.ru",
10 "aws_access_key_id": "oWdPcQ50zTuMjJI",
11 "aws_secret_access_key": "4NzZjboafWyfNTe7aUVgLUdrMurHjty43iUXHFBw"
12}
13EOF
Ответ:
1Key Value
2--- -----
3msg successfully created config
Обновление
Можно указывать не все поля, уже существующие поля не будут изменены
1d8 stronghold write sys/storage/raft/snapshot-auto/config/s3every5min - <<EOF
2{
3 "interval": "3m",
4 "retain": "10",
5 "aws_access_key_id": "vnR9Rfp0toPPgK3",
6 "aws_secret_access_key": "FuloGN1RZCtwINCLJtwHXTQ50zCL7s"
7}
8EOF
Ответ:
1Key Value
2--- -----
3msg successfully updated config
Вывод списка существующих конфигураций автоматического бэкапа
Метод | Путь |
---|---|
LIST | /sys/storage/raft/snapshot-auto/config |
Используется для получения списка названий всех существующих автоматических снэпшотов
Пример
d8 stronghold list sys/storage/raft/snapshot-auto/config
Ответ:
1Keys
2----
3s3every5min
4localEvery3min
Получение параметров конфигурации автоматического бэкапа
Метод | Путь |
---|---|
GET | /sys/storage/raft/snapshot-auto/config/:name |
Пример
d8 stronghold read sys/storage/raft/snapshot-auto/config/s3every5min
Ответ:
1Key Value
2--- -----
3interval 300
4path_prefix backups
5file_prefix main_stronghold
6retain 4
7storage_type aws-s3
8aws_s3_bucket my_bucket
9aws_s3_disable_tls false
10aws_s3_endpoint minio.domain.ru
11aws_s3_region n/a
12aws_s3_ca_certificate n/a
Удаление конфигурации автоматического бэкапа
Метод | Путь |
---|---|
DELETE | /sys/storage/raft/snapshot-auto/config/:name |
Пример
d8 stronghold delete sys/storage/raft/snapshot-auto/config/s3every5min
Ответ:
1Key Value
2--- -----
3consecutive_errors 0
4last_snapshot_end 2025-01-31T15:24:14Z
5last_snapshot_error n/a
6last_snapshot_start 2025-01-31T15:24:12Z
7last_snapshot_url https://minio.domain.ru/my_bucket/backups/main_stronghold_2025-01-31T15:24:12Z
8next_snapshot_start 2025-01-31T15:29:12Z
9snapshot_start 2025-01-31T15:24:12Z
10snapshot_url https://minio.domain.ru/my_bucket/backups/main_stronghold_2025-01-31T15:24:12Z
Получение статуса работы автоматического бэкапа
Метод | Путь |
---|---|
GET | /sys/storage/raft/snapshot-auto/status/:name |
Пример
d8 stronghold read sys/storage/raft/snapshot-auto/status/s3every5min
Ответ:
1Key Value
2--- -----
3msg successfully deleted config