建设网站实训,qq浏览器在线,钢铁网站模板,网站如何做流量赚钱本次教程使用docker swarm安装
准备三台机器
hostIP用途node1192.168.31.130redis-master01#xff0c;redis哨兵节点01node2192.168.31.131redis-slave01, redis哨兵节点02node3192.168.31.132redis-slave02 redis哨兵节点02
注意事项#xff1a; 1#xff1a;需要保证三…本次教程使用docker swarm安装
准备三台机器
hostIP用途node1192.168.31.130redis-master01redis哨兵节点01node2192.168.31.131redis-slave01, redis哨兵节点02node3192.168.31.132redis-slave02 redis哨兵节点02
注意事项 1需要保证三台机器在一个网络或一个服务器安全组内相互能ping通) 2: 为了演示需要将哨兵节点与redis节点安装在同一个机器实际线上需要哨兵与redis分开部署以达到高可用性。 目录1创建redis数据挂载卷2 创建redis专用的网络3下载/配置redis配置文件4创建redis集群service5配置主从关系6创建redis哨兵数据挂载卷7创建redis哨兵集群service1创建redis数据挂载卷
#node1机器上执行
docker volume create --name redis_cluster_data1
#node2机器上执行
docker volume create --name redis_cluster_data2
#node3机器上执行
docker volume create --name redis_cluster_data32 创建redis专用的网络
#--driver overlay --attachable 表示创建swarm集群网络且不是service的容器也能加入此网络
docker network create --driver overlay \
--attachable --subnet192.169.0.0/24 redis_cluster_network3下载/配置redis配置文件
本文使用redis6.2.6版本所以下载redis6.2.6版本中的配置文件
点此进入redis官方文件列表 解压下载的文件找到redis.conf文件
修改默认配置文件 bind 127.0.0.1 #注释掉这部分这是限制redis只能本地访问protected-mode no #默认yes开启保护模式限制为本地访问daemonize no#默认no改为yes意为以守护进程方式启动可后台运行除非kill进程可选改为yes会使配置文件方式启动redis失败dir ./ #输入本地redis数据库存放文件夹可选appendonly yes #redis持久化可选
然后将此配置文件复制到docker数据卷所在位置如果你不使用swarm就正常挂载文件就行)
4创建redis集群service
新增node标签
docker node update --label-add rediscluster node1
docker node update --label-add rediscluster node2
docker node update --label-add rediscluster node3创建service
docker service create --name redis_cluster \
--network redis_cluster_network \
--mount typevolume,srcredis_cluster_data,dst/data \
--replicas 3 --constraint node.labels.redis cluster \
redis:6.2.6 --appendonly yes5配置主从关系
选择要成为主节点的IP比如192.168.31.130 进入从节点01从节点02
docker exec -it redis_cluster1 redis-cli
docker exec -it redis_cluster2 redis-cli输入以下命令加入主节点
#固定语法 slaveof 主节点IP 主节点端口
slaveof 192.168.1.10 6379进入主节点查看节点数量是否成功加入
docker exec -it redis_cluster_master redis-cli
info6创建redis哨兵数据挂载卷
#node1机器上执行
docker volume create --name redis_sentinel_data1
#node2机器上执行
docker volume create --name redis_sentinel_data2
#node3机器上执行
docker volume create --name redis_sentinel_data3下载/配置redis哨兵配置文件 由于上面已经下载了redis6.2.6所以我们接着使用文件夹的中的sentinel.conf文件 修改第84行的sentlnel参数改为redis主节点的ip端口 然后将此配置文件复制到docker数据卷所在位置如果你不使用swarm就正常挂载文件就行)
7创建redis哨兵集群service
docker service create --name redis_sentinel_cluster \
--network redis_cluster_network \
#挂载数据卷redis_sentinel_data到容器的/etc/redis目录下 \
--mount typevolume,srcredis_sentinel_data,dst/etc/redis \
# 开放tcp端口且网络不走集群路由网络如果不加modehost,则默认每个docker节点的7369端口都会强制跳转到这些service中无论节点是否在此ndoe中) \
--publish published7369,target26379,protocoltcp,modehost \
# 制作3个副本 并指定符合条件的node节点中生成。\
--replicas 3 --constraint node.labels.redis cluster \
# 指定redis镜像版本指定哨兵模式按指定配置文件启动
redis:6.2.6 redis-sentinel /etc/redis/sentinel.conf查看哨兵节点信息
#进入哨兵节点
docker exec -it sentinel /bin/bash
#输入命令
redis-cli -h 127.0.0.1 -p 26379
#查看sentinel集群信息
info sentinel