Резервное копирование и восстановление данных Alauda Container Platform Registry
Содержание
OverviewPrerequisitesData BackupStep 1: Obtain Current S3 ConfigurationStep 2: Perform S3 Bucket Data BackupData RecoveryStep 1: Prepare Backup DataStep 2: Update ModuleInfo ConfigurationVerificationCheck Module Status(in global cluster)Verify Data Access (API Test)Functionality TestSolution GeneralityOverview
Данное решение предоставляет рекомендации по резервному копированию и восстановлению данных Alauda Container Platform Registry, использующего объектное хранилище, совместимое с S3, в Alauda Container Platform (ACP).
Основная идея: разделить управление самими данными образов (хранящимися в S3) и конфигурацией cluster plugin (определённой в пользовательском ресурсе Kubernetes ModuleInfo).
- Резервное копирование: получение конфигурации S3 из ресурса
ModuleInfoи резервное копирование данных из указанного хранилищаbucket. - Восстановление: после установки
cluster pluginв новом кластере обновить его конфигурацию S3 в ресурсеModuleInfo, указав bucket с восстановленными данными, тем самым завершив интеграцию данных.
Преимущества:
- Разделение операций: резервное копирование и восстановление данных не зависят от процессов развертывания и обновления ACP
cluster plugin. - Управление через конфигурацию: вся информация о подключении управляется декларативным ресурсом
ModuleInfo, что обеспечивает безопасные и надёжные изменения. - Расширяемость: данный шаблон можно применить к другим типам хранилищ (например, локальная файловая система, StorageClass, NAS).
Prerequisites
- Наличие доступа
kubectlи соответствующих прав для работы с целевым Kubernetes кластером. - Наличие учётных данных и клиентских инструментов (например, awscli, rclone, minio-client) для доступа и работы с объектным хранилищем, совместимым с S3, используемым для хранения данных образов.
- Установленный и настроенный
Alauda Container Platform Registrycluster plugin, а также существующий и работоспособный ресурсModuleInfo. - Подготовленное независимое и достаточное по объёму хранилище для резервных данных (например, другой S3 bucket).
Data Backup
Цель данного этапа — получить текущую рабочую конфигурацию S3 и выполнить полное резервное копирование данных образов из хранилища bucket.
Step 1: Obtain Current S3 Configuration
Извлеките конфигурацию хранилища S3 из ресурса ModuleInfo, управляющего Alauda Container Platform Registry cluster plugin. Эта информация является основой для операции резервного копирования.
Следующие команды следует выполнять в global кластере ACP:
Описание ключевых переменных:
S3_BUCKET: имя исходного bucket, где фактически хранятся данные образов.S3_ENDPOINT: URL-адрес подключения к сервису, совместимому с S3.S3_REGION: идентификатор региона S3.S3_SECRET_NAME: имя Kubernetes Secret, содержащего ключи аутентификации.
Step 2: Perform S3 Bucket Data Backup
Используя выбранный клиент S3, примените полученную на предыдущем шаге конфигурацию для полного резервного копирования данных из исходного bucket.
Логика работы:
- Настройте клиент с использованием endpoint ($S3_ENDPOINT), региона ($S3_REGION) и декодированных ключей доступа из Secret.
- Выполните команду синхронизации или копирования для резервного копирования всех данных из исходного bucket ($S3_BUCKET) в подготовленное независимое место хранения (например, другой S3 bucket или путь).
- Зафиксируйте время резервного копирования, имя bucket и endpoint, используемые при операции, и сохраните эту информацию вместе с резервными файлами.
Data Recovery
На данном этапе предполагается, что Alauda Container Platform Registry cluster plugin успешно установлен в целевой среде (новом или восстановленном кластере) через платформу. Цель — изменить его конфигурацию для доступа к восстановленным данным образов.
Step 1: Prepare Backup Data
Используя выбранный клиент S3, восстановите резервные данные образов в целевой S3 storage bucket, к которому гарантирован доступ. Например, восстановите в новый bucket с именем registry-bucket-restored. Убедитесь, что у вас есть права на запись в этот bucket.
Step 2: Update ModuleInfo Configuration
Ключ к восстановлению — обновить ресурс ModuleInfo нового cluster plugin, указав в его конфигурации S3 целевой bucket с резервными данными.
- Определите новую информацию для подключения к S3:
NEW_BUCKET: имя целевого bucket, куда восстановлены данные (например, registry-bucket-restored).NEW_ENDPOINT: endpoint целевого S3 сервиса. Если адрес S3 не изменился, остаётся прежним.NEW_REGION: регион целевого S3 сервиса.NEW_SECRET_NAME: имя Kubernetes Secret с правами чтения/записи для целевого bucket. Если ключи доступа не изменились, это всё ещё$S3_SECRET_NAME.
-
Обновите ресурс ModuleInfo: Используйте команду kubectl patch для прямого обновления секции конфигурации S3 в
ModuleInfo. Контроллер платформы автоматически синхронизирует это изменение со всеми соответствующими Deployment, Pod и другими ресурсами.
Важный момент: эта операция запускает rolling update Pod-ов, связанных с Alauda Container Platform Registry. Новые Pod-ы будут использовать обновлённую конфигурацию для подключения к указанному целевому bucket.
Verification
После завершения обновления выполните следующие шаги для проверки успешного восстановления данных и нормальной работы сервиса.
Check Module Status(in global cluster)
Verify Data Access (API Test)
Используйте API Registry для прямой проверки возможности чтения восстановленных данных образов.
Functionality Test
Попробуйте выполнить pull известного образа из восстановленного реестра или запушить новый образ, чтобы полностью проверить функциональность чтения и записи.
Solution Generality
Хотя в данном решении в качестве примера используется хранилище S3, его архитектурный шаблон применим к различным типам хранилищ, поддерживаемых Registry (например, локальная файловая система, StorageClass, NAS).
Общий принцип: независимо от типа хранилища, основной процесс резервного копирования и восстановления остаётся одинаковым. Сначала извлекаются параметры подключения к хранилищу из соответствующего блока конфигурации (например, s3storage, persistence) в ресурсе ModuleInfo, затем с помощью соответствующих инструментов выполняется резервное копирование данных. Для восстановления после восстановления данных в целевое место достаточно обновить соответствующие поля конфигурации в ModuleInfo. Платформа автоматически направит вновь развернутый экземпляр к этому месту.
Основная ценность: используя единый уровень абстракции конфигурации (ModuleInfo), данное решение отделяет процесс резервного копирования и восстановления данных от конкретных реализаций хранилищ и развертывания приложений в Kubernetes, обеспечивая стандартизированное управление и расширяемость.