Kube-OVN v1.10.0:新增Windows节点支持,用户自定义子网ACL等10+硬核功能

在Kube-OVN社区小伙伴的共同努力下,Kube-OVN v1.10.0于五月份正式发布。Kube-OVN v1.10.0版本中,我们一如既往地对Kube-OVN 的功能、性能、稳定性和易用性进行了大幅强化。包括 新增Windows 节点的支持,用户自定义子网级 ACL,EIP/SNAT/DNAT CRD 拆分,Submariner 集成,DPDK 支持,Kubevirt VM 静态 IP 等 10+ 项新功能上线。同时我们对控制平面性能进行了多项优化,大幅提升了大规模集群的网络创建和更新速度。
Kube-OVN v1.10.0又有哪些新的能力,快来了解一下吧!
Windows 支持
在 v1.10.0 之前版本的 Kube-OVN 受限于 OVS/OVN 对 Windows 的支持问题,只能在 Linux 节点上运行。在 1.10.0 中我们对 OVS/OVN 的 Windows 代码做了部分调整,使其能更好的支持 Windows 的运行。在 Windows Server 2019 并支持 Hyper-V 的环境下,可以使用 Kube-OVN Vxlan 的 Overlay 网络模式来实现 Windows 节点和 Linux 节点容器网络的统一管理。
当前版本支持 IPv4 的 Overlay 网络,未来我们将不断完善 Windows 容器网络,将双栈,Underlay 等高级功能带入 Windows 网络,欢迎大家使用。
用户自定义子网ACL
Kubernetes 内置的 Networkpolicy 规则在一些针对网络安全需要进行细粒度或分层控制的场景并不适用。此外 NetworkPolicy 不支持优先级设置,在一些复杂场景下规则设置的复杂度上升。为了实现更丰富的安全控制能力,在这个版本中我们在子网新增了 ACL 字段,用户可以按照自己的需求编写符合 OVN 流表规范的 ACL 规则。如下所示:

