容器混搭搞出线上 Redis 事故,这坑我先踩为敬
事情是这样的, 现在有一个 redis 3.0 集群节点都是裸 redis 或 host 网络模式部署的容器 redis (基本上跟裸 redis 差不多), 需要把它们替换成 macvlan 网络模式的 redis 容器, 以显得我们的 dockerized redis cluster 很上档次。 这事情几个月前也搞过一次毫无压力。然而这一次又搞, 就出岔子了。(这剧本不对啊摔) 于是开始加了两个 macvlan 的容器到上述 redis 集群作为从节点,打算稍候 failover 替换掉主, 过了十分钟左右群里炸毛, 说数据都取不到,或者格式不对。上线一查, 发现正在加从节点的这个集群跟另一个集群的节点混到一起去了。这里吐槽一下 redis 集群的协议,两个正常服务的集群可以直接通过一个 cluster meet 合并成一个集群, 然后槽位分布乱了... 首先当然是紧急恢复线上业务,先拉一个新集群出来再说 (所幸这个集群的数据不需要持久化)。结果,新集群刚弄出来。又被合进了上面那个集群。(这时我满脑子都是某个科教片里两个星系合并的一段视频, 满天都在炸! 然后 cluster no...