node1:192.168.1.50 docker 127.17.1.1
node2:192.168.1.52 docker 127.17.2.11.1
关闭selinuxsetenforce 0(立即生效)vi /etc/selinux/config ,(重启生效)#SELINUX=enforcing
SELINUX=disabled1.2关闭firewallcentos7默认开启了firewall,需关闭。systemctl stop firewalld(立即生效)systemctl disable firewalld(重启生效) 2安装相关软件包yum install dockerservice docker startchkconfig docker onyum install net-toolsyum install bridge-utils编译安装ovs
node01和node02 安装openvswitch最新的为openvswitch-2.4.0.tar.gz,
3.1源码安装。
root用户执行:
yum -y install wget openssl-devel kernel-devel
yum groupinstall “Development Tools”adduser ovswitchovswitch用户执行:
su – ovswitch
wget http://openvswitch.org/releases/openvswitch-2.4.0.tar.gztar -zxvpf openvswitch-2.4.0.tar.gzmkdir -p ~/rpmbuild/SOURCESsed ‘s/openvswitch-kmod, //g’ openvswitch-2.4.0/rhel/openvswitch.spec > openvswitch-2.4.0/rhel/openvswitch_no_kmod.speccp openvswitch-2.4.0.tar.gz rpmbuild/SOURCES/rpmbuild -bb –without check ~/openvswitch-2.4.0/rhel/openvswitch_no_kmod.specexitroot用户执行:
yum localinstall /home/ovswitch/rpmbuild/RPMS/x86_64/openvswitch-2.4.0-1.x86_64.rpm
或者下载安装包http://pan.baidu.com/s/1c0x7Wcw rpm -ivh openvswitch-2.4.0-1.x86_64.rpm3.3启动openvswitch
systemctl start openvswitch.service (立即生效)chkconfig openvswitch on (重启生效)查看状态:systemctl status openvswitch.service -l===========配置篇======
4.node01和node02 配置OVS Bridge及GRE规划:
node01:容器内地址段172.17.1.0/24,新网桥:kbr0,GRE:gre0
node02:容器内地址段172.17.2.0/24,新网桥:kbr0,GRE:gre0
4.1 node01:部署
开启ip转发:cat /proc/sys/net/ipv4/ip_forward,显示为1,表示开启。
ovs-vsctl add-br obr0
ovs-vsctl add-port obr0 gre0 -- set Interface gre0 type=gre options:remote_ip=192.168.1.52 #node1上执行ovs-vsctl add-port obr0 gre0 -- set Interface gre0 type=gre options:remote_ip=192.168.1.50 #node2上执行service docker stop
brctl addbr kbr0brctl addif kbr0 obr0ip link set dev docker0 downip link del dev docker0
vi /etc/sysconfig/network-scripts/ifcfg-kbr0
ONBOOT=yes
BOOTPROTO=staticIPADDR=172.17.1.1 #node1上配置IPADDR=172.17.2.1 #node2上配置NETMASK=255.255.255.0GATEWAY=172.17.1.0 #node1上配置GATEWAY=172.17.2.0 #node2上配置USERCTL=noTYPE=BridgeIPV6INIT=no
vi /etc/sysconfig/network-scripts/route-ens192 #(ip -a 查看网卡)这里route-ens192是和 该目录下的ifcfg-ens192对应的
172.17.2.0/24 via 192.168.12.196 dev ens192 #这里ens192是 ip a命令看到的本地网卡不同的机器可能不一样
修改docker配置文件,添加-b参数
vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled -b=kbr0' #docker1.9貌似不修改不起作用
reboot
说一下中间会遇到的坑1.ip转发Linux系统缺省并没有打开IP转发功能,要确认IP转发功能的状态,可以查看/proc文件系统,使用下面命令: cat /proc/sys/net/ipv4/ip_forward如果上述文件中的值为0,说明禁止进行IP转发;如果是1,则说明IP转发功能已经打开。要想打开IP转发功能,可以直接修改上述文件:echo 1 > /proc/sys/net/ipv4/ip_forward把文件的内容由0修改为1。禁用IP转发则把1改为0。上面的命令并没有保存对IP转发配置的更改,下次系统启动时仍会使用原来的值,要想永久修改IP转发,需要修改/etc/sysctl.conf文件,修改下面一行的值:net.ipv4.ip_forward = 1修改后可以重启系统来使修改生效,也可以执行下面的命令来使修改生效:sysctl -p /etc/sysctl.conf进行了上面的配置后,IP转发功能就永久使能了
2.openvswitch无法打开提示 XX.db找不到
/usr/share/openvswitch/scripts/ovs-ctl start3.docker网卡修改,针对centos7:vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled -b=kbr0'