使用该规则,用户可以根据 L2~L4 的任意字段和布尔表达式进行流量匹配,并支持规则的优先级,可以不限于 NetworkPolicy 的限制,用极其灵活的方式进行规则设置。
Kubevirt 功能强化
在这个版本中我们持续对根据 Kubevirt 场景下对网络的需求,完善 Kube-OVN 对云原生虚拟化场景的优化。
VM 固定地址
在这个版本中我们对 Kubevirt 下 VM instance 的地址分配策略才用了和 StatefulSet 类似的策略,在 VM 第一次分配地址时随机分配,之后 VM 启停,更新过程中都会复用启动时分配的地址,达到 VM 生命周期内的地址固定,更适合虚拟化的使用习惯。
DPDK 支持
尽管上游 KubeVirt 还没有对 OVS-DPDK 类型网络的支持,但是在 Kube-OVN 社区内很多用户独立开发了 KubeVirt 对 OVS-DPDK 的支持,同时也开发了 Kube-OVN 内对 OVS-DPDK 的支持,这样即使是普通网卡也可以通过 OVS-DPDK 用户态的加速能力来增强 VM 内的网络吞吐能力。
DHCP 支持
Kubevirt 内置的 DHCP 功能无法在 SR-IOV 或者 OVS-DPDK 模式下工作,在这个版本里我们通过在子网中增加 DHCP 相关配置,利用 OVN 自身的功能使用流表实现了 DHCP Server 的功能,方便虚拟化用户的使用
Submariner 集成
之前的版本中 Kube-OVN 支持使用 ovn-ic 来做多集群的互联,从 1.10.0 开始又支持使用 Submariner 进行多集群互联。Submariner 可以在 Pod 网络互通的基础上提供 Service 和 DNS 的互通以及流量的加密,并可支持 Kube-OVN 和其他 CNI 的互通。对集群互联能力有高级需求的用户可以考虑尝试基于Submariner 的互联方案。
控制平面性能提升
借助社区小伙伴提供的大规模测试环境,我们在 15K 真实 Pod 的环境下验证了 Kube-OVN 的大规模性能,并针对各个瓶颈点进行了性能优化。
● IPAM 优化,初始化 10K Pod 所花时间从 527s 降至 29s
● kube-ovn-controller port-group 检查开销复杂度从 O(n) 降为 O(1),n 为集群节点数量
● kube-ovn-cni QoS 检查开销复杂度从 O(n) 降为 O(1),n 为节点上 Pod 数量
● EIP 和 SNAT 功能可关闭,提升 1 倍创建速度
● 使用路由器策略取代静态路由,OVN 相关流表数量从每个 Pod 一条规则降为每个节点一条规则
● 升级 OVN 和 OVS 降低调用 OVN 延迟
其他功能
● EIP/SNAT/DNAT CRD 拆分
● 无网络中断升级
● Namespace 绑定多个子网
● VPC 内的对等连接
● Webhook 功能强化
Kube-OVN v1.10.0:新增Windows节点支持,用户自定义子网ACL等10+硬核功能的更多相关文章
- Windows和Linux下apache-artemis-2.10.0安装配置
window下安装配置 一.官网下载 http://activemq.apache.org/artemis/download.html 二.百度网盘下载 链接:https://pan.baidu.c ...
- Centos7安装Kubernetes k8s v1.16.0 国内环境
一. 为什么是k8s v1.16.0? 最新版的v1.16.2试过了,一直无法安装完成,安装到kubeadm init那一步执行后,报了很多错,如:node xxx not found等.centos ...
- ArcObject10.1降级至10.0
最开始接触ArcGIS版本是9.3,为了需要也安装了9.2进行开发:因为自己的电脑配置较低,所以跑不起10.0中文版:毕业工作后,行业内用10.1居多(虽然10.3已出):现在10.4都要出来了:由于 ...
- centos6.8安装cdh5.10.0(离线版)
Centos6.8安装CDH5 相关包的下载地址: Cloudera Manager地址:http://archive.cloudera.com/cm5/cm/5/ CDH安装包地址:http://a ...
- cdh-5.10.0搭建安装
1.修改主机名为master, slave1, slave2 vim /etc/sysconfig/network HOSTNAME = master HOSTNAME = slave1 HOSTNA ...
- wireshark 1.10.0 编译 及 协议解析部分的一些变化
wireshark不久前升级到1.10.0稳定版,这个版本正如其版本号一样,相比1.8.x有较大变化. 我们先说说在windows下编译的问题,1.8.4/1.8.6版本的编译见我的文章:http:/ ...
- 在vs2010中编译log4cxx-0.10.0具体方法(从下载、编译、解决错误具体介绍)
一. 简单介绍 log4cxx是Java社区著名的log4j的c++移植版.用于为C++程序提供日志功能,以便开发人员对目标程序进行调试和审计,log4cxx是apache软件基金会的开源项目,基于A ...
- CDH搭建大数据集群(5.10.0)
纠结了好久,还是花钱了3个4核8G的阿里云主机,且行且珍惜,想必手动搭建过Hadoop集群的完全分布式.HBase的完全分布式的你(当然包括我,哈哈),一定会抱怨如此多的配置,而此时CDH正是解决我们 ...
- Hadoop-1.2.1伪分布下 hive-0.10.0内嵌模式安装
Hadoop-1.2.1伪分布下 hive-0.10.0内嵌模式安装 1.下载hive-0.10.0 网址是:http://archive.apache.org/dist/hive/hive-0.10 ...
随机推荐
- C#编写一个控制台应用程序,可根据输入的月份判断所在季节
编写一个控制台应用程序,可根据输入的月份判断所在季节 代码: using System; using System.Collections.Generic; using System.Linq; us ...
- CCF201403-2窗口
问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域.窗口的边界上的点也属于该窗口.窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的 ...
- EMS查看及修改邮箱发送和接受邮件大小的方法
默认情况下,新建用户邮箱没有进行单独设置,故用户邮箱默认值为"Unlimited"(未限制),即遵从全局设置(继承邮箱数据库策略).通过EMS查看用户邮箱发送和接受邮件大小的默认值 ...
- Wireshark捕获网易云音乐音频文件地址
打开Wireshark,开始捕获. 打开网易云音乐,然后播放一首歌. Wireshark停时捕获,然后在不活的文件中搜索字符串"mp3".可以发现有如下信息: 将其中的内容:&qu ...
- python---二维数组的查找
""" 在一个二维数组中(每个一维数组的长度相同), 每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. """ # ...
- python常见内置函数
一. map( ) 映射 l = [1,2,3,4] print(list(map(lambda x:x+1,l))) # 获取列表中每个元素并传递给匿名函数运算保存返回值 二. zip( ) 拉链 ...
- Python Requests 速通爆肝、这么牛逼的库你还不会用吗?
上网原理 爬虫原理 Get.Post Requests 介绍 安装 常用方法 Http协议 开发者工具网络界面 Response对象 下载保存一张图片.一首音乐 添加Headers发送请求 判断HTT ...
- NodeJS学习day1
今天主要学习的IO操作 const fs = require('fs') fs.readFile('./files/11.txt','utf-8',function(err,daraStr){ //读 ...
- Codeforces Round #133 (Div. 2), A.【据图推公式】 B.【思维+简单dfs】
Problem - 216A - Codeforces Problem - B - Codeforces A Tiling with Hexagons 题意: 给出a b c ,求里面有多少个六边形 ...
- axios 内存泄漏
有一个项目需要post后台几万条数据,每次只能请求三五条,所以只能在每次请求成功后自调用这个请求函数. 但这样请求了成千上万次后,浏览器会崩溃并报出 out of Memory 错误,经查询,这是内存 ...