open vswitch实现不同宿主机的容器通讯(centos7)

实验环境:
机器一:192.168.122.222 安装docker,open vswitch
机器二:192.168.122.247 安装docker,open vswitch
ip a查看主机的docker0接口为:172.17.0.1/16

一、部署主机一:
安装openvswitch:

yum -y install wget openssl-devel kernel-devel
yum groupinstall "Development Tools"           //centos7里面这步可取消
 # adduser ovswitch
 # su - ovswitch
 $ wget http://openvswitch.org/releases/openvswitch-2.3.0.tar.gz
$ tar -zxvpf openvswitch-2.3.0.tar.gz 
$ mkdir -p ~/rpmbuild/SOURCES
$ sed 's/openvswitch-kmod, //g' openvswitch-2.3.0/rhel/openvswitch.spec > openvswitch-2.3.0/rhel/openvswitch_no_kmod.spec
$ cp openvswitch-2.3.0.tar.gz rpmbuild/SOURCES/  
$ rpmbuild -bb --without check ~/openvswitch-2.3.0/rhel/openvswitch_no_kmod.spec  
$ exit  
# yum localinstall /home/ovswitch/rpmbuild/RPMS/x86_64/openvswitch-2.3.0-1.x86_64.rpm
# mkdir /etc/openvswitch
启动服务:
# systemctl start openvswitch.service

修改网桥

yum install bridge-utils #安装 brctl命令
vim /etc/sysctl.conf  #永久开启路由转发
net.ipv4.ip_forward=1
#通过ovs-vsctl创建ob0网桥并绑定IP
ovs-vsctl add-br ob0
ovs-vsctl add-port ob0 gre0 -- set Interface gre0 type=gre options:remote_ip=本机以太网接口ip
#通过brctl创建kbr0网桥和ob0关联,并删除docker0网桥的关联
brctl addbr kbr0
brctl addif kbr0 ob0
ip link set dev docker0 down
ip link del dev docker0
创建 /etc/sysconfig/network-scripts/ifcfg-kbr0 ,ip为172.17.2.1 ,内容如下:
# cat /etc/sysconfig/network-scripts/ifcfg-kbr0 
NAME="kbr0"
DEVICE=kbr0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.17.2.1
NETMASK=255.255.255.0
GATEWAY=172.17.2.0
USERCTL=no
TYPE=Bridge
IPV6INIT=no
配置完成后,重启网络服务,或者reboot,开机后检查接口,docker服务,openvswitch服务。

二、部署主机二:
1、安装openvswitch,略。
2、修改网桥,和一相同。
3、配置kbr0网卡如下,ip为172.17.1.1:

# cat /etc/sysconfig/network-scripts/ifcfg-kbr0 
NAME="kbr0"
DEVICE=kbr0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.17.1.1
NETMASK=255.255.255.0
GATEWAY=172.17.1.0
USERCTL=no
TYPE=Bridge
IPV6INIT=no

三、修改路由
主机一:

route -net add 172.17.1.0/24 gw 主机二的以太网接口ip

主机二

route add -net 172.17.2.0/24 gw 主机一的以太网接口ip

四、配置完网卡和路由后修改docker的桥接接口
在配置文件里添加 -b=kbr0

# cat /etc/sysconfig/docker-network
# /etc/sysconfig/docker-network
DOCKER_NETWORK_OPTIONS= "-b=kbr0"
systemctl restart docker

五、运行容器进行测试,略。
六、在防火墙已关闭,以上配置已经做好却不能ping同时,注意iptables,需要显示为ACCEPT,若不是,则 iptables -P FORWARD ACCEPT修改。
[root@docker2 ~]# iptables -nL FORWARD
Chain FORWARD (policy ACCEPT)
target prot opt source destination
DOCKER-ISOLATION all – 0.0.0.0/0 0.0.0.0/0
DOCKER all – 0.0.0.0/0 0.0.0.0/0
ACCEPT all – 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
ACCEPT all – 0.0.0.0/0 0.0.0.0/0
ACCEPT all – 0.0.0.0/0 0.0.0.0/0
七、参考文档
http://www.cnblogs.com/openxxs/p/4690478.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值