Мы используем KubeDB в нашем кластере для управления нашими БД.
Итак, Redis развертывается через объект KubeDB Redis, и KubeDB прикрепляет PVC к модулю Redis.
К сожалению, KubeDB не поддерживает восстановление или резервное копирование дампов Redis (пока).
Для резервного копирования наше решение состоит в том, чтобы запустить CronJob, который копирует dump.rdb
из модуля Redis в модуль заданий, а затем загружает его на S3.
Для восстановления дампа хотел сделать то же самое, только наоборот. Создайте временный модуль, который загружает резервную копию S3, а затем копирует ее в модуль Redis в папку dump.rdb
.
redis.conf
выглядит так:
....
# The filename where to dump the DB
dbfilename dump.rdb
# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /data
....
Копирование работает. dump.rdb
находится в правильном месте с правильными разрешениями. Я проверил это, запустив второй сервер redis в модуле Redis, используя тот же файл redis.conf
. dump.rdb
загружается на сервер без проблем.
Однако, поскольку я не хочу вручную запускать второй сервер Redis, я перезапустил модуль Redis (с помощью kubectl delete pods), чтобы модуль забрал скопированный файл dump.rdb
.
Каждый раз, когда я удаляю модуль, dump.rdb
удаляется, а новый dump.rdb
создается гораздо меньшего размера (93 байта).
Я не думаю, что это проблема с PVC, так как я создал несколько файлов, чтобы проверить, удаляются ли они. Они не. Только dump.rdb
.
Почему это происходит? Я ожидаю, что Redis просто восстановит БД из dump.rdb
, а не создаст новую.
РЕДАКТИРОВАТЬ: Да, размер dump.rdb
составляет около 47 ГБ. Версия Redis — 4.0.11.
dir /data/
(обратите внимание на/
в конце) в файлеredis.conf
? Кроме того, как вы предоставили файлredis.conf
в KubeDB? - person Emruz Hossain   schedule 28.06.2019redis.conf
монтируется какconfigSource.configMap.name: redis-configmap
. Но я думаю, что мы уже обнаружили проблему... Redis автоматически сбрасывает текущие данные при shutdown. Таким образом, исправление заключается в перезапуске модуляkubectl exec redis-pod redis-cli SHUTDOWN NOSAVE
. - person Moritz Schmitz v. Hülst   schedule 28.06.2019