,项目组对OVN原汁原味的定位如下所示。 OVN的DB本身又细分为了Northbound DB和Southbound DB,两者之间是通过守护进程OVN-Northd来联系起来的。 、logical ports、ACL等等) OVN的,OVN-Northd根据OVN的数据结构产生logical flows(租户网络视图中的转发逻辑,与底层OVS中的流表不同)存入Southbound 实际上,DragonFlow和OVN似乎也没有要与ODL、ONOS相抗衡的打算,倒是DragonFlow和OVN彼此一直在叫着劲儿。 如果要比较DragonFlow和OVN的话,个人比较看好OVN。 另外OVN从最开始就对接了ML2,但是DragonFlow现在还是独立的Plugin,觉悟上似乎OVN也是更胜一筹。ML2的生态圈可是早就已经打造起来了,另起炉灶人家能愿意吗。
OVN安装和配置 控制节点 yum install -y openvswitch-ovn-central.x86_64 openvswitch-ovn-common.x86_64 openvswitch-ovn-host.x86 _64 openvswitch-ovn-vtep.x86_64 yum install -y python2-networking-ovn.noarch python2-networking-ovn-metadata-agent.noarch =60000 #控制节点会运行三个ovs-dbserver,原先的ovs-db, ovn-south-db, ovn-north-db systemctl start ovn-northd vim /etc 64 openvswitch-ovn-common.x86_64 openvswitch-ovn-host.x86_64 openvswitch-ovn-vtep.x86_64 yum install OVN实验 ?
导读 Kube-OVN是一款基于OVS/OVN的K8s网络项目,它通过将 OpenStack 领域成熟的网络功能平移到 K8s,极大增强了 K8s 容器网络的安全性、可运维性、管理性和性能,为 K8s 作者:Kube-OVN社区贡献者 Mr.Li 作者说 kube-ovn-controller是kube-ovn项目主要资源的CRD控制器,主要功能包含vlan、provider、vpc、subnet等CRD 详见下图install.sh kube-ovn-controller的镜像也是kubeovn/kube-ovn:v1.8.0,是通过软连接kube-ovn二进制文件为kube-ovn-controller VPC资源至少包含一个对应ovn项目的逻辑路由器,即我们用ovn-nbctl lr-add创建出来的lr资源。 我们看下逻辑路由器的创建: Kube-OVN源码解析系列由社区成员倾情奉献 手把手教你征服Kube-OVN 下期:我们讲Pod IP地址管理 敬请期待!
导读 Kube-OVN是一款基于OVS/OVN的K8s网络项目,它通过将 OpenStack 领域成熟的网络功能平移到 K8s,极大增强了 K8s 容器网络的安全性、可运维性、管理性和性能,为 K8s 作者:Kube-OVN社区贡献者 Mr.Li 作者说 kube-ovn-controller是kube-ovn项目主要资源的CRD控制器,主要功能包含vlan、provider、vpc、subnet等CRD 详见下图install.sh kube-ovn-controller的镜像也是kubeovn/kube-ovn:v1.8.0,是通过软连接kube-ovn二进制文件为kube-ovn-controller VPC资源至少包含一个对应ovn项目的逻辑路由器,即我们用ovn-nbctl lr-add创建出来的lr资源。 我们看下逻辑路由器的创建: Kube-OVN源码解析系列由社区成员倾情奉献 手把手教你征服Kube-OVN 下期:我们讲Pod IP地址管理 敬请期待!
这幅架构图描绘了OVN的整体架构和进程分布,为了讨论方便我们把OVN中承担“管理”任务的节点成为ovn-central;把承担实际数据转发的节点成为ovn-host(可以类比成controller node 3.3 安装配置 在ovn-node1上作为“管理节点”(架构图中叫 ovn-central,Ubuntu中软件包也叫 ovn-central) ? 安装成功后可以看到ovn相关进程, ? 在ovn-node1、ovn-node2上安装ovn-host ? 安装成功后可以看到ovn相关进程 ? ? " external_ids:ovn-encap-type=vxlan` 在ovn-node1上执行验证ovn-node2添加成功(chassis) ? 接下来的一章我们会开始OVN的正式学习——学习OVN网络模型中的第一部分“逻辑交换机”。
OVS与OVN安装与配置 编译安装 (吐槽一下ovn写的shit一般的文档) 推荐用源码安装地址 wget https://www.openvswitch.org/releases/openvswitch /configure && make && make install 有个ovn的sandbox 可以这样make : make sandbox SANDBOXFLAGS="--ovn" 太低级咱不玩 start_controller # 启动ovn controller $ ovn-sbctl show # 验证 $ ovn-nbctl show # 验证 配置ovs与ovn相连接 # ovn-nbctl 实践 有了ovs相关的实践,就具备了一定的基础,下面就可以进一步去了解ovn,ovn很重要的一点就是理解逻辑交换机,ovn是管控层面的,比如每台机器上都起了一个ovs交换机(软交换机,或者相对于逻辑交换机称之为物理交换机 基本使用 逻辑面(控制面) 创建俩逻辑交换机 $ ovn-nbctl ls-add sw0 $ ovn-nbctl lsp-add sw0 sw0-port1 $ ovn-nbctl lsp-set-addresses
OVN来源 ovn是轻量级的SDN controller,网络的事情交给SDN来完成,openstack neutron-server只提供api和db。 OVN架构 ? networking-ovn作为neutron-server的plugin,把neutron-server api请求写到ovn-north DB中。 ovn-northd监听ovn-north DB,然后把ovn-north DB翻译成ovn-south DB ovn-controller监听ovn-south DB,获取信息然后操作ovs ovn Gateway_Chassis Gateway_Chassis configuration ovn south DB 逻辑网络 物理网络 以及二者的对应关系 逻辑网络由ovn-northd写,物理网络和二者对应关系由 DHCP DHCPv6_Options DHCPv6 Options supported by native OVN DHCPv6 ovn-northd 主要是把logical switch和logical
部署单节点 OVN-IC 数据库 在每个集群kube-ovn-controller可通过 IP 访问的机器上部署OVN-IC数据库,该节点将保存各个集群同步上来的网络配置信息。 ovn/:/etc/ovn -v /var/run/ovn:/var/run/ovn -v /var/log/ovn:/var/log/ovn kubeovn/kube-ovn:v1.10.6 bash /,dst=/etc/ovn,options=rbind:rw" --mount="type=bind,src=/var/run/ovn,dst=/var/run/ovn,options=rbind:rw ovn -v /var/run/ovn:/var/run/ovn -v /var/log/ovn:/var/log/ovn -e LOCAL_IP="192.168.65.3" -e NODE_IPS ovn -v /var/run/ovn:/var/run/ovn -v /var/log/ovn:/var/log/ovn -e LOCAL_IP="192.168.65.2" -e NODE_IPS
OVN是Open Virtual Network的缩写,由一批热爱OpenFlow路线的工程师们创立。它实际上是对Neutron的SDN控制器进行了加强,复用OVS的转发功能实现的分布式SDN网络。 OVN就是对OVS进行了一定的增强,赋予了它处理东西向流量四层业务的能力,同时让ovn-northd接管OpenStack等管控界面发放的网络相关配置,如下图所示: 这种设计的优势是显而易见的。 但,由于分布式系统有其固有缺陷——CAP三点不可能同时满足,因此,所有基于OVN实现的云网络,都难以避免这些问题: 1、各ovs-vswitchd的转发本质上是数据库的查询操作,这种分布式数据库的一致性问题 我们经过对OVN的分析,得到了哪些收获呢? 首先,分布式设计必须考虑扩展性、可用性和一致性的平衡; 其次,大型商用复杂系统的设计艺术就在于不要拘泥于理论,而需要懂得妥协;
下面我就来介绍一下 OVS 和 OVN。 OVS和OVN网络方案的能力 网络的概念比较晦涩一些,但是好在我们大家都对 Docker 和k8s比较熟悉,就可以做个类比。 同时 OVN 也是新版 OpenStack 中 Neutron 的后端实现,基本可以认为未来的 OpenStack 网络都是通过OVN 来进行控制的。 ? 上图是一个ovn的架构,从下往上看。 这块 OVN 的能力其实是大大的超出,毕竟 OVN 的这套模型是针对多租户进行设计的,而 k8s 现在只需要一个简单的二层网络。 不使用 ovn概念的 gateway,自己做一些手脚从每台宿主机直接出去,也是分担流量降低单点的风险 Q3:ovn每次逻辑视图变化都会出发ovn整个进行全量计算,你们怎么解决大规模时候耗费大量cpu问题 用 ovn 能用很少的代码就实现基本相同的功能。contiv 有个比较独特的功能就是支持 bgp 的网络间通信,这个是 ovn 暂时不支持的。
OVN 相关的资料在互联网上也很分散,这里分享一下我收集的私货,希望能帮助到对 OVN 感兴趣的小朋友。 1. 其余的 ovn-nb 和 ovn-sb 介绍了具体的 OVN 操作对象和各个字段属性,ovn-nbctl 和 ovn-sbctl 是一些具体的操作方法。 OVN 和 OpenStack,Kubernetes 结合的实现参考 OVN 和云平台的结合有几个比较不错的实现。 容器圈里比较老牌的是 ovn-kubernetes,这是比较早尝试将 OVN 和 Kubernetes 结合的项目,我自己在做 Kube-OVN 的时候也参考了里面很多的实现。 这个课程主要是介绍 Kube-OVN 的一些使用的,不过我们每个操作都会对应到 OVN 里面的实现细节,包括我们如何设计 OVN 中的网络拓扑,如何利用虚拟交换,虚拟路由器,负载均衡器,ACL 等 OVN
前言 上一章介绍了GNS3的使用以及OVN系统的架构,搭建了实验环境,阐述了OVN各个进程的用途、彼此之间的关系,以及产生的日志(OVN实战一之GNS3操作指南及OVN入门,http://www.sdnlab.com VM1、VM3运行在ovn-node2上;VM2、VM4运行在ovn-node3上。 1.3创建SW1搭建拓扑 OVN的所有操作都在ovn-central节点完成,当需要操作网络拓扑中的“虚拟机”的时候我们才会用到ovn-host节点。 OVN提供了两个命令行工具叫ovn-sbctl、ovn-nbctl,根据名字不难想到,ovn-sbctl是用来操作SB的;ovn-nbctl是用来操作NB的。 在ovn-node1上执行: 12345 sudo ovn-nbctl ls-add sw1sudo ovn-nbctl lsp-add sw1 sw1-vm1sudo ovn-nbctl lsp-set-addresses
本系列我们将逐个介绍Kube-OVN高级功能的工作原理及使用路径,帮你尽快征服容器网络难题!" 安装 Kube-OVN 下载安装脚本: wget https://raw.githubusercontent.com/kubeovn/kube-ovn/release-1.10/dist/images ", "server_socket": "/run/openvswitch/kube-ovn-daemon.sock", "provider": "ovn-dpdk.default.ovn ovn-dpdk.default.ovn.kubernetes.io/ip_address: 10.16.0.96 ovn-dpdk.default.ovn.kubernetes.io 最新中文文档(点击阅读原文):https://kubeovn.github.io/docs/v1.10.x/ ---- 关于Kube-OVN Kube-OVN 是一款由灵雀云自主研发的企业级云原生 Kubernetes
部署 OVN-IC 数据库 使用下面的命令启动 OVN-IC 数据库: docker run --name=ovn-ic-db -d --network=host -v /etc/ovn/:/etc/ovn -v /var/run/ovn:/var/run/ovn -v /var/log/ovn:/var/log/ovn kubeovn/kube-ovn:v1.10.6 bash start-ic-db.sh \ start_ic -ovn-ic-nb-db,ovn-ic-sb-db: OVN-IC 北向数据库和南向数据库地址。 -ovn-northd-nb-db,ovn-northd-sb-db: 当前集群 OVN 北向数据库和南向数据地址。 _SCHEDULER ovn_nb_connection,ovn_sb_connection: 地址需修改为 Kube-OVN 部署 ovn-central节点的地址。
本系列我们将逐个介绍Kube-OVN高级功能的工作原理及使用路径,帮你尽快征服容器网络难题!" 用户可以同时使用 Kube-OVN 丰富的网络抽象能力和 eBPF 带来的监控和安全能力。 通过集成 Cilium,Kube-OVN 用户可以获得如下增益: 更丰富高效的安全策略。 配置 Kube-OVN 为了充分使用 Cilium 的安全能力,需要关闭 Kube-OVN 内的 networkpolicy 功能,并调整 CNI 配置优先级。 -kube-ovn.conflist 在每个节点调整 Kube-OVN 配置文件名称,以便优先使用 Cilium 进行操作: mv /etc/cni/net.d/01-kube-ovn.conflist ","server_socket": "/run/openvswitch/kube-ovn-daemon.sock","ipam": {"type": "kube-ovn","server_socket
ovn.kubernetes.io/bgp=true 删除 annotation 取消发布: kubectl annotate pod perf-ovn-xzvd4 ovn.kubernetes.io /bgp- kubectl annotate subnet ovn-default ovn.kubernetes.io/bgp- BGP 高级选项 kube-ovn-speaker支持更多 BGP 参数进行高级配置 社区动态 Kube-OVN中文文档: 最全操作指南,Kube-OVN 中文文档来了! Kube-OVN版本更新: Kube-OVN v1.11 正式发布:新增Overlay 和 Underlay 子网互通、自定义 VPC 内部负载均衡等功能 Kube-OVN社区实践: 01 社区实践 | F5 CES集成Kube-OVN,提供丰富的出向控制策略 02 社区实践 | OpenMesh SDN白盒交换机结合Kube-ovn实现虚实互联 03 社区实践 | Kube-OVN实现K8s多租户网络管理
OVN 对于运行平台没有额外的要求,只要能够运行 OVS,就可以运行 OVN,所以从 OVS 升级到 OVN 是非常简单快捷的。 二、OVN使得Neutron组件数量减少 以最新的Ocata版本中的OVN和OVS 2.6版本来看OVN带来的变化: ☘ OVN自带的(时髦的说法叫"原生")ML2 driver替换掉 OVS ML2 四、OVN和其它通用SDN控制器(比如OpenDayLight)的主要区别 ☘ OVN专注于实现云计算管理平台场景下的SDN控制器 ☘ OVN专注于实现二层和三层网络功能。 五、OVN的实现了哪些功能?拥有哪些特性? 最新版本OVN的高级特性,英文原文如下: (可以和OVS的特性对比一下,就知道OVN和OVS 的侧重点。 Southbound DB 处在 OVN 架构的核心,它是 OVN 中最重要的部分,它跟 OVN 的其他组件都有交互。
" 如果你怀念 SDN 领域丰富的网络能力却在云原生领域苦苦追寻而不得,那么 Kube-OVN 将是你的最佳选择。 本系列我们将逐个介绍Kube-OVN高级功能的工作原理及使用路径,帮你尽快征服容器网络难题!" 在一些场景下,对所有容器访问外部的流量需要通过一个外部的网关进行统一的管理和审计。 Kube-OVN 可以通过在子网中进行相应的路由配置,将出网流量转发至对应的外部网关。 更多功能介绍,请见Kube-OVN 最新中文文档:https://kubeovn.github.io/docs/v1.10.x/ ---- Kube-OVN 项目资料 官网: https://www.kube-ovn.io GitHub: https://github.com/kubeovn/kube-ovn Slack: https://kube-ovn-slackin.herokuapp.com 关于Kube-OVN
在近期的技术分享中,Kube-OVN作者刘梦馨与现场网络专家深入探讨了Kube-OVN在混合网络场景下的最佳实践。 本次分享详细介绍了Overlay和Underlay网络的特点及其在实际应用中的混用场景,并展示了Kube-OVN项目如何通过自身的解决方案应对混合网络的挑战。以下是本次分享的详细内容回顾。 03、Kube-OVN的解决方案 Kube-OVN简介 Kube-OVN是灵雀云在2019年开源的网络项目,利用成熟的OVS(Open vSwitch Kube-OVN解决方案 Kube-OVN的解决方案通过以下方式实现Overlay和Underlay网络的互通: 网络实现:Overlay网络通过逻辑交换机与逻辑路由器相连,形成SDN网络;Underlay Kube-OVN方案优点 应用无感知,兼容原生Service和NetworkPolicy。 节约IP资源,一套网络插件同时实现Overlay和Underlay。
" 如果你怀念 SDN 领域丰富的网络能力却在云原生领域苦苦追寻而不得,那么 Kube-OVN 将是你的最佳选择。 本系列我们将逐个介绍Kube-OVN高级功能的工作原理及使用路径,帮你尽快征服容器网络难题!" 分别在两个Subnet下创建Pod apiVersion: v1 kind: Pod metadata: annotations: ovn.kubernetes.io/logical_switch 最新中文文档:https://kubeovn.github.io/docs/v1.10.x/ ---- 关于Kube-OVN Kube-OVN 是一款由灵雀云自主研发的企业级云原生 Kubernetes 2021年初,Kube-OVN成为全球范围内首个被CNCF纳入托管的开源CNI网络项目,也是中国容器公司首次将独立设计研发的项目成功贡献进入CNCF基金会,同时,它也是木兰社区旗下的明星项目之一。