OVN系列2 -- 环境准备
安装OVN
需要安装ovs和ovn,直接从源码安装,可以自己选择安装较新的版本,编译、安装、启动方法都在下面文档中。
ovs安装参考:https://github.com/openvswitch/ovs/blob/master/Documentation/intro/install/general.rst
ovn安装参考:https://github.com/ovn-org/ovn/blob/main/Documentation/intro/install/general.rst
编译安装之前先把依赖安装好:
yum -y install wget openssl-devel gcc make python-devel openssl-devel kernel-devel graphviz kernel-debug-devel autoconf automake rpm-build redhat-rpm-config libtool python-twisted-core python-zope-interface PyQt4 desktop-file-utils libcap-ng-devel groff checkpolicy selinux-policy-devel
其中 kernel-devel 注意使用你自己的内核版本,主要是ovs需要编译内核ko需要使用,较新的ovs和ovn要求使用python3.6以上版本,也需要提前安装。自己编译的时候还算顺利。专门去csdn花了5毛钱下载了个 kernel-devel。
环境配置
搭建一个最简的学习环境,包含两个节点:
- Central节点,包含完整的数据面和控制面功能,包含下图中的所有组件。
$ export PATH=$PATH:/usr/local/share/ovn/scripts
$ ovn-ctl start_northd
$ ovn-ctl start_controller
- Node节点(就这么叫吧。。。),主要是数据面功能,下图中上方的OVN-Northd、Northbound DB、Southbound DB。
image.png$ export PATH=$PATH:/usr/local/share/ovn/scripts
$ ovn-ctl start_controller
做环境配置
- Central节点配置
export Centralip=172.20.16.58
export Nodeip=172.26.201.7
## 配置管理北向连接和南向连接
ovn-nbctl set-connection ptcp:6641:$Centralip
ovn-sbctl set-connection ptcp:6642:$Centralip
## Sounthbound DB 的 IP+Port
ovs-vsctl set open . external-ids:ovn-remote=tcp:$Centralip:6642
## 跨主机,封装方式和 tunnel endpoint IP 地址
ovs-vsctl set open . external-ids:ovn-encap-type=geneve
ovs-vsctl set open . external-ids:ovn-encap-ip=$Centralip
- Node节点配置
export Centralip=172.20.16.58
export Nodeip=172.26.201.7
## Sounthbound DB 的 IP+Port
ovs-vsctl set open . external-ids:ovn-remote=tcp:$Centralip:6642
## 跨主机,封装方式和 tunnel endpoint IP 地址
ovs-vsctl set open . external-ids:ovn-encap-type=geneve
ovs-vsctl set open . external-ids:ovn-encap-ip=$Nodeip
检查ovs配置
- Central节点配置
[root@localhost ~]# ovs-vsctl show
9f827492-13aa-4029-add8-4d5c5f006bd9
Bridge br-int
fail_mode: secure
Port br-int
Interface br-int
type: internal
Port "ovn-ba702e-0"
Interface "ovn-ba702e-0"
type: geneve
options: {csum="true", key=flow, remote_ip="172.26.201.7"}
- Node节点配置
[root@172-26-201-7 ~]# ovs-vsctl show
c39793c4-a552-40b3-bc01-be55208ed292
Bridge br-int
fail_mode: secure
Port "ovn-bd8b43-0"
Interface "ovn-bd8b43-0"
type: geneve
options: {csum="true", key=flow, remote_ip="172.20.16.58"}
Port br-int
Interface br-int
type: internal