DOCKER 通过Open vSwitch 实现跨主机容器的通讯

系统环境:Linux cenos7 3.10.0-514.26.2.el7.x86_64

网络环境:

主机1:ENS33 193.168.120.71/24

主机2:ENS33 193.168.120.78/24

安装好bridge-utils openvswitch  


安装openvswitch可以参考网上的资料:

yum -y install make gcc openssl-devel autoconf automake rpm-build redhat-rpm-config

yum -y install python-devel openssl-devel kernel-devel kernel-debug-devel libtool wget

mkdir -p ~/rpmbuild/SOURCES
wget http://openvswitch.org/releases/openvswitch-2.5.0.tar.gz
cp openvswitch-2.5.0.tar.gz ~/rpmbuild/SOURCES/
tar xfz openvswitch-2.5.0.tar.gz

sed 's/openvswitch-kmod, //g' openvswitch-2.5.0/rhel/openvswitch.spec > openvswitch-2.5.0/rhel/openvswitch_no_kmod.spec

构建RPM包:rpmbuild -bb --nocheck ~/openvswitch-2.5.0/rhel/openvswitch_no_kmod.spec  

 yum localinstall ~/rpmbuild/RPMS/x86_64/openvswitch-2.5.1-1.x86_64.rpm 

systemctl start openvswitch.service  



编辑/usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd-current --bip=10.0.71.1/24 \

另一台机器:

ExecStart=/usr/bin/dockerd-current --bip=10.0.78.1/24 \

systemctl enable openvswitch
systemctl start openvswitch

service docker restart
systemctl daemon-reload

service docker restart

此时DOCKER启动容器分配的IP已是文件当中指定的网段

193.168.120.71执行:

 ovs-vsctl add-br br-tun  创建隧道网桥
 ovs-vsctl add-port br-tun vxlan0 -- set Interface vxlan0 type=vxlan options:remote_ip=193.168.120.78  
 brctl addif docker0 br-tun  

 ip route add 10.0.78.0/24 via 193.168.120.78 dev ens33      添加静态路由

193.168.120.78执行:

 ovs-vsctl add-br br-tun  创建隧道网桥
 ovs-vsctl add-port br-tun vxlan0 -- set Interface vxlan0 type=vxlan options:remote_ip=193.168.120.71 
 brctl addif docker0 br-tun  

 ip route add 10.0.71.0/24 via 193.168.120.71 dev ens33      添加静态路由


此时到两台主机上启动的容器应该就能双向PING通了






猜你喜欢

转载自blog.csdn.net/lsysafe/article/details/79713490
今日推荐