环境准备四台虚拟机
- 192.168.2.38(管理节点)
- 192.168.2.81(工作节点)
- 192.168.2.100(工作节点)
- 192.168.2.102(工作节点)
yum install -y ntpcat <<EOF>>/var/spool/cron/root00 12 * * * /usr/sbin/ntpdate -u ntp1.aliyun.com && /usr/sbin/hwclock -wEOF##查看计划任务crontab -l##手动执行/usr/sbin/ntpdate -u ntp1.aliyun.com && /usr/sbin/hwclock -w
Docker安装Dockercurl -sSL https://get.daocloud.io/docker | sh
启动dockersudo systemctl start docker
搭建Swarm集群打开防火墙(Swarm需要)- 管理节点打开2377
# managerfirewall-cmd --zone=public --add-port=2377/tcp --permanent
- 所有节点打开以下端口
【docker swarm快速部署redis分布式集群】# 所有nodefirewall-cmd --zone=public --add-port=7946/tcp --permanentfirewall-cmd --zone=public --add-port=7946/udp --permanentfirewall-cmd --zone=public --add-port=4789/tcp --permanentfirewall-cmd --zone=public --add-port=4789/udp --permanent
- 所有节点重启防火墙
# 所有nodefirewall-cmd --reloadsystemctl restart docker
- 图个方便可以直接关闭防火墙
docker swarm init --advertise-addr your_manager_ip
查看join-token[root@manager ~]# docker swarm join-token workerTo add a worker to this swarm, run the following command:docker swarm join --token SWMTKN-1-51b7t8whxn8j6mdjt5perjmec9u8qguxq8tern9nill737pra2-ejc5nw5f90oz6xldcbmrl2ztu 192.168.2.61:2377[root@manager ~]#
加入Swarmdocker swarm join --token SWMTKN-1-51b7t8whxn8j6mdjt5perjmec9u8qguxq8tern9nill737pra2-ejc5nw5f90oz6xldcbmrl2ztu192.168.2.38:2377#查看节点docker node ls
服务约束添加labelsudo docker node update --label-add redis1=true 管理节点名称sudo docker node update --label-add redis2=true 工作节点名称sudo docker node update --label-add redis3=true 工作节点名称sudo docker node update --label-add redis4=true 工作节点名称
单机集群弊端:容器都部署在一个机器上 , 机器挂了 , 就全挂了 。创建容器Tips:这里可以写个脚本启动 , 因为这种方式不常用 , 这里就不写那个脚本了
docker create --name redis-node1 --net host -v /data/redis-data/node1:/data redis --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 6379docker create --name redis-node2 --net host -v /data/redis-data/node2:/data redis --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 6380docker create --name redis-node3 --net host -v /data/redis-data/node3:/data redis --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 6381docker create --name redis-node4 --net host -v /data/redis-data/node4:/data redis --cluster-enabled yes --cluster-config-file nodes-node-4.conf --port 6382docker create --name redis-node5 --net host -v /data/redis-data/node5:/data redis --cluster-enabled yes --cluster-config-file nodes-node-5.conf --port 6383docker create --name redis-node6 --net host -v /data/redis-data/node6:/data redis --cluster-enabled yes --cluster-config-file nodes-node-6.conf --port 6384
启动容器docker start redis-node1 redis-node2 redis-node3 redis-node4 redis-node5 redis-node6
进入容器启动集群# 进入其中一个节点docker exec -it redis-node1 /bin/bash# 创建集群redis-cli --cluster create 192.168.2.38:6379 192.168.2.38:6380 192.168.2.38:6381 192.168.2.38:6382 192.168.2.38:6383 192.168.2.38:6384 --cluster-replicas 1# --cluster-replicas 1 一比一 , 一主一从
分布式集群redis集群至少需要3个主节点 , 所以这里搭建三主三从的集群 , 由于只有4台机器 , 所以在脚本中把前三个节点放到一台机器上了 。经验总结扩展阅读
- 火炬之光手游战力快速提升攻略 火炬之光手游攻略
- 使用dotnet-monitor sidecar模式 dump docker运行的dotnet程序.
- 四十六 SpringCloud微服务实战——搭建企业级开发框架:【移动开发】整合uni-app搭建移动端快速开发框架-环境搭建
- 怎么如何快速赚钱(27个懒人赚钱方法)
- 痛经怎么用土偏方快速解决
- 儿童便秘排便按摩快速怎么回事
- 小孩子肚子痛快速办法
- 怎样快速玩转魔方(如何一秒玩转魔方)
- 让宝宝快速学说话的几个小秘籍
- 3步快速给新生儿洗澡