在Docker中使用Open vSwitch创建跨主机的容器网络

无论哪种模式,想要让容器使用OVN都必须在所有容器宿主机上安装Open vSwitch。

Overlay模式

使用OVN的”overlay”模式要求的Open vSwitch最小版本是2.5。

初始化中心节点

在OVN的架构中,需要有一个中心节点用来存储网络定义。在需要部署的机器中选择一台作为中心节点,IP地址是$CENTRAL_IP。

通过以下命令启动ovsdb-server,监听在TCP的6640端口:

ovs-appctl -t ovsdb-server ovsdb-server/add-remote ptcp:6640

启动ovn-northd守候进程,这个进程用来将Docker存储在OVN_Northbound中的网络定义同步到OVN_Southbound中:

/usr/share/openvswitch/scripts/ovn-ctl start_northd

初始化各节点(仅需执行一次)

以下过程在每个你需要启动容器的机器上仅执行一次(除非OVS数据库清空后,任何其他清空执行多次都会带来问题。)

下面的命令中,

LOCAL_IP指宿主机可以被访问的IP地址,OVS将通过这个IP与其他宿主机通讯。

LOCALIP指宿主机可以被访问的IP地址,OVS将通过这个IP与其他宿主机通讯。ENCAP_TYPE指通道类型。目前可选项是”geneve” 和 “stt”。(注意你的宿主机内核必须支持你选择的

ENCAP_TYPE类型。这两种类型都默认包含在了Open vSwitch的内核模块中。如果你的Open vSwitch内核模块来自于上游Linux发行版,那么geneve最低支持的内核版本是3.18。发行版中的内核模块不支持stt。你可以通过lsmod | grep

ENCAPT​YPE类型。这两种类型都默认包含在了OpenvSwitch的内核模块中。如果你的OpenvSwitch内核模块来自于上游Linux发行版,那么geneve最低支持的内核版本是3.18。发行版中的内核模块不支持stt。你可以通过lsmod∣grepENCAP_TYPE来确认是否支持相应的模式。)

ovs-vsctl set Open_vSwitch . external_ids:ovn-remote=“tcp:$CENTRAL_IP:6640” \

external_ids:ovn-encap-ip= L O C A L I P e x t e r n a l i d s : o v n − e n c a p − t y p e = " LOCAL_IP external_ids:ovn-encap-type=" LOCAL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值