rancher2+docker+SpringCloud+jenkins+redis集群+mysql主从搭建:五、安装redis集群、nfs服务 (通过rancher部署服务)

部署redis集群:
在138上部署redis1,在139部署redis2、redis3
在137上执行,也可以在rancher直接部署,它会自动下载镜像
docker pull redis:5.0.5-alpine3.10
按照惯例查看一下镜像详细信息:
docker image inspect redis:5.0.5-alpine3.10
推送到私有仓库去:
docker tag redis:5.0.5-alpine3.10 192.168.109.137:5000/redis:5.0.5-alpine3.10
docker push 192.168.109.137:5000/redis:5.0.5-alpine3.10
docker rmi 192.168.109.137:5000/redis:5.0.5-alpine3.10
docker rmi redis:5.0.5-alpine3.10


redis通过RDB和AOF俩种方式来进行数据的持久化,先创建一个主机目录作为持久化目录进行
rancher部署安装redis服务之前,先做好远程挂载卷(nfs)

137部署nfs服务端:
yum install -y nfs-utils
启动rpcbind服务(一定要先启动rpcbind服务再启动nfs服务)
systemctl status rpcbind
systemctl stop rpcbind
systemctl stop nfs-utils
systemctl start rpcbind
systemctl start nfs-utils
systemctl enable rpcbind
systemctl enable nfs-utils
nfs除了主程序端口2049和rpcbind端口111是固定以外,还会使用一些随机端口,以下配置将定
vim /etc/sysconfig/nfs
MOUNTD_PORT=4001
STATD_PORT=4002
LOCKD_TCPPORT=4003
LOCKD_UDPPORT=4003
RQUOTAD_PORT=4004

vim /etc/exports
/water/runfile/docker_volume    192.168.109.137/24(rw,sync,wdelay,hide,no_subtree_check,sec=sys,root_sqash,no_root_squash)
#这里可以配置多个路径,我们需求只配置了/water/runfile/docker_volume
执行如下命令生效:
rpc.nfsd 8
rpc.mountd
exportfs -r
查看命令:exportfs
systemctl restart nfs-config
systemctl restart nfs-idmap
systemctl restart nfs-lock
systemctl restart nfs-server
systemctl enable nfs-config
systemctl enable nfs-idmap
systemctl enable nfs-lock
systemctl enable nfs-server
查看端口:rpcinfo -p
在138 和 139 机器上:
yum install -y nfs-utils
systemctl status rpcbind
systemctl stop rpcbind
systemctl stop nfs-utils
systemctl start rpcbind
systemctl start nfs-utils
systemctl enable rpcbind
systemctl enable nfs-utils
NFS部署

给138机器添加标签redis=redisM,给139机器添加标签redis=redisS
部署redis集群:
137创建共享目录:
mkdir -pv /water/runfile/docker_volume/redis_cluster
mkdir -pv /water/runfile/docker_volume/redis_cluster/7001/data
mkdir -pv /water/runfile/docker_volume/redis_cluster/7002/data
mkdir -pv /water/runfile/docker_volume/redis_cluster/7003/data
cd /water/runfile/docker_volume/redis_cluster

redis 镜像启动默认是不带配置文件启动的,所以我们要去官网下载修改对应版本的配置文件,上传

主要修改:
注释bind 127.0.0.1 或相应策略修改
port    7001    #端口
cluster-enabled yes    #启用集群模式
cluster-config-file /data/nodes.conf
cluster-node-timeout 5000    #超时时间
logfile "/data/redis.log"    #输出日志
appendonly yes
daemonize no    #是否后台运行,这里不能改为yes,不然docker运行就关闭了
protected-mode no    #非保护模式
pidfile /var/run/redis.pid
redis配置文件修改部分

配置修改完之后,开始在rancher里创建redis服务:

配置修改完之后,开始在rancher里创建redis服务:
在rancher里添加一个新的名称空间:redis-cluster
springcloud--存储--持久卷--添加PV
名字:nfs-redis-cluster-pv
卷插件:NFS Share
路径:/water/runfile/docker_volume  服务器:192.168.109.137
是否只读:否
多主机读写
保存
springcloud--命名空间--添加命名空间
名称:redis-cluster
创建
springcloud--default--添加pvc
名称:nfs-rediscluster-pvc
名称空间选刚创建的:redis-cluster
持久卷选刚创建的: nfs-redis-cluster-pv
自定义:多主机读写
创建
添加:新的名称空间、添加PV、添加pvc

