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将在这三类节点...