docker使用ovs跨主機互聯

2021-07-08 16:59:14 字數 3325 閱讀 6079



node1:192.168.1.50 docker 127.17.1.1

node2:192.168.1.52 docker 127.17.2.1

1.1關閉selinux

setenforce 0(立即生效)

vi /etc/selinux/config ,(重啟生效)

#selinux=enforcing

selinux=disabled

1.2關閉firewall

centos7預設開啟了firewall,需關閉。

systemctl stop firewalld(立即生效)

systemctl disable firewalld(重啟生效)

2安裝相關軟體包

yum install docker

service docker start

chkconfig docker on

yum install net-tools

yum 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 ovswitch

ovswitch使用者執行:

su – ovswitch

wget

tar -zxvpf openvswitch-2.4.0.tar.gz

mkdir -p ~/rpmbuild/sources

sed 『s/openvswitch-kmod, //g』 openvswitch-2.4.0/rhel/openvswitch.spec > openvswitch-2.4.0/rhel/openvswitch_no_kmod.spec

cp openvswitch-2.4.0.tar.gz rpmbuild/sources/

rpmbuild -bb –without check ~/openvswitch-2.4.0/rhel/openvswitch_no_kmod.spec

exit

root使用者執行:

rpm -ivh openvswitch-2.4.0-1.x86_64.rpm

3.3啟動openvswitch

systemctl start openvswitch.service (立即生效)

chkconfig openvswitch on  (重啟生效)

檢視狀態:

systemctl  status openvswitch.service -l

**********=配置篇*****=

4.node01和node02 配置ovs bridge及gre

規劃:4.1 node01:部署

開啟ip**:cat /proc/sys/net/ipv4/ip_forward,顯示為1,表示開啟。

ovs-vsctl add-br obr0

ovs-vsctl add-port obr0 gre0 -- set inte***ce gre0 type=gre options:remote_ip=192.168.1.52   #node1上執行

ovs-vsctl add-port obr0 gre0 -- set inte***ce gre0 type=gre options:remote_ip=192.168.1.50   #node2上執行

service docker stop

brctl addbr kbr0

brctl addif kbr0 obr0

ip link set dev docker0 down

ip link del dev docker0

vi /etc/sysconfig/network-scripts/ifcfg-kbr0

onboot=yes

bootproto=static

ipaddr=172.17.1.1  #node1上配置

ipaddr=172.17.2.1  #node2上配置

netmask=255.255.255.0

gateway=172.17.1.0 #node1上配置

gateway=172.17.2.0 #node2上配置

userctl=no

type=bridge

ipv6init=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 start

3.docker網絡卡修改,針對centos7:vi /etc/sysconfig/docker

options='--selinux-enabled -b=kbr0'

VM跨主機通訊ovs配置

openstack是多節點結構,同一子網的虛擬機器可能被排程到不同計算節點上,因此需要有隧道技術來保證這些同子網不同節點上的虛擬機器能夠二層互通,就像他們連線在同乙個交換機上,同時也要保證能與其它子網隔離。ovs在計算和網路節點上建立隧道port來連線各節點上的網橋br int br int是舉例的...

Docker跨主機通訊

已安裝zookeeper。這裡使用前面mesos裡的zookeeper配置 sudo vi etc default docker etc default docker內容 docker add opts h tcp h unix var run docker.sock cluster store z...

docker跨主機儲存

特點 實驗環境 oracle vm virtualbox虛擬機器 docker 192.168.2.100 docker1 192.168.2.200 curl ssl sh 建立配置檔案 add a service 虛擬機器軟體 endpoint 宿主機ip volume path 宿主機使用者路...