部署redis master:(rancher)

名称:redisclusterm
镜像:192.168.109.137:5000/redis:5.0.5-alpine3.10
命令空间选择刚创建的:redis-cluster
端口映射
7001 tcp HostPort 7001
17001 tcp HostPort 17001
主机调度:为每一个Pod自动选择符合调度规则的主机:添加标签redis=redisM
1.数据卷:使用现有的PVC --名称:redisclusterm-data--pvc选择一下(nfs-rediscluster-pvc)--容器路径:/data --
子路径(pvc下的子路径):redis_cluster/7001/data (即:/water/runfile/docker_volume/redis_cluster/7001/data)--
(在添加一个配置文件的)/usr/local/etc/redis/redis.conf -- redis_cluster/7001/redis.conf
2.(映射时区解决差8小时)添加卷 -- 映射主机目录 -- 卷名:localtime --主机路径:/etc/localtime --
容器路径:/etc/localtime
3.数据卷:将/usr/bin 挂载一下,选择“映射主机目录”,不然启动redis集群有问题
(解决redis集群启动找文件)添加卷 -- 映射主机目录 -- 卷名:usr-bin --主机路径:/usr/bin --
容器路径:/usr/bin
如果这个目录映射不行,就用docker logs命令查看镜像调用的docker-entrypoint.sh文件在哪里
find / -name docker-entrypoint.sh 如:/usr/local/bin/docker-entrypoint.sh
主机路径改为:/usr/local/bin/docker-entrypoint.sh
容器路径改为:/usr/local/bin/docker-entrypoint.sh
默认是不用配置文件启动的,在高级选项,命令里,加上 redis-server /usr/local/etc/redis/redis.conf
高级选项,网络,选用主机网络
防火墙放行
启动
查看容器日志,查看落地日志/water/runfile/docker_volume/redis_cluster/7001/data/redis.log
部署redis master

部署redis slaves:(rancher)

名称:redisCluster
如上;或者我们直接克隆一个redisClusterm然后稍微修改;完毕再克隆一台redisClusters2
部署redis slaves

将三个redis串联起来变成集群:

137机器上,下载redis-cli客户端镜像,
docker pull goodsmileduck/redis-cli:v5.0.3
docker tag goodsmileduck/redis-cli:v5.0.3 192.168.109.137:5000/goodsmileduck/redis-cli:v5.0.3
docker push 192.168.109.137:5000/goodsmileduck/redis-cli:v5.0.3
curl -XGET http://192.168.109.137:5000/v2/goodsmileduck/redis-cli/tags/list
docker rmi 192.168.109.137:5000/goodsmileduck/redis-cli:v5.0.3
docker rmi goodsmileduck/redis-cli:v5.0.3
在rancher上部署redis-cli服务:
redis-cli
192.168.109.137:5000/goodsmileduck/redis-cli:v5.0.3
网络,选用主机网络:是
启动
在rancher里执行命令,将三个redis串联起来
执行命令行
cd bin
redis-cli --cluster create 192.168.109.138:7001 192.168.109.139:7002 192.168.109.139:7003 --cluster-replicas 0
输入yes
#redis集群至少是三个主节点,这只有3个节点,所以没有从节点,所以cluster-replicas为0
#如果是6个节点就三主三从,执行如下
redis-cli --cluster create 192.168.109.138:7001 192.168.109.139:7002 192.168.109.139:7003 ip:7004 ip:7005 ip:7006 --cluster-replicas 1
create 表示创建一个redis集群
--cluster-replicas 表示为集群中的每一个主节点指定一个从节点,即1:1复制

查看redis集群:
在windows启动redis client时,要使用集群模式启动,不然操作key因为哈希槽操作而报错不方便
redis-cli.exe -c -h 192.168.109.138 -p 7001
查看集群中的节点
cluster nodes
部署redis-cli创建集群

 

 

 

 

posted on 2022-01-04 16:06  NG-承  阅读(471)  评论(0编辑  收藏  举报

导航