本文主要是介绍ovs和ovn安装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ovn和ovs介绍
ovn架构图
CMS||+-----------|-----------+| | || OVN/CMS Plugin || | || | || OVN Northbound DB || | || | || ovn-northd || | |+-----------|-----------+||+-------------------+| OVN Southbound DB |+-------------------+||+------------------+------------------+| | |HV 1 | | HV n |+---------------|---------------+ . +---------------|---------------+| | | . | | || ovn-controller | . | ovn-controller || | | | . | | | || | | | | | | || ovs-vswitchd ovsdb-server | | ovs-vswitchd ovsdb-server || | | |+-------------------------------+ +-------------------------------+
在部署的时候分为central节点和host节点。
central节点运行OVN Northbound DB 、OVN Southbound DB、ovn-northd
ovn北向数据库
ovn南向数据库
ovn的守护进行:用来与每个host节点运行的ovn-controller建立连接,下发流表到ovn-controller控制转发行为
host节点运行ovn-controller、ovs-vswitchd、ovsdb-server
ovn-controller:用来与ovn-northd建立连接接收下发的流表规则并筛选作用到ovs上
ovn和ovs安装环境介绍
host1:192.168.10.102 central节点
host2:192.168.10.101 host节点
host3:192.168.10.103 host节点
在三个节点上都执行下面操作
1.直接在github上搜索ovn,第一个项目便是
2.进去后选择一个分支下载即可
3.由于源码编译ovn需要ovs,因此需要将对应版本的ovs源码也下载下来,从上图中可以跳转到对应版本的ovs代码,一定要从这个ovs连接跳转过去下载,否则可能出现编译不成功,下载完后将代码上传到我的编译环境,并解压。
4.进入ovn-branch-23.09目录,删除里面的ovs空目录,并将解压的ovs-ec1d730163d984934c467e050ebf6d39f8c09384复制到ovn目录中并修改目录名字为ovs
5.进入ovs目录执行下面命令,对ovs进行编译安装
./boot.sh
./configure
./make
./make install
6.回到ovn目录执行下面命令对ovn进行编译安装
./boot.sh
./configure
./make
./make install
7.现在ovs和ovn已经安装完成,会将ovs和ovn安装在/usr/local目录下
8.设置ovs和ovn可执行文件的环境变量
vim /etc/profile 添加下面内容 export PATH=$PATH:/usr/local/share/openvswitch/scripts export PATH=$PATH:/usr/local/share/ovn/scripts 保存执行 source /etc/profile
配置central节点
在central节点执行下面命令
ovn-ctl start_northd
# center need
ovn-nbctl set-connection ptcp:6641
ovn-sbctl set-connection ptcp:6642
ovn-nbctl show
ovn-sbctl show
查看运行的进程
运行了OVN Northbound DB 、OVN Southbound DB、ovn-northd三个进程
监听了6642、6641端口
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
配置host节点
配置host2节点
启动ovs
ovs-ctl start 查看ovs运行状态
ovs-ctl status
配置ovs连接central的参数
ovs-vsctl set open_vSwitch . \
external_ids:ovn-encap-ip="192.168.10.102" \
external_ids:local_ip="192.168.10.101" \
external_ids:ovn-encap-type="vxlan" \
external_ids:system-id="192.168.10.103" \
external_ids:ovn-remote="tcp:192.168.10.102:6642" \
external_ids:ovn-nb="tcp:192.168.10.102:6641"
启动ovn-controller,这个进程是ovs的agent,作为ovs的控制器进行下发流表
ovn-ctl start_controllerovs-vsctl --columns external_ids list open_vswitchovs-ctl status
配置host3节点
启动ovs
ovs-ctl start查看ovs运行状态
ovs-ctl status
配置ovs连接central的参数
ovs-vsctl set open_vSwitch . \
external_ids:ovn-encap-ip="192.168.10.103" \
external_ids:local_ip="192.168.10.103" \
external_ids:ovn-encap-type="vxlan" \
external_ids:system-id=222222222\
external_ids:ovn-remote="tcp:192.168.10.102:6642" \
external_ids:ovn-nb="tcp:192.168.10.102:6641"
启动ovn-controller,这个进程是ovs的agent,作为ovs的控制器进行下发流表
ovn-ctl start_controllerovs-vsctl --columns external_ids list open_vswitchovs-ctl status
查看central和host节点状态
在central节点,可以看到host节点会将自己的隧道信息上报到central节点
在host节点查看,可以看到在br-int节点会创建一个vxlan接口
参考文档:https://www.cnblogs.com/jingjingxyk/p/17089276.html
注意:所有节点一定要关闭防火墙,ovs与ovn和ovs之间的隧道连接都需要放开
这篇关于ovs和ovn安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!