Резервное копирование и восстановление etcd
Служба etcd в кластере представляет собой распределённое хранилище ключ-значение, ответственное за хранение информации о конфигурации кластера. etcd развёрнут на всех узлах управляющей плоскости кластера.
После установки плагина Alauda Container Platform Cluster Enhancer для кластера автоматически создаётся ресурс EtcdBackupConfiguration. Этот ресурс содержит информацию об источниках данных для резервного копирования (узлы управления, пути для бэкапов), местах хранения резервных копий, методах резервного копирования и прочее. Каждое выполнение резервного копирования согласно политике создаёт новую запись, что позволяет выполнять резервное копирование конфигурации кластера по требованию или автоматически с заданной периодичностью.
Содержание
Предварительные требованияПринцип работыСправочник по конфигурацииРасписание и хранениеПросмотр записей резервного копированияИспользование UI платформыИспользование CLIКонфигурация резервного копирования в S3Предварительные требованияШаг 1: Создайте секрет S3Шаг 2: Настройте EtcdBackupConfigurationШаг 3: Проверьте резервное копированиеВосстановление etcdПредварительные требованияШаг 1: Создайте резервную копию исходных данных и измените конфигурацию etcdШаг 2: Скопируйте снимок резервной копииШаг 3: Восстановите etcdШаг 4: Распространите восстановленные данныеШаг 5: Перезапустите компоненты кластераШаг 6: Проверьте восстановлениеУправление конфигурациейПредварительные требования
Для включения резервного копирования etcd:
- Скачайте Alauda Container Platform Cluster Enhancer с портала клиентов .
- Загрузите пакет на платформу.
- Установите плагин в ваш кластер.
После установки ресурс EtcdBackupConfiguration создаётся автоматически.
Принцип работы
- Резервное копирование etcd обеспечивается Alauda Container Platform Cluster Enhancer.
- Поддерживается локальное хранилище и объектное хранилище, совместимое с S3. По умолчанию резервные копии сохраняются локально в
/cpaas. При настройке S3-хранилища создаётся дополнительная копия в S3-бакете; локальные резервные копии продолжают создаваться. - Для кластеров, работающих на Immutable OS, использование S3-хранилища обязательно (локальное хранилище не поддерживается).
Справочник по конфигурации
Вы можете настроить ресурс EtcdBackupConfiguration для задания расписания резервного копирования, политики хранения и параметров хранилища.
Расписание и хранение
schedule: Определяет частоту резервного копирования с использованием стандартного синтаксиса cron.- Пример:
0 0 * * *(ежедневное выполнение в полночь).
- Пример:
localStorage: Настройка локального хранилища резервных копий.path: Каталог на хосте для хранения резервных копий. По умолчанию/cpaas.ttl: Время хранения файлов резервных копий в секундах. Резервные копии старше этого срока будут автоматически удалены.- Пример:
7776000(примерно 90 дней).
- Пример:
paused: Установите вtrueдля временной приостановки автоматического резервного копирования без удаления конфигурации.
Пример конфигурации:
Просмотр записей резервного копирования
Для просмотра записей резервного копирования etcd можно использовать UI платформы или командную строку.
Использование UI платформы
- В левой навигационной панели выберите Operation Center > Monitor > Dashboards.
- Нажмите Switch в правом верхнем углу страницы.
- Выберите Cluster → etcd backup для просмотра записей резервного копирования etcd.
Использование CLI
Проверить статус и историю резервного копирования можно, просмотрев поле status ресурса EtcdBackupConfiguration:
В выводе содержится список status.records с деталями каждого бэкапа, включая:
backupTimestamp: Время создания резервной копии.fileName: Имя файла резервной копии (например,snapshot-etcd-<date>-<time>-<ip>.tar).result: Результат операции резервного копирования (например,Success).
Конфигурация резервного копирования в S3
Для включения хранения резервных копий etcd в S3 выполните следующие шаги:
Предварительные требования
- Плагин Alauda Container Platform Cluster Enhancer установлен в кластере.
Шаг 1: Создайте секрет S3
Подготовьте учётные данные доступа к S3 и создайте секрет Kubernetes в пространстве имён cpaas-system:
Шаг 2: Настройте EtcdBackupConfiguration
Измените ресурс EtcdBackupConfiguration, добавив поле remoteStorage с конфигурацией S3:
Шаг 3: Проверьте резервное копирование
Запустите ручное резервное копирование etcd для проверки конфигурации:
После завершения резервного копирования убедитесь, что файлы бэкапа появились в вашем S3-бакете.
Восстановление etcd
Внимание:
- Эта операция выполняет катастрофическое восстановление кластера etcd. Она перезапишет существующие данные. Убедитесь, что у вас есть действительный снимок резервной копии перед началом.
- Процедура связана с высокими рисками. Если вы не уверены в своих действиях, обратитесь в техническую поддержку.
- Во время восстановления API Server Kubernetes будет недоступен.
Предварительные требования
- Kubernetes кластер развернут с использованием имён хостов (в выводе
kubectl get nodeимена узлов — это имена хостов). - Имеется снимок резервной копии etcd.
- Кластер не работает из-за отказа узлов etcd (например, более половины узлов управляющей плоскости недоступны).
- Эта процедура восстановления предназначена для кластера с 3 узлами управляющей плоскости. Если в вашем кластере 5 и более узлов управляющей плоскости, обратитесь в техническую поддержку.
Шаг 1: Создайте резервную копию исходных данных и измените конфигурацию etcd
Выполните следующие команды на всех узлах управляющей плоскости:
Примечание: Проверьте отступ у строки --initial-cluster-state=existing в файле /etc/kubernetes/manifests/etcd.yaml.
Шаг 2: Скопируйте снимок резервной копии
Скопируйте последний снимок резервной копии etcd в каталог /tmp на первом узле управляющей плоскости и переименуйте его в snapshot.db.
Шаг 3: Восстановите etcd
Выполните следующий скрипт на первом узле управляющей плоскости для восстановления снимка.
Примечание: Скрипт рассчитан на кластер с 3 узлами управляющей плоскости. Если у вас 5 и более узлов, обратитесь в техническую поддержку.
После выполнения скрипта в каталоге /root появятся три директории (etcd_$host).
Шаг 4: Распространите восстановленные данные
-
Передайте каталоги с восстановленными данными соответствующим узлам управляющей плоскости. Используйте
scpили аналогичный инструмент для копирования директорий, созданных на шаге 3 (/root/etcd_<hostname>) с первого узла на остальные.Например, передача на etcd-2 и etcd-3:
-
Восстановите данные в каталог данных etcd (
/var/lib/etcd) на каждом узле управляющей плоскости.
Шаг 5: Перезапустите компоненты кластера
Выполните следующие команды на всех узлах управляющей плоскости:
Шаг 6: Проверьте восстановление
-
Проверьте состояние кластера etcd. Выполните команду внутри любого пода etcd или используя бинарник
etcdctlна хосте: -
Проверьте, что поды Kubernetes работают корректно:
-
Перезапустите kubelet на всех узлах (как управляющей плоскости, так и рабочих), чтобы все компоненты переподключились к восстановленному etcd:
Управление конфигурацией
Для изменения стандартной конфигурации резервного копирования etcd обратитесь в техническую поддержку для получения подробной информации о параметрах настройки и расширенных опциях.