docker集群搭建网络共享问题解决

docker集群搭建网络解决方案
主机1:xxxx centos7-server1
主机2:xxxx centos7-server2
#1.关闭防火墙
service iptables stop

重启后不开启防火墙
chkconfig iptables off 

查看防火墙状态
service iptables status
#2.修改两台主机名
hostname lqguo-centos7-server1
bash

hostname lqguo-centos7-server2
bash

#3.安装consul

docker search consul
docker pull progrium/consul、

docker run -d --restart always -p 8400:8400 -p 8500:8500 \
-p 8600:53/udp -h consul progrium/consul -server -bootstrap -ui-dir /ui


查看端口是否开启
netstat -anput | grep 8500

http://10.28.19.150:8500/
#4.将两台机器的docker加入到consul的集群中来

机器1:
ip a 查看网卡为ens192

vi /usr/lib/systemd/system/docker.service

ExecStart后面加上
--cluster-store=consul://10.28.19.150:8500 --cluster-advertise=ens192:2376
 
机器2:
ip a 查看网卡为ens192

vi /usr/lib/systemd/system/docker.service

ExecStart后面加上
--cluster-store=consul://10.28.19.150:8500 --cluster-advertise=ens192:2376
 
重启(机器1、机器2都需要重启)
(重新加载某个服务的配置文件,如果新安装了一个服务,归属于 systemctl 管理,要是新服务的服务程序配置文件生效,需重新加载)
systemctl daemon-reload
systemctl restart docker.service

http://10.28.19.150:8500/ui/#/dc1/nodes/consul
查看两台docker是否加入consul

这里我失败了,不能查看http://10.28.19.150:8500/ui/#/dc1/nodes/consul,于是我查看了日志

docker logs -f consul容器id

发现有报错,于是我清空了容器,只留下了consul,重新启动了consul
再次查看,问题已经解决。

#5.上面overlay网络准备工作已完成,开始下一步

5.1 首先开启网卡混杂模式:
ip a
主机1:ifconfig ens192 promisc
主机2:ifconfig ens192 promisc

5.2 默认docker swam才能使用overlay网络,现在我单机拿出来用,需要添加一个参数即可 

主机1,主机2随便一台运行即可

创建ov_net1网卡,全局生效
docker network create --driver overlay --attachable ov_net1

查看ov_net1是否创建成功
docker network ls 

查看ov_net1具体信息
docker network inspect ov_net1
创建bbox1容器
docker run -itd --name bbox1 --network ov_net1 busybox
创建http容器
docker run -p 8900:80 -d --network ov_net1 --name web1 httpd

此时会多出来一个桥接卡docker_gwbridge
docker network ls 

查看桥接卡具体信息
dockers network inspect docker_gwbridge

此时是可以ping外网的
docker exec bbox1 ping www.baidu.com 
这个时候是用的桥接卡,桥接卡是在物理机上面的,容器间通讯用到的是ov_net1,对外通讯是桥接卡。
#6.跨主机通讯最后一步
打开路由转发功能
主机1:
cat /etc/sysctl.conf
vi /etc/sysctl.conf

最后面添加:
net.ipv4.ip_forward = 1

马上生效:
sysctl -p

主机2:
cat /etc/sysctl.conf
vi /etc/sysctl.conf

最后面添加:
net.ipv4.ip_forward = 1

马上生效:
sysctl -p

验证

docker exec bbox2  ping -c 2 bbox1
是可以ping通的
zk:
docker run -d --name zookeepertest -p 2185:2181 --network ov_net1 --privileged=true zookeeper

redis:
docker run -d --name redis --network ov_net1 -p 6380:6379  redis redis-server 

nginx:
docker run --name nginx152 -d -p 57080:80 --network ov_net1 -v /opt/docker-tomcat/dailyNginx/conf/nginx.conf:/etc/nginx/nginx.conf nginx


ebank-portal:
docker run -d --name ebank-tomcat --network ov_net1 -p 9091:8080 \
-v /opt/docker-tomcat/ebank-tomcat/webapps:/opt/tomcat7/webapps \
-v /opt/docker-tomcat/ebank-tomcat/conf:/opt/tomcat7/conf \
-v /opt/docker-tomcat/ebank-tomcat/logs:/opt/tomcat7/logs \
-v /opt/docker-tomcat/ebank-tomcat/work:/opt/tomcat7/work \
-v /opt/docker-tomcat/logs:/home/draft-pool-logs \
-v /ecds/draft/certificate:/ecds/draft/certificate \
-v /ecds/message:/ecds/message \
-v /opt/docker-tomcat/ebank-tomcat/bin/draft-pool-ebank:/opt/tomcat7/bin/draft-pool-ebank \
-e JAVA_OPTS='-server -Xms2048M -Xmx2048M -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=512M -XX:MaxPermSize=1024M' \
docker.io/bhzd/tomcat7-jdk8-apr

portal-tomcat:
docker run -d --name portaltomcat152 --network ov_net1 -p 9090:8080 \
-v /opt/docker-tomcat/portal-tomcat/webapps:/opt/tomcat7/webapps \
-v /opt/docker-tomcat/portal-tomcat/conf:/opt/tomcat7/conf \
-v /opt/docker-tomcat/portal-tomcat/logs:/opt/tomcat7/logs \
-v /opt/docker-tomcat/portal-tomcat/work:/opt/tomcat7/work \
-e JAVA_OPTS='-server -Xms2048M -Xmx2048M -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=512M -XX:MaxPermSize=1024M' \
bhzd/tomcat7-jdk7:latest

最好是把hosts也调一下,把overlay的网卡放在最上面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值