Как сделать резервное копирование и (на определенный момент времени) восстановление для etcd?

Я понимаю, что etcd хранит свои данные в каком-то распределенном журнале.

Существуют ли инструменты для резервного копирования этих журналов и восстановления из них? Поддерживает ли это также восстановление на определенный момент времени (и как далеко мы можем зайти)?

Дополнительные моменты: содержат ли эти журналы также контрольные журналы (т. Е. Кто обновил данные, предполагая, что установлена ​​аутентификация клиента)?

3 ответа

Я думаю, что это может ответить на ваш вопрос: https://labs.consol.de/kubernetes/2018/05/25/kubeadm-backup.html

Он выполняет автоматическое резервное копирование etcd как Cronjob, так что, если у вас есть резервное копирование раз в час, это будет похоже на момент восстановления?

Вы можете также использовать Heptio ARK по расписанию, чтобы сделать подобное, я полагаю. https://www.youtube.com/watch?v=qRPNuT080Hk

Один из подходов состоит в том, чтобы прочитать все существующие ключи в файл, а затем использовать этот файл, считывая и добавляя все ключи для восстановления. Существует решение с открытым исходным кодом, которое использует этот подход здесь https://github.com/fanhattan/etcd-backup. Я не думаю, что контрольные записи включены.

Если вы хотите сделать резервную копию etcd в формате JSON, которую можно легко восстановить в любом кластере, вы можете использовать эту простую утилиту резервного копирования и восстановления: simple-etcd-backup-restore

Эта утилита упрощает и ускоряет процесс резервного копирования и восстановления. Вы также можете сжимать/распаковывать файл резервной копии и загружать/загружать его в/из корзины AWS S3. Размер файлов резервных копий также становится меньше. Данные в файлах резервных копий также остаются читаемыми.

Другие вопросы по тегам