redis单机之间的迁移比较好解决,但是和redis和k8s-redis集群迁移目前市面的成熟解决方案较少。接下来分享一个较为成熟的解决方案来解决这个问题。
预备
主备好pod里面的命令
安装pod命令更新:apt-get update
安装vim
命令:apt-get install vim
-
准备好迁移工具
RedisShake
需要把这个RedisShake安装到k8s集群,然后k8s集群相互检测到redis集群的节点(因为节点直接都是用内Pod内网进行通讯所以必须安装到K8s的Pod内部切记!)。
-
进入文件编辑
打开
sync.toml
文件,写上对应的端口号。和redis版本(很重要)
target
的type
要改为cluster
模式。集群地址IP
要填写master
节点。
rdb_restore_command_behavior = "rewrite" # panic, rewrite or skip 遇到重复的key要求重写或者跳过
-
执行脚本
执行命令:
./redis-shake sync.toml