Kube-OVN

基于 OVN 的企业 Kubernetes 网络系统
授权协议 Apache-2.0
开发语言 Google Go
所属分类 程序开发、 其他开发相关
软件类型 开源软件
地区 国产
投 递 者 颛孙嘉石
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Kube-OVN 将基于 OVN/OVS 的网络虚拟化方案带入 Kubernetes,提供了针对企业应用场景的高级容器网络编排功能。

主要功能:

  • 基于Namespace的子网划分,以及网络控制
  • 容器固定 IP
  • IPv6支持
  • 细粒度网络策略
  • 动态 QoS
  • 分布式和集中式网关
  • 内嵌负载均衡器
  • 支持集群内外网络直通
  • 控制平面的灾备及高可用
  • 丰富的监控和链路追踪工具

未来计划:

  • 基于 XDP/DPDK/Offload 的网络性能优化
  • Windows 支持
  • 更多的监控和链路追踪视图

网络拓扑:

alt text

  • 1. 内置网络配置 Kube-OVN 在安装时会配置两个内置子网: default 子网,作为 Pod 分配 IP 使用的默认子网,默认 CIDR 为 10.16.0.0/16,网关为 10.16.0.1。 join 子网,作为 Node 和 Pod 之间进行网络通信的特殊子网, 默认 CIDR 为 100.64.0.0/16,网关为 100.64.0.1。 在安装时可以通过安装脚本内的配置进行更

  • 一. kube-ovn介绍 kube-ovn作为企业级的k8s网络插件,使用时geneve协议,防火墙需要放行6981 UDP端口 kube-ovn有两种underlay和overlay 可以给k8s不同namespace创建不同的subnet(子网),当然也有一个默认的子网,比如kube-system可以用默认的子网 二. 安装 1. 主要插件安装 参考 安装 # 如果安装了其他网络插件,先卸载

  • Kube-OVN 默认会根据 Pod 所在 Namespace 所属的子网中随机分配 IP 和 Mac。 针对工作负载需要固定地址的情况,Kube-OVN 根据不同的场景,提供了多种固定地址的方法: 单个 Pod 固定 IP/Mac。 Workload 通用 IP Pool 方式指定固定地址范围。 StatefulSet 固定地址。 Kubevirt VM 固定地址。 1. 单个 Pod 固定 I

  •    本文分析 Kube-ovn cni,部分,详细分析 cni daemon,kubelet 调用 cni 二进制文件添加容器网络和删除容器网络。    kube-ovn cni 配置文件 /etc/cni/net.d/01-kube-ovn.conflist,cni 二进制通过 socket 与 cni daemon 通信,发送请求来配置和删除容器网络。 { "name":"kube-

  • kube-ovn代码系列(五)vagrant统一编译和测试环境 链接 https://www.gogo-dev.com/index.php/2022/02/20/kube-ovn-vagrant01/ 内容 面对很多不同的golang项目,我们很头疼的一件事情就是如何编译和测试对应的代码。我们往往需要知道编译需要依赖什么环境,测试运行又需要依赖什么环境,而这些都需要我们一一从项目源码或文档中去获取

  • kube-ovn代码系列(一)kube-ovn-controller 链接 https://www.gogo-dev.com/index.php/2021/10/06/kube-ovn-controller-01/ 内容 kube-ovn-controller是kube-ovn项目主要资源的CRD控制器,主要功能包含vlan、provider、vpc、subnet等CRD资源的处理,也包括pod的

 相关资料
  • ovn-kubernetes提供了一个ovs OVN网络插件,支持underlay和overlay两种模式。 underlay:容器运行在虚拟机中,而ovs则运行在虚拟机所在的物理机上,OVN将容器网络和虚拟机网络连接在一起 overlay:OVN通过logical overlay network连接所有节点的容器,此时ovs可以直接运行在物理机或虚拟机上 Overlay模式 (图片来自https

  • OpenStack networking-ovn 项目为Neutron提供了一个基于ML2的OVN插件,它使用OVN组件代替了各种Neutron的Python agent,也不再使用 RabbitMQ,而是基于OVN数据库进行通信:使用 OVSDB 协议来把用户的配置写在 Northbound DB 里面,ovn-northd 监听到 Northbound DB 配置发生改变,然后把配置翻译到 S

  • OVN Logical Flow OVN逻辑流表会由ovn-northd分发给每台机器的ovn-controller,然后ovn-controller再把它们转换为物理流表。 更多参考 https://blog.russellbryant.net/2016/11/11/ovn-logical-flows-and-ovn-trace/ https://blog.russellbryant.net/2

  • Update & install dependencies apt-get update apt-get -y install build-essential fakeroot Install Build-Depends from debian/control file apt-get -y install graphviz autoconf automake bzip2 debhelper dh

  • # start docker docker daemon --cluster-store=consul://127.0.0.1:8500 --cluster-advertise=$HOST_IP:0 # start north /usr/share/openvswitch/scripts/ovn-ctl start_northd ovn-nbctl set-connection ptcp:

  • 目前,OVS支持主从模式的高可用。 Active-Backup 在启动ovsdb-server时,可以设置主从同步选项: Syncing Options The following options allow ovsdb-server to synchronize its databases with another running ovsdb-server. --sync-