ovn架构
参考: https://www.ovn.org/support/dist-docs/ovn-architecture.7.html
CMS ---- neutron|kube-ovn-controller
|
|
+-----------|-----------+
| | |
| 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 |
| | | |
+-------------------------------+ +-------------------------------+
# 1. 整理kube-ovn的服务并与上述拓扑对应
1. kube-ovn-controller k8s cni 网络crd 控制平面:网络 crd 控制器,ipam,单点运行,主备模式,k8s leader选举
2. ovn-central ovn-网络控制平面 接受逻辑流表,存入nb-db,经ovn-northd将逻辑流表转化为物理流表,存入ovn-sb-db
包含:
ovn-nb-db raft 选举,全量快照同步,磁盘最好上ssd
ovn-northd
ovn-sb-db raft 选举,全量快照同步,磁盘最好上ssd
另一个方案,目前同步功能虽然存在,但是受网络波动,磁盘性能等异性相,以及全量快照同步的方式影响,单节点维护也是一个非常靠谱的方案。
类似neutron, kube-ovn也有从数据库(etcd)恢复网络控制平面数据的方案。
当然这种方案可能恢复的时间慢点,适合私有云场景。
公有云大集群还是需要深入底层提供快照增量同步的方式,提高同步效率
ovn-northd 承上启下 上承 nb-db,下接 sb-db
这三个组件确实是ovn 控制平面的核心,所以命名central
3. ovs-ovn ovn 网络转发平面
ovn-controller 从sb-db 同步物理流表
ovs-vswitchd 软件交换机
ovsdb-server 面向流表的持久化数据库,物理机重启后,可直接恢复网络功能
## 位于每一个节点
4. kube-ovn-cni
该组件用于下发kube-ovn cni
同时为kube-ovn cni提供ipam功能,有部分qos逻辑好像在这里面实现
其实ovn-controller有两种角色,一种是只负责大二层的,另一种还提供公网网关snat功能的,在neutron里面前者就是ovn-controller,后者叫做ovn-gw-controller
其实主要在于ovn-controller对应的chassis是否加入到ha chassis group,绑定到lrp。
# 2. 整理neutron-ovn的服务并与上述拓扑对应
# 集群ovn agent
# 控制(网络)节点
(py3env) [root@control01 ~]# neutron agent-list | grep -v compute
+--------------------------------------+------------------------------+------------+-------------------+-------+----------------+----------------------------+
| id | agent_type | host | availability_zone | alive | admin_state_up | binary |
+--------------------------------------+------------------------------+------------+-------------------+-------+----------------+----------------------------+
| control02 | OVN Controller Gateway agent | control02 | | :-) | True | ovn-controller |
| 76f8382f-8af1-4eb7-85da-82f05952013a | OVN Metadata agent | control02 | | :-) | True | neutron-ovn-metadata-agent |
+--------------------------------------+------------------------------+------------+-------------------+-------+----------------+----------------------------+
(py3env) [root@control01 ~]# neutron agent-list | grep compute010
+--------------------------------------+------------------------------+------------+-------------------+-------+----------------+----------------------------+
| compute010 | OVN Controller agent | compute010 | | :-) | True | ovn-controller |
| 190b3f77-8111-48f5-a25f-0ee19fa7a3f8 | OVN Metadata agent | compute010 | | :-) | True | neutron-ovn-metadata-agent |
+--------------------------------------+------------------------------+------------+-------------------+-------+----------------+----------------------------+
# controller01
neutron_server
# control02
neutron_server
neutron_ovn_metadata_agent
ovn_northd
ovn_sb_db
ovn_nb_db
ovn_controller # ovn gw 节点,负责网关
openvswitch_vswitchd
openvswitch_db
# compute
neutron_ovn_metadata_agent
ovn_controller # 仅负责大二层
openvswitch_vswitchd
openvswitch_db
kube-ovn 对照 neutron ovn
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 要点简记 端口未关闭完全组时 kube-ovn default vpc 网络,跨节点ping pod,可以ping...
- 虚拟机热迁移要求虚拟机的主网卡是masquerade,其他网卡可以是bridge模式,也可以是其他模式 在热迁移过...
- 背景 [图片上传失败...(image-3d0ed5-1655084210955)] [图片上传失败...(ima...
- Neutron的网络实现模型 Neutron的三类节点 计算节点 网络节点 控制节点 Neutron将在这三类节点...