kubernetes Redis集群升级6.x

在一次偶然的更新中,不慎将redis集群的pod节点给干掉了,自动生成新节点后发现开始报错了,稍微研究了下发现是节点IP变了,正好redis6.0发布了,索性来一次升级+重新部署集群

1、更新redis镜像

# docker pull redis

2、删除原redis数据目录

重新生成的redis集群的pod,IP全部都变了,要么修改所有数据目录的nodes.conf,要么重新部署集群,我这里采取第二个“要么”

删除所有数据目录里面的appendonly.aof、dump.rdb和nodes.conf

# rm -rf /redis/pv{1..6}/appendonly.aof

# rm -rf /redis/pv{1..6}/dump.rdb

# rm -rf /redis/pv{1..6}/nodes.conf

3、删除redis里面的数据

kubectl exec -it redis-app-0 -- "redis-cli"
127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379>

4、删除redis的pod节点

# kubectl delete pod redis-app-0 redis-app-1 redis-app-2 redis-app-3 redis-app-4 redis-app-5

5、重新创建redis-trib容器

# kubectl run -i --tty redistrib --image=centos:7 /bin/bash
# yum install wget -y
# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# yum install redis-trib bind-utils -y

6、重新部署集群

redis-trib create --replicas 1 \
dig +short redis-app-0.redis-service.default.svc.cluster.local:6379 \
dig +short redis-app-1.redis-service.default.svc.cluster.local:6379 \
dig +short redis-app-2.redis-service.default.svc.cluster.local:6379 \
dig +short redis-app-3.redis-service.default.svc.cluster.local:6379 \
dig +short redis-app-4.redis-service.default.svc.cluster.local:6379 \
dig +short redis-app-5.redis-service.default.svc.cluster.local:6379

去nodes.conf里面看下新的IP是否跟集群IP一致就OK了

还有一种方法可以解决,是在rancher文档里面看到的,链接如下:

https://rancher.com/blog/2019/deploying-redis-cluster

使用update-node.sh的方法

有时间了再研究这个吧

留下评论

error: Content is protected !!