前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kube-OVN 混合网络场景最佳实践

Kube-OVN 混合网络场景最佳实践

作者头像
灵雀云
发布2024-07-30 17:30:31
1530
发布2024-07-30 17:30:31
举报
文章被收录于专栏:云原生技术社区

在近期的技术分享中,Kube-OVN作者刘梦馨与现场网络专家深入探讨了Kube-OVN在混合网络场景下的最佳实践。本次分享详细介绍了Overlay和Underlay网络的特点及其在实际应用中的混用场景,并展示了Kube-OVN项目如何通过自身的解决方案应对混合网络的挑战。以下是本次分享的详细内容回顾。

01、Overlay 与Underlay 网络为什么要混用

Overlay 网络

Overlay网络是一种在Kubernetes中通过隧道技术实现的网络类型,允许容器拥有独立于宿主机的IP地址。这种网络提供了隔离性和灵活性,适用于需要安全隔离和自定义网络配置的场景。主流的K8s网络解决方案如Flannel、Calico和Cilium等都支持Overlay网络。

优点

  • 网络依赖低:通过隧道封装技术,容器网络与宿主机网络逻辑隔离,不依赖底层网络。
  • 配置灵活:可以自由配置网关、DNS等,易于管理。
  • 功能可拓展性:软件封装的网络,易于扩展。
  • 安全隔离:容器IP不直接暴露,增强安全性。

缺点

  • 额外的性能开销:封装和解封装操作增加延迟。
  • 运维复杂度增加:涉及两层网络,问题排查复杂。
  • 与底层网络的互通问题:需要额外配置实现互通。

Underlay 网络

Underlay网络是一种逻辑上更简单的网络架构,通过直接桥接物理网卡,使容器网络与底层物理网络相连。容器的IP和MAC地址直接映射到物理网络,避免了复杂的封装和软件定义规则,提供了一种更直接和易于管理的网络解决方案。

优点

  • 性能好:直接使用物理网络,减少封装开销。
  • 天然与底层网络互通:无需额外配置即可实现互通。
  • 运维类似传统网络:易于传统网络管理员理解和管理。

缺点

  • 对底层网络有依赖:管理成本高,地址空间占用大。
  • 变更复杂:网络变更需要底层网络支持。
  • 功能可拓展性小:受限于物理网络。
  • 混部场景:Overlay与Underlay混部

在Kubernetes环境中,根据应用的具体需求,往往需要同时采用Overlay和Underlay网络。对于不需要高性能但需要隔离的内部服务,Overlay网络提供了灵活性和安全性;而对于需要高性能和直接外部访问的应用,如数据库和中间件,Underlay网络则更为合适。这种混合网络模式正成为越来越多复杂应用场景下的部署趋势。

02、混合网络存在的问题

Multus

Multus是由英特尔开源并由Kubernetes社区托管的多网络平面管理工具。它扩展了Kubernetes的CNI,允许Pod配置多块网卡和多个IP地址,尽管K8s最初设计时只支持单网卡。

Multus的两种模式

  • 多网卡模式:Pod可以配置多个CNI插件,实现多网卡。主网卡(如eth0)提供主要网络连接,而附属网卡(如net0, net1)通过CRD添加,支持额外的网络连接需求。
  • 单网卡模式:Pod只有一块网卡,但可以选择使用不同的CNI插件来管理其网络连接,尽管只有一个物理网卡,但可以利用不同的网络策略和配置。

1、多网卡

优点

  • 网络需求满足:每个容器都可以访问Overlay和Underlay网络。
  • 实现互通:每个Pod的两块网卡使得业务能够同时访问Overlay和Underlay网络,实现网络互通。

缺点

  • 地址资源浪费:无论业务是否需要,每个Pod都会被分配两块网卡和两个地址,导致地址资源的浪费。
  • 服务发现和安全策略问题:K8s的网络相关概念如Service、DNS域名、Network Policy等只针对第一块网卡,导致服务发现和安全策略存在隐患。
  • 额外监控管理复杂度:需要在两个网卡上进行监控,增加了管理的复杂性。
  • 应用感知问题:应用可能需要感知多网卡的存在,并进行相应的调整,增加了应用层面的复杂性。

多网卡相关辅助项目

在Kubernetes社区中,为了应对多网卡环境带来的挑战,各个组织正在推进一些辅助项目。其中包括一个名为multi-networkpolicy的API,这是一个早期的API,专门设计用于处理多网卡情况下的网络策略,提供了通过IP table和TC(Traffic Control)的样例实现。此外,还有一个多网卡服务发现项目,虽然目前维护不活跃,但其基础功能仍然可以满足基本需求。对于已经部署多网卡并需要网络策略或服务发现功能的用户,这些项目提供了可行的解决方案。

例如:

  • multi-networkpolicy API: https://github.com/k8snetworkplumbingwg/multi-networkpolicy
  • multi-networkpolicy-iptables
  • multi-networkpolicy-tc
  • multi-service: https://github.com/k8snetworkplumbingwg/multus-service-archived

2、单网卡

优点

  • 应用无感知:Pod只有一块网卡,简化了网络配置,应用不需要感知复杂的网络设置。
  • 兼容性:兼容原生的Service和NetworkPolicy,无需额外配置。
  • 资源节省:节约Underlay的IP资源,简化了资源管理。

缺点

  • 互通性问题:Underlay和Overlay之间的Pod无法直接互通,需要额外配置。
  • 管理复杂度:需要管理多个网络插件,增加了复杂性。

03、Kube-OVN的解决方案

Kube-OVN简介

Kube-OVN是灵雀云在2019年开源的网络项目,利用成熟的OVS(Open vSwitch)技术作为数据平面的基础,并结合Kubernetes原生设计,针对企业级容器网络的需求开发。该项目通过整合OVN(Open Virtual Network)的逻辑路由器和逻辑交换机,构建了一个灵活的SDN网络,支持Overlay和Underlay网络的集成。

Kube-OVN解决方案

Kube-OVN的解决方案通过以下方式实现Overlay和Underlay网络的互通:

  • 网络实现:Overlay网络通过逻辑交换机与逻辑路由器相连,形成SDN网络;Underlay网络则通过逻辑交换机与物理交换机桥接,实现数据平面的直接传输。
  • 互通策略:通过在Underlay网络中创建逻辑端口并连接到Overlay的逻辑路由器,实现网络互通。同时,在逻辑路由器上配置路由规则,区分访问Overlay和非Overlay网络的流量。
  • 默认网关设置:在Underlay网络的Pod中,设置默认网关指向与逻辑路由器相连的端口,确保流量正确路由。
  • 简化配置:避免了复杂的NAT和额外路由配置,通过逻辑路由器的规则实现直接互通。

Kube-OVN方案优点

  • 应用无感知,兼容原生Service和NetworkPolicy。
  • 节约IP资源,一套网络插件同时实现Overlay和Underlay。
  • 实现了Overlay和Underlay的互通,避免了额外的NAT和路由配置。

- END -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生技术社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档