Резервное копирование хранилища etcd
В этом разделе описано, как осуществлять резервное копирование и восстановление из копии хранилища конфигураций etcd с помощью утилит etcdctl и etcdutl.
|
В разделе рассматривается работа с etcd при следующих условиях:
В системе должны быть установлены утилиты |
Резервное копирование etcd
Чтобы создать резервную копию etcd, выполните следующую команду:
ETCDCTL_API=3 etcdctl snapshot save snapshot.db --cert=/etc/ssl/etcd/ssl/ca.pem --key=/etc/ssl/etcd/ssl/ca-key.pem
|
На конкретных инсталляциях SIEM пути к файлам TLS-сертификата (
|
Чтобы получить расширенный лог сообщений о ходе создания резервной копии, добавьте к команде выше опцию --debug=true.
|
Чтобы удостовериться, что резервная копия создана успешно, выполните следующую команду:
etcdutl snapshot status snapshot.db -w table
Пример вывода команды etcdutl snapshot status snapshot.db -w table
+---------+----------+------------+------------+ | HASH | REVISION | TOTAL KEYS | TOTAL SIZE | +---------+----------+------------+------------+ | 7ef846e | 485261 | 11642 | 94 MB | +---------+----------+------------+------------+
Номер ревизии (REVISION) увеличивается на 1 при каждой операции записи в etcd.
Восстановление etcd из резервной копии
Для восстановления etcd из резервной копии в кластере Kubernetes следует использовать вариант восстановления "revision bumps": контроллеры Kubernetes используют так называемые информеры (informers), которые работают как кэш. Восстановление etcd из резервной копии без использования revision bumps может привести к некорректному восстановлению кэшей и, как следствие, неопределенному поведению контроллеров.
Чтобы выполнить восстановление etcd из резервной копии:
-
Выполните следующую команду:
etcdutl snapshot restore snapshot.db --bump-revision <n_bumps> --mark-compacted --data-dir <new_dir>Здесь:
-
<n_bumps>— 64-битное целое число, на которое следует увеличитьREVISION. Его можно оценить, умножив среднее число операций записи в etcd в секунду на число секунд с момента создания резервной копии. Можно установить значение, большее оценки, меньшее — не рекомендуется.Например, если в etcd производится 100 операций записи в секунду, а резервная копия создана 24 часа назад, минимально допустимое значение
n_bumps— 24 * 60 * 100 = 144000. -
<new_dir>— новый каталог данных etcd, например,/var/lib/etcd_restored/.Опция
--mark-compactedотмечает предыдущие ревизии etcd как сжатые. Это позволяет удостовериться, что все процессы отслеживания etcd остановлены, и кэши информеров сделаны недействительными.
-
-
Остановите сервис etcd, выполнив следующую команду:
systemctl stop etcd.service -
В файле
/etc/etcd.envизмените значение переменнойETCD_DATA_DIRна путь, указанный в качестве значения<new_dir>на шаге 1. -
Запустите сервис etcd, выполнив следующую команду:
systemctl start etcd.service -
При необходимости удалите каталог, в котором хранились данные etcd до восстановления, с помощью следующей команды:
rm -rf <old_dir>Здесь:
-
<old_dir>— каталог, в котором хранились данные etcd до восстановления, например,/var/lib/etcd/.
-
Была ли полезна эта страница?