此文主要以《实战Docker到Kubernetes技术系列视频教程》为基础,记录ovs+docker网络的配置实验过程。
本人对网络不甚了解。只是纯粹按照课程要求,配置成功。具体的原理请自行深入学习。
网络架构图
实验目的
这里有三个不同网络,主机网络192.168.18网段,两台host上的docker0的网络也是不同子网。
需要实现两台不同主机的docker0可以实现通信。即在18.131机器上,可以ping通 172.17.43.1;18.128机器可以ping通172.17.42.1。
实验过程
- 两台虚拟机
分别配置网卡ip为192.168.18.131 与 192.168.18.128
设置firewalld stop,selinux disabled - 安装openvswitch软件
下载相关rpm包,yum install 安装
设置openvswitch服务自启动,并处于运行状态。 - 安装docker软件
按照官方文档安装,设置自启动,并处于运行状态 - 设置docker0ip
默认docker0是没有设置ip的。使用此网页的方法设置docker0 ip。
即添加文件/etc/docker/daemon.json[[email protected] ~]# cat /etc/docker/daemon.json { "bip": "172.17.43.1/24" }
- 使用ovs相关命令,添加br0网桥,br0及gre1 port
在机器18.131上运行: ovs-vsctl add-br br0 ovs-vsctl add-port br0 gre1 -- set interface gre1 type=gre option:remote_ip=192.168.18.128
注意:上面的remote_ip需设置为对端的ip。
执行完毕后,使用ovs-vsctl show可看到如下输出:[[email protected] ~]# ovs-vsctl show 52566796-f849-4b18-a546-0c0b8853432a Bridge "br0" Port "br0" Interface "br0" type: internal Port "gre1" Interface "gre1" type: gre options: {remote_ip="192.168.18.131"} ovs_version: "2.5.0"
之后,执行brctl相关命令,将br0添加到docker0
brctl addif docker0 br0 ip link set dev br0 up ip link set dev docker0 up iptables -t nat -F; iptables -F
- 添加路由
18.128上执行 ip route add 172.17.0.0/16 dev docker0 route add -net 172.17.0.0/16 gw 192.168.18.131
添加路由完成后,ip route的截图如下
- 确定docker0处于up状态
我的实验环境中,docker0网卡一直处于down的状态,我的解决方式是,运行起一个容器,docker0网口就up了。 - 现在执行ping操作,发现两个不同host上的docker0网口可以通信了。
原文地址:http://blog.51cto.com/duf0913/2089193
时间: 2024-10-08 15:30:05